CAIRLDocs
Integration

Getting Started

Set up your CAIRL integration and start receiving verified claims in minutes.

Getting Started

This guide walks your business through the fastest path to a working CAIRL integration.

Prerequisites

  • A CAIRL business account
  • API credentials (available in your dashboard under Settings > API Keys)
  • A redirect URI for OAuth callbacks

1. Register your application

Register your application in the CAIRL dashboard to receive your client_id and client_secret.

# Your credentials will look like this:
CAIRL_CLIENT_ID=your_client_id
CAIRL_CLIENT_SECRET=your_client_secret

2. Initiate the verification flow

Redirect users to CAIRL's hosted verification flow with the claim scopes your business requires.

GET https://cairl.app/verify/start
  ?client_id=your_client_id
  &redirect_uri=https://yourapp.com/callback
  &state=random_csrf_token
  &scope=age_18_plus identity_verified
  &code_challenge=pkce_s256_challenge
  &code_challenge_method=S256

3. Handle the callback

After the user completes verification and authorizes sharing, CAIRL redirects back to your application with an authorization code.

POST https://cairl.app/api/oauth/token
  client_id=your_client_id
  &client_secret=your_client_secret
  &code=authorization_code
  &grant_type=authorization_code
  &redirect_uri=https://yourapp.com/callback
  &code_verifier=pkce_code_verifier

4. Receive verified claims

The token response includes an access token. Use that token to read the verified claims snapshot from userinfo.

GET https://cairl.app/api/oauth/userinfo
Authorization: Bearer ACCESS_TOKEN
{
  "sub": "pws_v1_abc123",
  "evaluated_at": "2026-05-03T10:00:00.000Z",
  "claims": {
    "age_18_plus": true,
    "identity_verified": true
  },
  "meta": {
    "claims_requested": ["age_18_plus", "identity_verified"],
    "claims_resolved": ["age_18_plus", "identity_verified"],
    "claims_null": [],
    "claims_ignored": []
  }
}

Your systems receive the claim. The personal data that produced it stays on CAIRL's side of the boundary.

Next steps

On this page