Introduction
ProofAge is an identity verification and age estimation API. It lets you verify your users' identities through document checks and estimate their age from a selfie — all through a single REST API.
Flow Types
Each workspace is configured with a flow type that determines how verifications are processed. The flow type is set when you create a workspace and cannot be changed afterwards.
ProofAge supports two flow types — Age and KYC:
Age Verification
Confirms that a person meets a required age threshold. Two check methods are available, configured via the age_mode workspace setting:
| Check Method | age_mode value | Description | Required Media |
|---|---|---|---|
| ID Age Verification | document_verification | Age is confirmed using an identity document combined with a liveness selfie. Supports configurable age thresholds (18–25). | Selfie + identity document |
| Face Age Estimate | estimation | AI-based age estimation from a selfie only. No identity documents required. Age threshold is fixed at 18. | Selfie only |
KYC Verification
Full Know Your Customer identity verification. Compares a liveness selfie against an identity document (passport, driver's license, etc.), extracts and validates personal data from the document.
| Required Media |
|---|
| Selfie + identity document (front + back; passport only needs front) |
Choose Age when you only need to confirm a user meets a minimum age threshold. Choose KYC when you need to verify the user's full identity.
Modes
Every workspace operates in one of two modes:
- Live — Production mode. Verifications are processed by real reviewers and ML models. Usage is billed.
- Test — Sandbox mode. Verifications are auto-reviewed and not billed. Use this during development and integration testing.
Your API key prefix indicates the mode: sk_live_* keys target live mode, and sk_test_* keys target test mode.
API Base URL
All API requests are made to:
https://api.proofage.com/v1Verification Lifecycle
A typical verification follows these steps:
- Create a session — POST to
/v1/verificationsto start a new verification. You receive a verification ID. - Collect consent — Fetch the consent text and record the user's acceptance.
- Upload media — Upload a selfie (and documents for KYC flows). You can upload multiple files across multiple requests.
- Submit — Submit the verification for processing.
- Receive a decision — ProofAge processes the verification and delivers the result via webhook:
approved,declined, orresubmission_requested.
For a complete walkthrough with code examples, see the Quick Start guide. For details on the media upload and submission steps, see the Verification Flow guide.
Prerequisites
Before you begin, you need:
- A ProofAge account — Sign up at proofage.com.
- A workspace — Create a workspace from the dashboard. Each workspace has its own API keys and configuration.
- API credentials — From your workspace settings, retrieve:
- API Key — Sent in the
X-API-Keyheader to identify your workspace. - Secret Key — Used to compute HMAC-SHA256 signatures for request authentication. Never expose this in client-side code.
- API Key — Sent in the
Next Steps
- Quick Start — Run your first verification in minutes.
- Authentication — Learn how request signing works.
- Verification Flow — Deep dive into each step of the verification lifecycle.