Documentation
Pick the guide that matches what you're building. New here? Start with Verification modes to choose how you want to verify — Server API, silent on your page, or with a camera.
Live
Verification modes
Every option: the Server API (your server calls ours, no code on the page), and on your page Silent, Quick camera check and Full camera check, plus what happens when the camera cannot open. What each one checks, what the respondent sees, and how to set it up. Read this first.
Live · v1.30.1
SDK
Put the check on your page with HTML, React, Next.js or plain TypeScript. Five ways to add it; every one sends its result to our server.
Live
Survey integrations
Add VerifyHuman to the survey platform you already use — Qualtrics, Forsta, Alchemer, LimeSurvey, Sawtooth, SurveyMonkey, Typeform, Jotform, Cint, Dynata. A Survey link works on every platform with no code; the five platforms that accept custom JavaScript can also run the check on the survey page.
Live · v1.30.1
In-app browsers & camera
What happens when a survey opens inside Instagram, Facebook or Telegram and the app blocks the camera: the respondent can finish on their phone with a QR code, how results show which level of check ran (camera or device only), and how to require a camera check.
Live — connect via OAuth
MCP server
Manage projects, replace signing keys, create demo keys and read analytics from Claude Desktop, Claude Code or any MCP client. Sign in with OAuth; nothing to install.
Live
Server API
Full REST reference: Server API scoring (one call from your server, no code on the page), checking result tokens from your page (one or up to 100 at a time), creating projects, analytics, sessions and public signing keys (JWKS).
Live
Webhooks
What each event contains and how delivery works: up to 5 attempts, no retry after a permanent 4xx error, and a key on every event so you can ignore repeats.
Where things live
- Choose how to verify (Server API or on your page, silent or camera) — start with Verification modes.
- Put the check on your page — start with the SDK guide.
- Score respondents from your server with no code on the page (panels and sample suppliers) — start with the Server API mode in Verification modes, then the Server API reference (
POST /api/v1/lite/score). - Check a result token on your server — see the API reference.
- Create projects from your backend — two ways:
- OAuth/MCP (recommended for new integrations):
provision_project_with_keyreturns the Project ID and Secret key in one call. See the MCP guide. - REST + X-API-Key:
POST /projects/provisionwhen you already have a Secret key for at least one project. See the API reference.
- OAuth/MCP (recommended for new integrations):
- Receive events on your server — see the webhook contract.
- Run admin tasks from an AI assistant — the MCP guide.
- Already a customer? Project-specific snippets with your real Project ID live on your dashboard, under each project's Integrate tab.
What shipped recently
- Server API scoring: your server calls ours, with no code on the page.
POST /api/v1/lite/scorereturns a 0–100 risk score andallow/review/block, based on the respondent's network, device, repeat visits, behaviour and history. You can report outcomes back to us and set thresholds per traffic source. See Verification modes and the Server API reference. unifiedVerdicton the verify response: oneallow/review/blockresult, plus the level of check that produced it, in every mode. It is on the SDK result from SDK v1.16.2. See the SDK guide.- Create projects over MCP: the tools
create_projectandprovision_project_with_keycreate a project from your server (signed in with OAuth) and return the Project ID and Secret key in one call. Use this if you create one project per study. - Create projects over REST:
POST /projects/provisiondoes the same, using a project's Secret key inX-API-Key. - Your own IDs: the SDK accepts
respondentIdandmetadata; the HTML snippet takes them asdata-respondent-id/data-metadata. - Webhooks: version 2 events now include
respondent_id,metadata, ISOtimestamp. - Batch token checks:
POST /token/verify-batchchecks up to 100 tokens in one call. - Analytics over REST:
GET /projects/{id}/analyticswith a Secret key inX-API-Keyreturns the same figures as the dashboard analytics page. - The HTML snippet now sends every check to our server (before, it checked only in the browser). Sites using it now get real sessions, signed tokens and webhook events.
- The SDK's default
apiEndpointnow points at our production servers.