Skip to content

Create an API key

API keys authenticate requests to the public API. Each key is bound to one region and one mode — see Modes and regions.

You need an organization membership and an active mode (test or live) selected in the sidebar. Keys you create reflect the active mode.

Open Developers → API keys and click New API key. Pick a key type:

  • Secret key (ah_sk_…) — server-to-server. Carries scopes. Keep private.
  • Publishable key (ah_pk_…) — browser-side SDK. Bound to one or more origins; does not carry scopes.

Give the key a label that identifies where it runs (for example production-api). Pick an expiration if you want the key to auto-revoke. For publishable keys, list every allowed origin (one per line); bare * is rejected.

The key is shown once and is then unrecoverable. Copy it into a secrets manager before closing the dialog.

Secret keys carry a list of scopes, grouped below by what they control. Grant the minimum your integration needs. For common integration patterns, see Choosing scopes for your key.

Verification

ScopeGrants
applicants:readRead applicants. Read applicant records, including their full personal information.

Sensitive: Returns the applicant's full personal information.

applicants:writeManage applicants. Create and update applicant records.
sessions:readRead sessions. Read verification sessions and their results.
sessions:writeManage sessions. Create verification sessions and manage their lifecycle: cancel, resend the invite, reset a used link, add notes, and skip a required step.

Sensitive: Includes skipping a required verification step, which can complete a session with missing evidence. Grant only to keys that need full control of a session.

idv:writeScan ID documents. Run a standalone ID document scan without a verification session.

Session tokens

ScopeGrants
sessions:browser_tokenMint browser tokens. Mint a short-lived token to start a verification in the applicant's browser.
sessions:workspace_tokenMint workspace tokens. Mint a token for reviewer workspace tooling.

Reports

ScopeGrants
sessions:read_reportDownload reports. Download the full-evidence verification report as a PDF.

Sensitive: The report contains the applicant's full verification evidence.

Adjudication

ScopeGrants
sessions:reviewReview sessions. Approve or decline a verification session.

Configuration

ScopeGrants
workflow-templates:readRead workflow templates. Read verification workflow templates.
workflow-templates:writeManage workflow templates. Create and update verification workflow templates.
links:readRead links. Read shareable verification links.
links:writeManage links. Create and update shareable verification links.

Compliance & billing

ScopeGrants
dsar:createSubmit data requests. Submit a data subject access or erasure request for an applicant.

Sensitive: Acts on the applicant's personal data to satisfy a data subject request.

billing:readRead billing. Read wallet balance, credit grants, transactions, and usage tiers.

A call without the required scope returns insufficient_scope (HTTP 403) and names the missing scope in the response. See the API error codes.

Treat the key like a password. Store it in a secrets manager (for example, 1Password) and never commit it. We can only display the key once at creation. If you lose it, rotate it.

Send the key in the Authorization header against the endpoint that matches the region:

Terminal window
curl -i https://api-dev.us.autohost-dev.uk/v1/me \
-H "Authorization: Bearer ah_sk_us_test_<your-key>"

Every response includes an X-Request-Id header. Capture it in your logs — support tickets that include the request ID get triaged faster.

See Why was my API key rejected?. Common causes: region mismatch, missing scope, or the key has been revoked. To cycle a key out, see Rotate or revoke an API key.