Create a verification session
Organizations in the supplied mode may send partner-supplied identity data — the person's biographic record and photo — in input.suppliedIdentity (with input.nni). It is stored as identity data supplied by the organization, never treated as a registry lookup; Sekyro AI makes no registry call for it and never accepts a registry key.
Scope: sessions:create.
Send an X-Idempotency-Key header so a retry never creates a second session.
apiKeyAuthorizationBearer <token>Secret key of your app (sk_test_… or sk_live_…). Server-side only: never ship it to a browser or a mobile app. X-Api-Key: <key> is accepted too.
application/json- body
ttlMinutes?integerLink lifetime. Must fall within the app profile's range, otherwise 400 ttl_out_of_policy. Defaults to the profile's defaultTtlMinutes.
locale?stringPins the hosted-flow language. Leave it out to follow the person's device.
"ar""fr""en"input?Step inputs: the identity anchors nni, or fullName + birthDate, and phone. They also seed the prefill.
subject?Your reference for the person (externalRef), or reuse (exactly one of subjectId, externalRef, nni) for a returning-user session.
input_field_misplaced — a session-input field (nni, phone, fullName, birthDate) was sent at the top level; send it under input (e.g. input.nni). Other invalid bodies answer validation_error.
application/json- response
status*"error""error"error*curl -X POST 'https://api-staging.sekyro.ai/api/v2/sessions' \ -H 'Content-Type: application/json' \ -d '{ "locale": "fr"}'{ "status": "error", "error": { "code": "input_field_misplaced", "message": "`nni` must be sent as `input.nni` — session input fields belong under `input`", "request_id": "01907f4e-3b1a-7c2d-9e8f-0a1b2c3d4e5f" }}Choose the identity method POST
Chooses the identity method of an optional-document session on the person's behalf (`national_number` or `document_photo`). `409 method_locked` once the choice can no longer change; `409 session_not_active` on a finished or expired session. Scope: `sessions:create`.
Download the ICAO portrait GET
The 480×640 ICAO portrait of a session whose `portrait_icao` check passed, as `image/jpeg`; `?format=url` returns a 5-minute download link instead. `404 portrait_not_available` before the check passed. **Staging sandbox only** — not available in production yet. Scope: `portrait:read`.