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.
Individual (KYC)
Business (KYB)
Request
curl -N "https://api.identity.predicate.io/api/v1/status/realtime/individual/550e8400-e29b-41d4-a716-446655440000" \
-H "Authorization: Bearer $PREDICATE_KYC_API_KEY"
Request
curl -N "https://api.identity.predicate.io/api/v1/status/realtime/business/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":[{"id":"wallet-uuid","address":"0x1234...","chain":"ethereum"}]}
: keep-alive
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.identity.predicate.io/api/v1/status/realtime/{type}/{sessionId}
Path Parameters
Verification type: individual or business
The session ID from the registration response (UUID format)
Events are sent as data: lines with JSON payloads. The server also sends periodic : keep-alive comments to maintain the connection.
Current status: pending, submitted, completed, rejected, or retry
User ID (present when session has an identity)
ISO 8601 timestamp (only present when completed)
Wallets connected to this session. Only populated when session status is completed.
Wallets connected to this session. Populated when session is not yet completed.
Status Values
| Status | Description |
|---|
pending | Session created, user in verification process |
submitted | Documents submitted, awaiting manual operator review |
completed | Verification successful, user is verified |
rejected | Verification permanently failed (fraud, sanctions) |
retry | Fixable issue (e.g., blurry document), user can retry |
Important: A submitted status means documents are under manual review. The wallet is not verified until status becomes completed.
Authentication
Authorization: Bearer YOUR_API_KEY