Skip to main content
POST https://api.uip.digital/v1/sessions · Auth: Bearer API key
Creates a verification session from an ordered list of primitive steps and returns its hosted URL. Creating a session is free; you’re billed per verified step. A webhook URL must be configured for your business first.

Headers

Authorization
string
required
Bearer YOUR_API_KEY
Idempotency-Key
string
Optional. A repeat create with the same key returns the original session instead of creating a duplicate.

Body

steps
object[]
required
Ordered steps to verify. Each has a primitive, optional params, and optional gate.
client_reference_id
string
Your own identifier, echoed on every webhook and stamped into the audit record.
metadata
object
Up to 50 string-valued keys. Operational only (webhooks + reads); never shown to the user.
return_url
string
An https URL. Renders a “Return to ” button on the hosted page after the flow completes (never an automatic redirect).
expires_in
integer
Session TTL in seconds (60–86400). Defaults to the standard cap.

Response

id
string
The session id, e.g. sess_abc123.
status
string
created.
url
string
The hosted page URL to hand the user.
expires
string
ISO 8601 expiry timestamp.
curl https://api.uip.digital/v1/sessions \
  -H "Authorization: Bearer $UIP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "steps": [
      { "primitive": "identify", "params": { "blocks": ["first_name", "last_name", "country"] } },
      { "primitive": "age_verify", "params": { "min_age": 21 } }
    ],
    "client_reference_id": "order_4815",
    "return_url": "https://shop.example.com/verified"
  }'
{
  "id": "sess_abc123",
  "status": "created",
  "url": "https://uip.digital/s/sess_abc123",
  "expires": "2026-06-07T12:34:56Z"
}

Errors

400 invalid steps[] / unknown primitive / bad params · 401 bad key · 402 insufficient balance · 422 no webhook configured · 409 idempotency conflict. See Errors.