Skip to main content
Stream real-time status updates for a verification session using Server-Sent Events (SSE).
The SSE endpoint requires your API key. Since browsers’ EventSource API doesn’t support custom headers, you must create a backend proxy. See the Integration Guide for implementation examples.

Request

cURL
curl -N "https://api.kyc.predicate.io/api/v1/status/realtime/individual/550e8400-e29b-41d4-a716-446655440000" \
  -H "Authorization: Bearer $PREDICATE_KYC_API_KEY"

Event Stream

data: {"sessionId":"550e8400-e29b-41d4-a716-446655440000","status":"pending","verifiedWallets":[],"unverifiedWallets":[]}

: keep-alive

data: {"sessionId":"550e8400-e29b-41d4-a716-446655440000","status":"in_progress","verifiedWallets":[],"unverifiedWallets":[{"id":"wallet-uuid","address":"0x1234...","chain":"ethereum"}]}

data: {"sessionId":"550e8400-e29b-41d4-a716-446655440000","status":"completed","userId":"user-uuid-here","completedAt":"2025-01-21T10:30:00Z","verifiedWallets":[{"id":"wallet-uuid-1","address":"0x1234...","chain":"ethereum"}],"unverifiedWallets":[]}

Endpoint

GET https://api.kyc.predicate.io/api/v1/status/realtime/{type}/{sessionId}

Path Parameters

type
string
required
Verification type: individual or business
sessionId
string
required
The session ID from the registration response (UUID format)

Event Format

Events are sent as data: lines with JSON payloads. The server also sends periodic : keep-alive comments to maintain the connection.
sessionId
string
required
The session ID
status
string
required
Current status: pending, in_progress, completed, or failed
userId
string
User ID (only present when completed)
completedAt
string
ISO 8601 timestamp (only present when completed)
verifiedWallets
array
Wallets belonging to the verified user. Includes wallets from all of the user’s completed sessions.
unverifiedWallets
array
Wallets connected during this session but not yet verified.
Wallet Aggregation: When the same person completes multiple verification sessions (detected via biometric deduplication), all their wallets are aggregated under the same user.

Authentication

Authorization: Bearer YOUR_API_KEY