Skip to main content

Get session results

Retrieve the status and results of a flow session

Retrieve detailed information about a specific session, including its current status, outcome, and session results. The response always includes a results field with typed references to the output data blocks produced so far — giving you a complete, self-contained answer in a single API call.

Endpoint

GET /api/v1/{environment}/sessions/{sessionId}

Path parameters

ParameterTypeRequiredDescription
sessionIdstringYesThe unique identifier of the session
environmentstringYesEnvironment name

Request

No request body is required for this endpoint.

Headers

HeaderTypeRequiredDescription
AuthorizationstringYesBearer token for authentication

Response

Response parameters are described in the table below. See Response examples for sample payloads.

ParameterTypeDescription
sessionIdstringThe unique identifier of the session
sessionStatusstringCurrent status. One of CREATED, RUNNING, EXPIRED, ERROR, ABORTED, or COMPLETED
flowIdstringFlow identifier
flowVersionnumberVersion of the flow executed
environmentstringEnvironment name
metadataobjectCustomer metadata provided at session creation
metadata.subjectIdstringYour internal reference ID for the subject being verified (optional — absent for sessions whose subject data has been erased)
metadata.localestringLocale for the Player UI (optional). One of en, de, fr, pl, it, es.
outcomestringFinal session outcome. One of accepted, rejected, or NO_OUTCOME. accepted and rejected only appear when sessionStatus is COMPLETED; all other statuses return NO_OUTCOME
createdAtstringISO 8601 timestamp when session was created
startedAtstringISO 8601 timestamp when processing started (optional)
updatedAtstringISO 8601 timestamp of last update
completedAtstringISO 8601 timestamp when session reached a terminal state (COMPLETED, ERROR, ABORTED, or EXPIRED) (optional)
expiresAtstringISO 8601 timestamp when session expires (optional)
redirectUrlstringRedirect URL for session completion (optional)
statestringState parameter for CSRF protection in redirect (optional)
lastStepobjectInformation about the last executed step (optional, present whenever at least one step has been executed)
lastStep.stepIdstringUnique identifier of the last step
lastStep.stepTypestringType of the last step (e.g., END, DOC_ID:v2, CHOICE)
lastStep.stepDescriptionstringHuman-readable description of the step (as configured in the flow). Empty string if not set.
lastStep.stepStatusstringStatus of the last step. One of STARTED, COMPLETED, ERROR, ABORTED, WORKFLOW_EXPIRED, or ROLLED_BACK
lastStep.stepStatusDetailsstringAdditional detail when stepStatus is ERROR (optional)
lastStep.verdictstring(deprecated — use stepStatus) Last step verdict (e.g., COMPLETED, FAILED)
resultsobjectReferences to the output data blocks produced by the workflow. Always present as an object: empty ({}) when no step has produced output yet, or a record of typed data block references once steps have completed. Keys are constrained to DataBlockType values.
results.<type>objectA typed reference to a data block. The key is the data block type (e.g., documentVerification).
results.<type>.typestringReference discriminator. Always "dataBlock".
results.<type>.idstringThe dataBlockId of the referenced data block, matching the dataBlockId of one of the entries returned by GET /api/v1/{environment}/sessions/{sessionId}/datablocks.

Example

curl https://localhost:3000/api/v1/live/sessions/0197c55f-5af6-7e3d-af9b-f2359b104be8 \
-H "Authorization: Bearer YOUR_API_KEY"

Response examples

Session in progress (results: {})

{
"sessionId": "0197c55f-5af6-7e3d-af9b-f2359b134be8",
"sessionStatus": "RUNNING",
"flowId": "0197c55f-5af6-7e3d-af9b-f2359b154be8",
"flowVersion": 1,
"environment": "live",
"metadata": {
"subjectId": "subj_8f3a2c91b47d4e6b",
"locale": "en"
},
"outcome": "NO_OUTCOME",
"createdAt": "2025-01-07T10:30:00.000Z",
"startedAt": "2025-01-07T10:30:00.000Z",
"updatedAt": "2025-01-07T10:30:05.000Z",
"lastStep": {
"stepId": "step_start_001",
"stepType": "START",
"stepDescription": "Session initialization",
"stepStatus": "STARTED",
"verdict": "STARTED"
},
"results": {}
}

Session completed (results populated)

{
"sessionId": "0197c55f-5af6-7e3d-af9b-f2359b134be8",
"sessionStatus": "COMPLETED",
"flowId": "0197c55f-5af6-7e3d-af9b-f2359b154be8",
"flowVersion": 1,
"environment": "live",
"metadata": {
"subjectId": "subj_8f3a2c91b47d4e6b",
"locale": "en"
},
"outcome": "accepted",
"createdAt": "2025-01-07T10:30:00.000Z",
"startedAt": "2025-01-07T10:30:00.000Z",
"updatedAt": "2025-01-07T10:35:00.000Z",
"completedAt": "2025-01-07T10:35:00.000Z",
"lastStep": {
"stepId": "step_end_001",
"stepType": "END",
"stepDescription": "Final step",
"stepStatus": "COMPLETED",
"verdict": "COMPLETED"
},
"results": {
"documentVerification": {
"type": "dataBlock",
"id": "0197c55f-5af6-7e3d-af9b-f2359b200be1"
},
"pepAndSanctionsResults": {
"type": "dataBlock",
"id": "0197c55f-5af6-7e3d-af9b-f2359b200be2"
},
"comparisonResults": {
"type": "dataBlock",
"id": "0197c55f-5af6-7e3d-af9b-f2359b200be3"
}
}
}

Notes

  • Response implements data minimization by default for GDPR compliance
  • The lastStep object is optional and provides context about the most recently executed step
  • The results field is always present as an object: an empty object {} when no step has produced output yet, or a record of data block references once steps have completed.
  • results contains references, not inline content. Each value is a typed pointer { "type": "dataBlock", "id": "..." } where id matches the dataBlockId of one of the entries returned by GET /api/v1/{environment}/sessions/{sessionId}/datablocks — that endpoint returns all data blocks for the session; there is no way to fetch a single data block by ID.
  • Data block access is separated to allow granular access control