Skip to main content
Didit Raises $2M and Joins Y Combinator (W26)
Didit
Identity for AI agents

Your AI agent can run KYC. With one command.

Install Didit's twelve open-source Agent Skills into Cursor, Claude Code, Codex, or OpenCode in a single `npx` command. Ask the agent in plain English. It writes the code and calls the live API.

Backed by
Y Combinator
GBTC Finance
Bondex
Crnogorski Telekom
UCSF Neuroscape
Shiply
Adelantos

Trusted by 2,000+ organizations worldwide.

A cinematic dark abstract illustration of agent-installable identity skills — four floating translucent glass panels in 3D perspective on pure black, threaded by a luminous Didit Blue line, each panel marked with a tiny pale-white skill icon (terminal prompt, scan, key, branching diff). Framed by four glowing scanner brackets.

Why skills, not docs

Docs are for humans. Skills are for agents.

Hand Cursor a documentation tab and it invents endpoints and lowercases status enums. Hand it a Didit skill and every line points at the real API — locked endpoint, locked headers, signed-webhook handler scaffolded. One `npx` command.

How it works

From npx install to verified user in four steps.

  1. Step 01

    Install the skills

    Run `npx skills add didit-protocol/skills` in your project. The CLI detects Cursor, Claude Code, Codex, or OpenCode and drops every skill into the right folder. Install just one with `--skill didit-face-match`.

  2. Step 02

    Get an API key

    Either grab one in 60 seconds at [business.didit.me](https://business.didit.me) and `export DIDIT_API_KEY=…`, or let the agent register itself programmatically — `POST /programmatic/register/` followed by `verify-email/`, and a key comes back in the response. No browser needed.

  3. Step 03

    Ask in plain English

    *“Add Didit KYC to my signup flow.”* *“Screen this user against AML lists.”* The agent reads the relevant skill, writes the code, and wires the signed-webhook handler. First-try correct — no documentation tab-switching.

  4. Step 04

    User verifies

    Didit hosts the camera, the document capture, the selfie, the mobile hand-off. Under 30 seconds for the user. Sub-2-second verdict on your webhook, signed with `X-Signature-V2` so you can trust it.

What the skills give you

Twelve skills. Zero hallucinations. Every Didit API.

Each skill is a single Markdown file that locks the endpoint, the headers, the body shape, and the status enum. Open source. Versioned with the API.
01 · Catalog

Twelve skills. One per Didit capability.

A hub skill for account, sessions, workflows, and billing (45+ endpoints) plus eleven standalone skills for ID, liveness, face match, face search, age, AML, email, phone, proof of address, and database validation.
Full catalog at docs.didit.me
02 · Install

One npx command. Done.

`npx skills add didit-protocol/skills` installs all twelve. Add `--skill didit-face-match` to pick one. Prefer Git? `git clone` and copy what you need. Prefer no tooling? Drop a single `SKILL.md` into your agent's skill folder.
User Verification module
03 · Hosts

Cursor, Claude Code, Codex, OpenCode.

Same Markdown skill everywhere. The CLI auto-detects your runtime and writes to `.cursor/skills/` or `.claude/skills/`. Built on the [agentskills.io](https://agentskills.io) open standard — no vendor SDK.
Workflow Orchestrator
04 · No guessing

The skill is the source of truth.

Locks the real endpoint, the real headers, the real status casing, the live pricing. The agent stops inventing paths and lowercasing enums. 51 endpoints tested every release.
AML Screening module
05 · Setup

One env var. Or self-register.

`export DIDIT_API_KEY=…` and the skill is wired. Or let the agent register itself via `POST /programmatic/register/` and grab a key without leaving the terminal.
Get an API key
06 · Open source

MIT-licensed. Yours to fork.

Every skill lives at [github.com/didit-protocol/skills](https://github.com/didit-protocol/skills). Audit the code, customise the prompts, send a PR. The skill ships the same day the endpoint does.
github.com/didit-protocol/skills
Integrate

Install the skills. Ask the agent. Ship.

Left: the install. Right: the cURL the agent writes once the skill is in place.
npx skills addInstall
$ npx skills add didit-protocol/skills
✓ 12 skills installed

# or just one
$ npx skills add didit-protocol/skills \
  --skill didit-face-match

# set the api key
$ export DIDIT_API_KEY="sk_live_..."
OKReadyCursor, Claude Code, Codex, OpenCode auto-detected.
Or `git clone` the repo for full control.repo →
POST /v3/session/Agent output
$ curl -X POST https://verification.didit.me/v3/session/ \
  -H "x-api-key: $DIDIT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "workflow_id": "$DIDIT_WORKFLOW_ID",
    "vendor_data": "user-42",
    "callback_url": "https://app/cb"
  }'
201Created{ "url": "verify.didit.me/..." }
Generated by the `didit-kyc-onboarding` skill.docs →
Agent-ready integration

Install all 12 Didit Agent Skills in one prompt.

Paste into Cursor, Claude Code, Codex, or OpenCode. The agent installs the skills, sets the environment, scaffolds the session create + signed-webhook handler, and tests against the live API.
didit-integration-prompt.md
You are installing the Didit Agent Skills into this project and wiring the first verification session against the live https://verification.didit.me/v3/ API. After this prompt, the project should pass identity verification — Know Your Customer (KYC), Anti-Money Laundering (AML) screening, document Optical Character Recognition (OCR) — through Didit.

Didit ships twelve open-source Agent Skills at https://github.com/didit-protocol/skills and follows the open standard at https://agentskills.io. The CLI auto-detects whether you are running inside Cursor, Claude Code, Codex, or OpenCode and drops the skills into the right folder.

PRE-REQUISITES
  - A Didit API key (DIDIT_API_KEY). Either issued from https://business.didit.me, or self-registered by the agent via POST /programmatic/register/ + POST /programmatic/verify-email/ (no browser needed).
  - A workflow_id from the Workflow Builder that bundles ID Verification + Passive Liveness + Face Match + IP Analysis + AML — or just use the didit-kyc-onboarding skill below to create one programmatically.
  - A webhook endpoint that verifies the X-Signature-V2 header with HMAC-SHA256 on the raw body bytes (do NOT re-serialise the parsed JSON; the signature will not match).

STEP 1 — Install the skills

Recommended:

  npx skills add didit-protocol/skills

This installs all twelve skills. To install only one:

  npx skills add didit-protocol/skills --skill didit-face-match

Or git clone the repo and copy what you need:

  git clone https://github.com/didit-protocol/skills.git
  cp -r skills/didit-kyc-onboarding .claude/skills/
  cp -r skills/didit-id-document-verification .claude/skills/

The twelve skills:
  - didit-verification-management   : the hub. Account, sessions, workflows, billing, blocklist, webhook config. 45+ endpoints
  - didit-kyc-onboarding            : full KYC recipe (ID + selfie + face match) in one call
  - didit-id-document-verification  : passports, ID cards, driver's licences. OCR, MRZ, NFC. 4,000+ documents, 220+ countries
  - didit-liveness-detection        : 99.9%-accurate liveness from a single selfie
  - didit-face-match                : compare two faces, get a 0–100 score
  - didit-face-search               : 1:N face search for deduplication and blocklists
  - didit-biometric-age-estimation  : estimate age from a selfie
  - didit-email-verification        : email OTP, detects breached / disposable / undeliverable
  - didit-phone-verification        : phone OTP via SMS, WhatsApp, or Telegram. Catches VoIP
  - didit-aml-screening             : 1,300+ sanctions, PEP, adverse-media lists. Dual-score risk
  - didit-proof-of-address          : utility bills, bank statements. OCR + geocoding
  - didit-database-validation       : government databases across 18 countries

STEP 2 — Set the environment

Every skill reads DIDIT_API_KEY. Session-based skills also expect DIDIT_WORKFLOW_ID. Signed-webhook handlers expect DIDIT_WEBHOOK_SECRET.

  export DIDIT_API_KEY="<your api key>"
  export DIDIT_WORKFLOW_ID="<your workflow id>"   # optional
  export DIDIT_WEBHOOK_SECRET="<your secret>"     # optional

Programmatic alternative (no browser):

  curl -X POST https://apx.didit.me/auth/v2/programmatic/register/ \
    -H "Content-Type: application/json" \
    -d '{"email": "dev@example.com", "password": "MyStr0ng!Pass"}'

  # check the email, get the 6-char code, then:
  curl -X POST https://apx.didit.me/auth/v2/programmatic/verify-email/ \
    -H "Content-Type: application/json" \
    -d '{"email": "dev@example.com", "code": "<code>"}'
  # response includes api_key — export it as DIDIT_API_KEY.

STEP 3 — Create a verification session

  POST https://verification.didit.me/v3/session/
  Headers:
    x-api-key: $DIDIT_API_KEY
    Content-Type: application/json
  Body:
    {
      "workflow_id": "$DIDIT_WORKFLOW_ID",
      "vendor_data": "<your user id, max 256 chars>",
      "callback_url": "https://<your-app>/kyc/callback",
      "metadata": { "source": "agent-skill" }
    }

  Response: 201 Created. The hosted session URL is on the `url` field. Redirect the user, or send them the link by email / SMS / WhatsApp. Sub-2-second p99 verdict on completion.

STEP 4 — Read the signed webhook

Didit POSTs to your callback. KYC session statuses are Title Case With Spaces.

  Body (excerpted):
    {
      "session_id": "<uuid>",
      "vendor_data": "<your user id>",
      "status": "Approved",
      "id_verification": { "status": "Approved" },
      "liveness": { "status": "Approved" },
      "face": { "status": "Approved", "similarity_score": 0.94 },
      "aml": { "status": "Approved", "hits": [] }
    }

  Full enum:
    Approved | Declined | In Review | In Progress | Not Started | Abandoned | Expired | Resubmitted | Awaiting User | Not Finished

  Verify X-Signature-V2 BEFORE parsing the body — HMAC-SHA256 of the raw bytes with your webhook secret. Re-serialising the parsed body changes whitespace and key order and the signature will not match.

STEP 5 — Read the decision on demand

  GET https://verification.didit.me/v3/session/{sessionId}/decision/
  Headers:
    x-api-key: $DIDIT_API_KEY

Returns the full decision payload — id_verification, liveness, face, ip_analysis, aml. Use this whenever the agent needs to confirm the user's status before allowing an action. Never trust client-supplied "I'm verified" flags.

STEP 6 — Branch on status

  Approved      → continue
  Declined      → block, surface decision_reason_code, allow resubmit of the failed step
  In Review     → wait for the analyst webhook; don't block forever
  Resubmitted   → user re-took a failed step; new verdict is coming
  Awaiting User → user hasn't completed the flow; nudge with a reminder
  Expired       → create a new session

Abandoned and Declined sessions are NOT billed.

STEP 7 — Optional: ongoing AML monitoring

If AML monitoring is enabled on the workflow ($0.07 per user per year), Didit fires status.updated whenever the user lands on a new sanctions / PEP / adverse-media list. No extra endpoint to call.

WEBHOOK EVENT NAMES
  - status.updated       : KYC or KYB session status changed
  - data.updated         : session data corrected after creation
  - user.status.updated  : User entity changed status (Active, Flagged, Blocked)
  - user.data.updated    : User entity counters, metadata, or aggregate fields changed
  - activity.created     : timeline activity recorded

Verify X-Signature-V2 on every payload. The webhook secret is per-environment — sandbox is separate from production.

CONSTRAINTS
  - KYC session statuses use Title Case With Spaces (Approved, In Review). Do NOT transform them to UPPER_SNAKE_CASE — that casing is for Know Your Business (KYB) sessions and Transaction Monitoring, not KYC.
  - HMAC verification runs against the RAW request body bytes. Never re-serialise the parsed JSON.
  - Bundle price is $0.30 (ID + Liveness + Face Match + IP Analysis). AML adds $0.20. 500 verifications free every month, forever.
  - Default record retention is unlimited unless you configure it shorter (30 days to 10 years per application).

Read the docs:
  - https://docs.didit.me/getting-started/agent-skills
  - https://docs.didit.me/sessions-api/create-session
  - https://docs.didit.me/sessions-api/retrieve-session
  - https://docs.didit.me/integration/webhooks

Skills repo:
  - https://github.com/didit-protocol/skills

Start free at https://business.didit.me — sandbox key in 60 seconds, 500 verifications free every month, no credit card.
Need more context? See the full module docs.docs.didit.me →
Compliant by design

Open a new country in one click. We do the hard work.

We open the local subsidiaries, secure the licenses, run the penetration tests, earn the certifications, and align with every new regulation. To ship verifications in a new country, flip a toggle. 220+ countries live, audited and pen-tested every quarter — the only identity provider an EU member-state government has formally called safer than in-person verification.
Read the security & compliance dossier
EU financial sandbox
Tesoro · SEPBLAC · BdE
ISO/IEC 27001
Information security · 2026
SOC 2 · Type I
AICPA · 2026
iBeta Level 1 PAD
NIST / NIAP · 2026
GDPR
EU 2016/679
DORA
EU 2022/2554
MiCA
EU 2023/1114
AMLD6 · eIDAS 2.0
EU-aligned by design

Proof numbers

Proof numbers
  • 0
    Open-source Agent Skills. One per Didit capability.
  • 0
    API endpoints covered. All tested every release.
  • <0s
    End-to-end KYC verdict per session at p99.
  • 0
    Free verifications every month, on every account.
Three tiers, one price list

Start free. Pay per usage. Scale to Enterprise.

500 free verifications every month, forever. Pay-as-you-go for production. Custom contracts, data residency, and SLAs (Service Level Agreements) on Enterprise.
Free

Free

$0 / month. No credit card required.

  • Free KYC bundle (ID Verification + Passive Liveness + Face Match + Device & IP Analysis) — 500 / month, every month
  • Blocklisted Users
  • Duplicate Detection
  • 200+ fraud signals on every session
  • Reusable KYC across the Didit network
  • Case Management Platform
  • Workflow Builder
  • Public docs, sandbox, SDKs, MCP (Model Context Protocol) server
  • Community support
Most popular
Pay per usage

Usage Based

Pay only for what you use. 25+ modules. Public per-module pricing, no monthly minimum fee.

  • Full KYC at $0.33 (ID + Biometric + IP / Device)
  • 10,000+ AML datasets — sanctions, PEPs, adverse media
  • 1,000+ government data sources for Database Validation
  • Transaction Monitoring at $0.02 per transaction
  • Live KYB at $2.00 per business
  • Wallet Screening at $0.15 per check
  • Whitelabel verification flow — your brand, our infrastructure
Enterprise

Enterprise

Custom MSA & SLA. For large volumes and regulated programs.

  • Annual contracts
  • Custom MSA, DPA, and SLA
  • Dedicated Slack and WhatsApp channel
  • Manual reviewers on demand
  • Reseller and white-label terms
  • Exclusive features and partner integrations
  • Named CSM, security review, compliance support

Start free → pay only when a check runs → unlock Enterprise for a custom contract, SLA, or data residency.

FAQ

Common questions

Infrastructure for identity and fraud.

One API for KYC, KYB, Transaction Monitoring, and Wallet Screening. Integrate in 5 minutes.

Ask an AI to summarise this page