Skip to main content
GET
/
source-creator
/
sessions
/
{id}
Get full session state for resuming the wizard
curl --request GET \
  --url https://api.royalti.io/source-creator/sessions/{id} \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.royalti.io/source-creator/sessions/{id}"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.royalti.io/source-creator/sessions/{id}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.royalti.io/source-creator/sessions/{id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.royalti.io/source-creator/sessions/{id}"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.royalti.io/source-creator/sessions/{id}")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.royalti.io/source-creator/sessions/{id}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "status": "success",
  "message": "Session retrieved successfully",
  "data": {
    "id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "TenantId": 123,
    "TenantUserId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "FileId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "FileDetectionSessionId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "currentStep": 123,
    "fileAnalysis": {},
    "aiSuggestedMappings": [
      {
        "sourceColumn": "<string>",
        "semanticType": "<string>",
        "dateFormat": "<string>",
        "confidence": 123,
        "reasoning": "<string>",
        "sampleValues": [
          "<unknown>"
        ],
        "alternatives": [
          {
            "semanticType": "<string>",
            "confidence": 123,
            "reasoning": "<string>"
          }
        ],
        "historicalEvidence": {
          "occurrenceCount": 123,
          "distinctTenants": 123
        }
      }
    ],
    "userConfirmedMappings": [
      {
        "sourceColumn": "<string>",
        "semanticType": "<string>",
        "dateFormat": "<string>",
        "transformation": "<string>"
      }
    ],
    "unmappedColumns": [
      "<string>"
    ],
    "mappingFeedback": {},
    "generatedQueries": {
      "salesDataQuery": "<string>",
      "royaltySumQuery": "<string>",
      "countSumQuery": "<string>",
      "columnFormatDSL": "<string>",
      "tableNameFormat": "<string>",
      "aiExplanation": "<string>"
    },
    "testResults": {
      "dryRun": {},
      "sandboxTest": {},
      "schemaValidation": {},
      "overallValid": true,
      "testedAt": "2023-11-07T05:31:56Z",
      "sampleQuery": {
        "success": true,
        "rowCount": 123,
        "sampleResults": [
          {}
        ],
        "executionTimeMs": 123,
        "error": "<string>"
      },
      "overallPass": true
    },
    "createdRoyaltySourceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "createdTenantDataSourceId": 123,
    "sourceName": "<string>",
    "sourceLabel": "<string>",
    "aggregatorName": "<string>",
    "parentSourceId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
    "expiresAt": "2023-11-07T05:31:56Z",
    "createdAt": "2023-11-07T05:31:56Z",
    "updatedAt": "2023-11-07T05:31:56Z"
  }
}
{
"status": "error",
"message": "This feature requires a plan upgrade",
"data": {
"feature": "royaltyAccess",
"currentPlan": "FREE",
"availablePlans": [
{}
]
}
}
{
"status": "error",
"message": "<string>"
}
This endpoint requires authentication. Include your Bearer token in the Authorization header.

Description

GET /source-creator/sessions/ Description: Returns the full SourceCreatorSession row (file analysis, AI suggestions, confirmed mappings, generated queries, test results, etc.) so the wizard UI can resume at the correct step. Scoped to the calling tenant + user; returns 404 if the session belongs to another tenant/user, doesn’t exist, or has expired. Authorization:
  • Required role: admin or higher
Method: GET

Code Examples

const response = await fetch('https://api.royalti.io/source-creator/sessions/example-id', {
  method: 'GET',
  headers: {
    'Authorization': `Bearer ${token}`,
  },
});

const data = await response.json();
console.log(data);
import requests

response = requests.get(
  'https://api.royalti.io/source-creator/sessions/example-id',
  headers={
    'Authorization': f'Bearer {token}'
  },
)

data = response.json()
print(data)
curl -X GET https://api.royalti.io/source-creator/sessions/example-id \
  -H "Authorization: Bearer YOUR_TOKEN" \

Authorizations

Authorization
string
header
required

JWT Authorization header using the Bearer scheme. Format: "Bearer {token}"

Path Parameters

id
string<uuid>
required

Session ID

Response

Session retrieved successfully

status
string
Example:

"success"

message
string
Example:

"Session retrieved successfully"

data
object

Full session row — returned by GET /sessions/{id} for resuming the wizard client-side. Shape mirrors the SourceCreatorSession model.