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_key returns the Project ID and Secret key in one call. See the MCP guide.
    • REST + X-API-Key: POST /projects/provision when you already have a Secret key for at least one project. See the API reference.
  • 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/score returns a 0–100 risk score and allow/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.
  • unifiedVerdict on the verify response: one allow/review/block result, 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_project and provision_project_with_key create 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/provision does the same, using a project's Secret key in X-API-Key.
  • Your own IDs: the SDK accepts respondentId and metadata; the HTML snippet takes them as data-respondent-id / data-metadata.
  • Webhooks: version 2 events now include respondent_id, metadata, ISO timestamp.
  • Batch token checks: POST /token/verify-batch checks up to 100 tokens in one call.
  • Analytics over REST: GET /projects/{id}/analytics with a Secret key in X-API-Key returns 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 apiEndpoint now points at our production servers.