API Integration Guide

Partner API Integration Guide (Browser Sessions)

Overview

The Partner API provides endpoints for creating and managing browser-based verification sessions. This API allows partners to embed CR3DENTIALS verification directly in their applications using an iframe-based approach with isolated, secure browser sessions.

Key Features:

  • Embedded iframe experience — Users verify accounts directly in your app

  • zkTLS verification — Cryptographically proven data without storing credentials

  • Real-time webhooks — Instant notifications when verification completes

  • Secure isolation — Each session runs in a completely isolated browser environment


Authentication

The Partner API uses API Key authentication for all endpoints.

Headers

Header
Description

x-api-key

Your partner API key (required for all endpoints)

Content-Type

application/json

Example


Endpoints

List Browser Platforms

Returns a list of all active browser platforms available for verification sessions. Use this endpoint to display platform options to users.

Authentication: API Key required

Response

Response Fields

Field
Type
Description

id

number

Platform ID (use this when creating sessions)

name

string

Unique platform identifier

displayName

string

Human-readable platform name

description

string

Platform description

icon

string

Platform logo URL

loginUrl

string

Default login URL

allowCustomUrl

boolean

Whether custom URLs are allowed

isActive

boolean

Platform availability status

createdAt

string

Creation timestamp

updatedAt

string

Last update timestamp

Create Browser Session

Creates a new browser verification session. Returns an embed URL for iframe integration.

Authentication: API Key required

Request Body

Request Parameters

Parameter
Type
Required
Description

platformId

number

Yes

Platform ID (must match a configured BrowserPlatform)

receiverData

object

No

External receiver data (name, email, phone, etc.)

expiresInHours

number

No

Session expiration in hours (1-24, default: 1)

webhookUrl

string

No

HTTPS webhook URL for status updates

externalReferenceId

string

No

Your tracking ID (included in responses/webhooks)

Response


Get Browser Session Details

Retrieves the current status and details of a browser session. Use this to poll for session completion or retrieve verification results.

Authentication: API Key required

Parameters

Parameter
Type
Description

id

string (path)

Session ID (UUID)

Response

Response Fields

Field
Type
Description

sessionId

string

Unique session identifier

status

string

Current session status (see Session Statuses)

progress

number

Verification progress (0-100)

embedUrl

string

URL for iframe embedding

streamUrl

string

WebRTC stream URL (when connected)

platformId

number

Platform ID

platform

object

Platform details (name, logo)

expiresAt

string

Session expiration timestamp

createdAt

string

Session creation timestamp

completedAt

string

Completion timestamp (if completed)

errorMessage

string

Error description (if failed)

errorCode

string

Error code (if failed)

hasAttestation

boolean

Whether attestation is available

extractedData

object

Verified data (if completed)


List Browser Sessions

Returns a paginated list of browser sessions created by your partner account.

Authentication: API Key required

Query Parameters

Parameter
Type
Default
Description

status

string

Filter by session status

limit

number

20

Results per page (max: 100)

offset

number

0

Pagination offset

Response


Session Statuses

Active States

Status
Description

CREATED

Session created, awaiting user connection

INITIALIZING

Browser pod spinning up

READY

Pod ready, waiting for user

CONNECTED

User connected via iframe

LOADING_TREE

Loading verification flow

RUNNING

Executing verification steps

AWAITING_USER

Waiting for user action (login, 2FA)

COLLECTING_DATA

Collecting data from user's account

VERIFYING

Generating attestation

Terminal States (Immutable)

Status
Description

COMPLETED

Verification successful, attestation available

TERMINATED

Session manually terminated

ERROR

Verification failed

CANCELLED

User cancelled the session


Webhook Integration

When you provide a webhookUrl during session creation, we'll POST updates to your endpoint when the session reaches a terminal state.

Webhook Payload

Webhook Requirements

  • URL must be HTTPS with a valid TLD

  • Respond with 2xx status code within 30 seconds

  • We retry failed deliveries (3 attempts with exponential backoff)


Typical Workflow

1. Get Available Platforms

2. Create a Browser Session

Use the platformId from the platforms list:

3. Embed the Iframe

4. Receive Results

Via webhook or polling GET /partner/browser-session/:id

4. Receive Results

Option A: Webhook (Recommended)

Your webhook endpoint receives the verification result automatically when complete.

Option B: Polling

Poll the session status endpoint until status is a terminal state:


Error Handling

Error Response Format

Common Error Codes

Code
Description

400

Bad Request — Invalid parameters

401

Unauthorized — Invalid or missing API key

404

Not Found — Session not found or not owned by you

500

Internal Server Error


Rate Limiting

  • Session creation is rate-limited per API key

  • Limits are configurable per partner agreement

  • Exceeded limits return 429 Too Many Requests


Quick Reference


Method
Endpoint
Authentication
Description

GET

/partner/browser-platforms

API Key

List available platforms

POST

/partner/browser-session

API Key

Create browser session

GET

/partner/browser-session/:id

API Key

Get session details

GET

/partner/browser-sessions

API Key

List sessions

Security Features

  • Session Isolation — Each verification runs in a completely isolated browser environment

  • Token-Based Access — Embed URLs include cryptographically secure access tokens

  • Token Invalidation — Access tokens are invalidated when sessions reach terminal state

  • zkTLS Proofs — Cryptographic proof that data came from the claimed platform

  • No Credential Storage — User credentials are never transmitted to our backend


Support

For API support or integration questions, contact your partner integration manager or email [email protected]envelope.

Last updated