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. When a session reaches a terminal state, the response includes a results field that surfaces typed references to the output datablocks — 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
subjectIdstringThe original subjectId value provided in metadata when creating the session
outcomestringFinal session outcome (e.g., accepted, rejected, NO_OUTCOME)
createdAtstringISO 8601 timestamp when session was created
startedAtstringISO 8601 timestamp when processing started (null if not started)
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.verdictstringLast step verdict (e.g., completed, failed)
resultsobjectReferences to the output datablocks produced by the workflow. An empty object {} when the session has not yet reached a terminal state (CREATED, RUNNING), or when terminal but no step produced output. Keys are datablock type names.
results.<type>objectA typed reference to a datablock. The key is the datablock type (e.g., documentVerification).
results.<type>.typestringReference discriminator. Always "dataBlock".
results.<type>.idstringThe dataBlockId of the referenced datablock. Fetch its content via GET /v1/{environment}/sessions/{sessionId}/datablocks.

Example

curl https://api.eu.platform.idnow.io/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",
"subjectId": "subj_8f3a2c91b47d4e6b",
"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",
"stepDescription": "Session initialization",
"verdict": "success"
},
"results": {}
}

Session completed (results populated)

{
"sessionId": "0197c55f-5af6-7e3d-af9b-f2359b134be8",
"sessionStatus": "COMPLETED",
"flowId": "0197c55f-5af6-7e3d-af9b-f2359b154be8",
"flowVersion": 1,
"environment": "live",
"subjectId": "subj_8f3a2c91b47d4e6b",
"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",
"stepDescription": "Final step",
"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 in the response as an object. It is an empty object {} when the session has not yet reached a terminal state (CREATED, RUNNING). Once terminal (COMPLETED, ERROR, ABORTED, or EXPIRED), it contains a record of datablock references — or an empty object {} if no step produced output.
  • results contains references, not inline content. Each value is a typed pointer { "type": "dataBlock", "id": "..." } where id matches the dataBlockId returned by the /datablocks endpoint. Fetch full datablock content via GET /v1/{environment}/sessions/{sessionId}/datablocks.
  • Data block access is separated to allow granular access control