{
  "data": {
    "a": {
      "slug": "didit",
      "name": "Didit",
      "vendor": "Didit Identity Spain, S.L.",
      "vendorUrl": "https://didit.me",
      "kind": "http-api",
      "category": "identity-verification",
      "summary": "Didit is a hosted identity verification service for document, liveness, face match, sanctions screening and business registry checks. Developers reach it through a REST API with an OpenAPI spec, a hosted MCP server and client SDKs.",
      "url": "https://www.anchorterminal.com/tools/didit",
      "markdownUrl": "https://www.anchorterminal.com/tools/didit.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/didit.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/didit.json",
      "repo": "https://github.com/didit-protocol/mcp",
      "license": "Proprietary service under Didit's Business Terms and Conditions. The MCP server in didit-protocol/mcp is MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://verification.didit.me",
      "packages": [
        {
          "registry": "npm",
          "name": "@didit-protocol/mcp-server"
        },
        {
          "registry": "npm",
          "name": "@didit-protocol/sdk-web"
        },
        {
          "registry": "npm",
          "name": "@didit-protocol/sdk-react-native"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. The REST API takes an application API key in the `x-api-key` header. A key comes from the Business Console or from the registration API on `apx.didit.me`, which emails a 6-character code and returns the key with no browser step. Each application has a primary key with full access and any number of named keys with read or write access per resource, workflow and status limits, an IP allowlist and an expiry date. Named keys are created, rotated and revoked only in the console. The hosted MCP server uses OAuth 2.1 with PKCE and dynamic client registration, with the scopes `didit:management` and `didit:verification`, and accepts no API key.",
      "pricing": "usage",
      "pricingNotes": "Pay per completed check from prepaid USD credits, with no contract or minimum and no card needed to sign up. In a workflow, ID verification is $0.15, passive liveness $0.10, face match $0.05, device and IP analysis $0.03 and AML screening $0.20. Until 1 November 2026 each organisation gets 500 free checks a month for each of the first four. From 1 November that becomes $10 of credit a month, with optional Growth ($99 a month) and Scale ($299 a month) plans. Sandbox applications are not billed (https://docs.didit.me/getting-started/pricing, checked 2026-10-08).",
      "priceSummary": "$0.15 / tx",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI spec, the docs index or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 156,
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 27338,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.didit.me",
      "llmsTxt": "https://docs.didit.me/llms.txt",
      "openapi": "https://docs.didit.me/openapi-25.json",
      "registryName": "me.didit/mcp",
      "capabilities": [
        "kyc.identity",
        "kyc.documents",
        "kyc.screening",
        "kyc.business",
        "kyc.cases"
      ],
      "tags": [
        "hosted",
        "api-key",
        "oauth",
        "mcp",
        "webhooks",
        "openapi",
        "llms-txt",
        "free-tier",
        "no-card",
        "sandbox",
        "status-page",
        "sla",
        "soc2",
        "iso27001"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 75,
        "grade": "BB",
        "agentReady": true,
        "rank": 60,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 82,
          "payments": 60,
          "reliability": 80,
          "schema": 88,
          "security": 76,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A self-serve verification API with public per-check prices, key registration by API, scoped keys and a 365-day audit log. The status page shows three incidents marked major between 22 July and 4 September 2026, each a partial outage of the core APIs, and the sub-processor list isn't public.",
        "bestFor": "A team that wants document, liveness, screening and business registry checks from one API with public prices and no sales step, and an agent that has to set itself up.",
        "strengths": [
          "An account and API key can be created by API at `apx.didit.me/auth/v2/programmatic/register/`, with an emailed code and no browser step",
          "Public OpenAPI 3.0.0 spec with 256 operations, plus llms.txt and a Markdown copy of every docs page",
          "Named API keys take read or write access per resource, workflow limits, an IP allowlist and an expiry date, and rotation keeps the old secret for 24 hours",
          "429 responses carry `Retry-After`, limits are published per scope, and 31 operations document an `Idempotency-Key` header or a reuse rule",
          "Per-check prices are public, charged only when a check finishes, with 500 free checks a month per core feature until 1 November 2026"
        ],
        "weaknesses": [
          "Three incidents marked major on status.didit.me from 22 July to 4 September 2026, each a partial outage of the core APIs traced to the primary database",
          "No server-side SDK in any language. The published SDKs are capture clients for web, iOS, Android, React Native and Flutter",
          "The data processing addendum says the sub-processor list is published at `/terms/sub-processors`, but that address shows the legal index, which says the list is sent after a signed NDA",
          "Verification data is used for model training by default until an organisation owner turns it off in the console",
          "The hosted MCP server lists 156 tools to a signed-in user, 23 of them destructive, and role checks run in a mode that logs without hiding tools by default"
        ],
        "agentNotes": [
          "Register with `POST https://apx.didit.me/auth/v2/programmatic/register/`, then `verify-email` with the emailed 6-character code. Use a real inbox, because reserved test domains return 500.",
          "Send the key as `x-api-key` to `https://verification.didit.me/v3/`. The JWT from registration works only on `apx.didit.me`.",
          "Create a workflow before `POST /v3/session/`. `workflow_id` is the only required field, and an unfinished session with the same `vendor_data` is returned again.",
          "Read results from webhooks and use `GET /v3/session/{sessionId}/decision/` for back-fill. Every per-feature result is a plural array.",
          "The MCP server at `https://mcp.didit.me/mcp` takes OAuth sign-in only, never an API key. Approve `didit:verification` alone when the task doesn't change workflows or keys."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 75
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 82,
          "payments": 60,
          "reliability": 80,
          "schema": 88,
          "security": 76,
          "transparency": 53
        },
        "provenanceScore": 73
      },
      "connect": {
        "http": "curl -X POST https://verification.didit.me/v3/session/ \\\n  -H \"x-api-key: $DIDIT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"workflow_id\":\"\u003cWORKFLOW_ID\u003e\",\"vendor_data\":\"user-42\",\"callback\":\"https://myapp.com/return\"}'",
        "claudeCode": "claude mcp add --transport http didit https://mcp.didit.me/mcp",
        "config": {
          "mcpServers": {
            "didit": {
              "url": "https://mcp.didit.me/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/kyc.identity",
        "tool": "https://letme.dev/didit"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "ID verification in a workflow (document capture)",
          "unit": "tx",
          "usd": 0.15,
          "note": "500 free a month until 1 November 2026"
        },
        {
          "item": "Passive liveness in a workflow",
          "unit": "tx",
          "usd": 0.1,
          "note": "500 free a month until 1 November 2026"
        },
        {
          "item": "Face match 1:1 in a workflow",
          "unit": "tx",
          "usd": 0.05,
          "note": "500 free a month until 1 November 2026"
        },
        {
          "item": "Device and IP analysis in a workflow",
          "unit": "tx",
          "usd": 0.03,
          "note": "500 free a month until 1 November 2026"
        },
        {
          "item": "AML screening",
          "unit": "tx",
          "usd": 0.2,
          "note": "no free allowance"
        },
        {
          "item": "Proof of address",
          "unit": "tx",
          "usd": 0.2,
          "note": "no free allowance"
        },
        {
          "item": "KYB registry, per selected company (Lite profile)",
          "unit": "tx",
          "usd": 2,
          "note": "search is charged separately at up to $0.50"
        }
      ],
      "provenance": {
        "legalEntity": "Didit Identity Spain, S.L.",
        "domain": "didit.me",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://didit.me/terms/business/",
        "privacy": "https://didit.me/terms/privacy-policy/",
        "statusPage": "https://status.didit.me",
        "changelog": "https://docs.didit.me/changelog/september-2026",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Business Terms and Conditions (updated 23 September 2026) name two contracting entities. Didit Identity Spain, S.L., CIF B22929327, Barcelona, contracts with clients in the EU, EEA, UK and Switzerland, and Didit Identity, Inc., Dover, Delaware, with clients elsewhere.",
          "The Business Terms are the self-serve contract and include the SLA as Annex 1 and the Data Processing Addendum as Annex 2. A separate Master Services Agreement covers enterprise order forms.",
          "The Privacy Policy was updated on 7 October 2026 and names the Spanish Data Protection Agency as lead supervisory authority. A Verification Privacy Notice supplements it for end users.",
          "didit.me/.well-known/security.txt and docs.didit.me/.well-known/security.txt return 404. The Information Security Policy sends reports to security@didit.me.",
          "The API answers at verification.didit.me, account routes at apx.didit.me and the MCP server at mcp.didit.me, all on the vendor's domain.",
          "The registration date of didit.me wasn't established. whois returned nothing and rdap.org has no RDAP service for .me."
        ],
        "score": 73
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/didit.json",
      "live": {
        "slug": "didit",
        "probe": {
          "target": "https://verification.didit.me",
          "method": "get",
          "lastAt": "2026-10-09T11:46:27.019042932Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 66,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 57,
          "p95ms24h": 89,
          "samples24h": 175,
          "samples30d": 175,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "date": "2026-10-09",
              "probes": 125,
              "ok": 125
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.didit.me",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-09T11:38:55.82045304Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "me.didit/mcp",
            "version": "5.0.1",
            "seenAt": "2026-10-09T02:57:46.004536428Z"
          }
        ],
        "updatedAt": "2026-10-09T11:46:27.019042932Z"
      }
    },
    "answer": "Didit scores 75 (BB) on agent readiness against Shufti's 57.8 (C), and leads in 6 of 7 scored categories. Shufti leads on transparency \u0026 trust.",
    "b": {
      "slug": "shufti",
      "name": "Shufti",
      "vendor": "Shufti Pro Limited",
      "vendorUrl": "https://shuftipro.com",
      "kind": "http-api",
      "category": "identity-verification",
      "summary": "Identity and business verification service from Shufti Pro Limited in London. One REST endpoint runs document, face, address, AML screening and KYB checks chosen in the request body, with results by callback. A hosted MCP server exposes 25 tools.",
      "url": "https://www.anchorterminal.com/tools/shufti",
      "markdownUrl": "https://www.anchorterminal.com/tools/shufti.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/shufti.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/shufti.json",
      "repo": "https://github.com/shuftipro/iOS-SDK",
      "license": "Proprietary service under Shufti's Terms and Conditions. The licences of the mobile capture SDKs were not checked",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.shuftipro.com",
      "packages": [
        {
          "registry": "npm",
          "name": "shuftipro-onsite-mobilesdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. Signing up creates a back office account, and the Client ID and Secret Key come from Settings, API Configuration, API Keys. The REST API takes them as HTTP Basic auth, or a Bearer access token from `/get/access/token` that lasts one hour. The key pair has no scopes, and the Secret Key is shown once and replaced by generating a new one. The MCP server uses OAuth 2.1 with PKCE and dynamic client registration. Its login page asks for the same Client ID and Secret Key, and it issues tokens with the scopes `knowledge:read`, `verification:read` and `verification:write`. Callback and redirect domains must be registered in the back office.",
      "pricing": "freemium",
      "pricingNotes": "Free Forever covers up to 10 verifications a month with no card, on the production environment. Essentials starts from $1.50 a verification, pay as you go with no monthly minimum, up to 20,000 verifications. Enterprise is quoted by sales and adds e-IDV, Travel Rule, video KYC and other services. The pricing page says only successful verification attempts are billed and resubmissions are free. Trial accounts accept test ID samples (https://shuftipro.com/pricing/, checked 2026-10-09).",
      "priceSummary": "$1.50 / tx",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs (llms-full.txt), the pricing page or the terms (checked 2026-10-09).",
        "endpoints": []
      },
      "toolCount": 25,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 673,
        "pypiWeekly": null,
        "asOf": "2026-10-09"
      },
      "docsUrl": "https://developers.shuftipro.com/docs/get_started",
      "llmsTxt": "https://developers.shuftipro.com/llms.txt",
      "capabilities": [
        "kyc.identity",
        "kyc.documents",
        "kyc.business",
        "kyc.screening"
      ],
      "tags": [
        "hosted",
        "api-key",
        "oauth",
        "mcp",
        "webhooks",
        "llms-txt",
        "free-tier",
        "no-card",
        "status-page",
        "sla",
        "soc2",
        "iso27001"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.8,
        "grade": "C",
        "agentReady": false,
        "rank": 538,
        "ranked": true,
        "rankOf": 842,
        "categoryRank": 9,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 47,
          "maintenance": 72,
          "payments": 35,
          "reliability": 65,
          "schema": 58,
          "security": 62,
          "transparency": 71
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-09"
        },
        "negative": 0,
        "verdict": "One endpoint covers document, face, address, AML and KYB checks, with a free plan of 10 verifications a month, and a hosted MCP server adds OAuth with three scopes. No OpenAPI file, server SDK or idempotency key was found, and the status page history could not be read.",
        "bestFor": "A team that wants document, face, address, AML and KYB checks behind one endpoint, a free plan for low volume, and an MCP server that hands the person a hosted verification link.",
        "strengths": [
          "Free Forever plan of 10 verifications a month with no card, on the production environment, per the pricing page",
          "Hosted MCP server at `https://ai.shuftipro.com/mcp` with 25 tools, OAuth 2.1 with PKCE and three scopes enforced on every call",
          "Docs published as llms.txt, a 2.9 MB llms-full.txt and a Markdown twin of each page, with samples in nine languages",
          "Public terms (version 11.1, 13 May 2026) include an availability schedule targeting 99 per cent monthly uptime",
          "Revision history with 19 dated entries between 24 July and 6 October 2026"
        ],
        "weaknesses": [
          "No OpenAPI file or other machine-readable contract was found. The reference is prose tables plus Postman collections",
          "The REST credential is one Client ID and Secret Key pair with no scopes, sent as Basic auth on every call",
          "No idempotency key, Retry-After header or backoff guidance was found for the documented 429",
          "No server-side SDK. Official packages cover Android, iOS, Flutter, React Native and Cordova capture only",
          "Standard KYB was deprecated on 6 October 2026 and its pages removed the same day, with no notice period stated",
          "The sub-processor list is available to clients on request only, and security.txt returns 404"
        ],
        "agentNotes": [
          "POST every verification to `https://api.shuftipro.com/` with a unique `reference` of 6 to 250 characters and one object per service. Read results from `/status` with that reference",
          "Register the callback domain in the back office first. An unregistered `callback_url` is rejected",
          "Stay under 60 requests a minute per IP on a production account and 20 on a trial account",
          "Check the `Signature` response header. Accounts created after 15 March 2023 hash the Secret Key with SHA-256 before appending it to the raw response",
          "Through MCP, identity checks return a `verification_url` for the person to open. No tool accepts an image, so use the REST API for offsite proofs"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.8
          }
        ],
        "editorialScores": {
          "ergonomics": 47,
          "maintenance": 72,
          "payments": 35,
          "reliability": 65,
          "schema": 58,
          "security": 62,
          "transparency": 51
        },
        "provenanceScore": 90
      },
      "connect": {
        "http": "curl --location --request POST 'https://api.shuftipro.com' \\\n--header 'Content-Type: application/json' \\\n--header 'Authorization: Basic \u003cbase64 of CLIENT_ID:SECRET_KEY\u003e' \\\n--data-raw '{\n    \"reference\"    : \"1234567\",\n    \"callback_url\" : \"https://yourdomain.com/profile/notifyCallback\",\n    \"country\"      : \"GB\",\n    \"language\"     : \"EN\",\n    \"verification_mode\" : \"any\",\n    \"face\" : {\n        \"proof\"            : \"\"\n    }\n}'",
        "claudeCode": "claude mcp add --transport http shufti https://ai.shuftipro.com/mcp",
        "config": {
          "mcpServers": {
            "shufti": {
              "args": [
                "mcp-remote",
                "https://ai.shuftipro.com/mcp"
              ],
              "command": "npx"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/kyc.identity",
        "tool": "https://letme.dev/shufti"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Verification, Free Forever plan (document and face checks)",
          "unit": "tx",
          "usd": 0,
          "note": "up to 10 verifications a month, no card"
        },
        {
          "item": "Verification, Essentials plan, starting price",
          "unit": "tx",
          "usd": 1.5,
          "note": "rate depends on volume and the services chosen, up to 20,000 verifications"
        }
      ],
      "provenance": {
        "legalEntity": "Shufti Pro Limited",
        "domain": "shuftipro.com",
        "domainRegistered": "2016-06-28",
        "endpointOnVendorDomain": true,
        "terms": "https://shuftipro.com/wp-content/uploads/Version-11.1-w.e.f.-May-13th-2026.pdf",
        "privacy": "https://shuftipro.com/services-privacy-notice/",
        "statusPage": "https://status.shuftipro.com",
        "changelog": "https://developers.shuftipro.com/docs/revision_history",
        "securityTxt": "none",
        "checked": "2026-10-09",
        "notes": [
          "The terms and the MCP privacy notice name Shufti Pro Limited, Office 408 Coppergate House, 10 Whites Row, London E1 7NF.",
          "The governing terms are a PDF, version 11.1, linked from shuftipro.com/terms-and-conditions/, which itself carries only a summary and links to every earlier version. The page labels the file 12 May 2026 and the file name says 13 May.",
          "The privacy link is the Services Privacy Notice, version 1.2, last updated September 2026, which covers verification data. A separate notice covers the website.",
          "shuftipro.com/.well-known/security.txt answered 502 on the first request and 404 on the second.",
          "RDAP for shuftipro.com gives a registration date of 2016-06-28.",
          "The API answers at api.shuftipro.com and the MCP server at ai.shuftipro.com. The lead's shufti.ai is a parked domain for sale and unrelated to the vendor.",
          "status.shuftipro.com is an UptimeRobot page whose data loads from /api/, a path its robots.txt disallows, so the incident history was not read."
        ],
        "score": 90
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/shufti.json",
      "live": {
        "slug": "shufti",
        "probe": {
          "target": "https://api.shuftipro.com",
          "method": "get",
          "lastAt": "2026-10-09T11:46:40.498968542Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 347,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 321,
          "p95ms24h": 367,
          "samples24h": 44,
          "samples30d": 44,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 44,
              "ok": 44
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.shuftipro.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-09T07:58:32.112017753Z"
        },
        "updatedAt": "2026-10-09T11:46:40.498968542Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Didit Identity Spain, S.L.",
        "b": "Shufti Pro Limited",
        "name": "Vendor"
      },
      {
        "a": "https://verification.didit.me",
        "b": "https://api.shuftipro.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Didit's Business Terms and Conditions. The MCP server in didit-protocol/mcp is MIT",
        "b": "Proprietary service under Shufti's Terms and Conditions. The licences of the mobile capture SDKs were not checked",
        "name": "Licence"
      },
      {
        "a": "156",
        "b": "25",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "me.didit/mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-08",
        "b": "2026-10-06",
        "name": "Last release"
      },
      {
        "a": "2026-09-23",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "2026-10-07",
        "b": "2026-09-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "0 stars, 27k npm/wk",
        "b": "673 npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Didit scores 75 (BB) on agent readiness against Shufti's 57.8 (C), and leads in 6 of 7 scored categories. Shufti leads on transparency \u0026 trust.",
        "question": "Which is better for AI agents, Didit or Shufti?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Didit and Shufti need an API key?"
      },
      {
        "answer": "Yes. Didit has a hosted endpoint at https://verification.didit.me and Shufti at https://api.shuftipro.com.",
        "question": "Can an agent call Didit and Shufti without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 65",
          "Schema \u0026 documentation, 88 against 58",
          "Agent ergonomics, 69 against 47",
          "Security \u0026 auth, 76 against 62",
          "Payments \u0026 pricing, 60 against 35",
          "Maintenance \u0026 community, 82 against 72"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Runs on your own machine"
        ],
        "goodFor": "A team that wants document, liveness, screening and business registry checks from one API with public prices and no sales step, and an agent that has to set itself up.",
        "slug": "didit",
        "watchFor": "Three incidents marked major on status.didit.me from 22 July to 4 September 2026, each a partial outage of the core APIs traced to the primary database"
      },
      {
        "aheadOn": [
          "Transparency \u0026 trust, 71 against 63"
        ],
        "also": null,
        "goodFor": "A team that wants document, face, address, AML and KYB checks behind one endpoint, a free plan for low volume, and an MCP server that hands the person a hosted verification link.",
        "slug": "shufti",
        "watchFor": "No OpenAPI file or other machine-readable contract was found. The reference is prose tables plus Postman collections"
      }
    ],
    "job": {
      "capability": "kyc.identity",
      "name": "Kyc identity"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/complycube-vs-didit.json",
        "title": "ComplyCube vs Didit",
        "url": "https://www.anchorterminal.com/compare/complycube-vs-didit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complycube-vs-shufti.json",
        "title": "ComplyCube vs Shufti",
        "url": "https://www.anchorterminal.com/compare/complycube-vs-shufti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-jumio.json",
        "title": "Didit vs Jumio",
        "url": "https://www.anchorterminal.com/compare/didit-vs-jumio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-middesk.json",
        "title": "Didit vs Middesk",
        "url": "https://www.anchorterminal.com/compare/didit-vs-middesk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-persona.json",
        "title": "Didit vs Persona",
        "url": "https://www.anchorterminal.com/compare/didit-vs-persona"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-socure-riskos.json",
        "title": "Didit vs Socure RiskOS",
        "url": "https://www.anchorterminal.com/compare/didit-vs-socure-riskos"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-sumsub.json",
        "title": "Didit vs Sumsub",
        "url": "https://www.anchorterminal.com/compare/didit-vs-sumsub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-trulioo.json",
        "title": "Didit vs Trulioo",
        "url": "https://www.anchorterminal.com/compare/didit-vs-trulioo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-veriff.json",
        "title": "Didit vs Veriff",
        "url": "https://www.anchorterminal.com/compare/didit-vs-veriff"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jumio-vs-shufti.json",
        "title": "Jumio vs Shufti",
        "url": "https://www.anchorterminal.com/compare/jumio-vs-shufti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/persona-vs-shufti.json",
        "title": "Persona vs Shufti",
        "url": "https://www.anchorterminal.com/compare/persona-vs-shufti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shufti-vs-socure-riskos.json",
        "title": "Shufti vs Socure RiskOS",
        "url": "https://www.anchorterminal.com/compare/shufti-vs-socure-riskos"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shufti-vs-sumsub.json",
        "title": "Shufti vs Sumsub",
        "url": "https://www.anchorterminal.com/compare/shufti-vs-sumsub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shufti-vs-trulioo.json",
        "title": "Shufti vs Trulioo",
        "url": "https://www.anchorterminal.com/compare/shufti-vs-trulioo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shufti-vs-veriff.json",
        "title": "Shufti vs Veriff",
        "url": "https://www.anchorterminal.com/compare/shufti-vs-veriff"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complyadvantage-vs-didit.json",
        "title": "ComplyAdvantage vs Didit",
        "url": "https://www.anchorterminal.com/compare/complyadvantage-vs-didit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complyadvantage-vs-shufti.json",
        "title": "ComplyAdvantage vs Shufti",
        "url": "https://www.anchorterminal.com/compare/complyadvantage-vs-shufti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/middesk-vs-shufti.json",
        "title": "Middesk vs Shufti",
        "url": "https://www.anchorterminal.com/compare/middesk-vs-shufti"
      }
    ],
    "scores": [
      {
        "by": 15,
        "didit": 80,
        "edge": "didit",
        "key": "reliability",
        "name": "Reliability",
        "shufti": 65,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 30,
        "didit": 88,
        "edge": "didit",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "shufti": 58,
        "weight": 13
      },
      {
        "by": 22,
        "didit": 69,
        "edge": "didit",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "shufti": 47,
        "weight": 13
      },
      {
        "by": 14,
        "didit": 76,
        "edge": "didit",
        "key": "security",
        "name": "Security \u0026 auth",
        "shufti": 62,
        "weight": 14
      },
      {
        "by": 25,
        "didit": 60,
        "edge": "didit",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "shufti": 35,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "didit": 82,
        "edge": "didit",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "shufti": 72,
        "weight": 7
      },
      {
        "by": 8,
        "didit": 63,
        "edge": "shufti",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "shufti": 71,
        "weight": 7
      }
    ],
    "summary": "Didit scores 75 (BB) on agent readiness against Shufti's 57.8 (C), and leads in 6 of 7 scored categories. Shufti leads on transparency \u0026 trust. Both do kyc identity.",
    "verdicts": {
      "didit": "A self-serve verification API with public per-check prices, key registration by API, scoped keys and a 365-day audit log. The status page shows three incidents marked major between 22 July and 4 September 2026, each a partial outage of the core APIs, and the sub-processor list isn't public.",
      "shufti": "One endpoint covers document, face, address, AML and KYB checks, with a free plan of 10 verifications a month, and a hosted MCP server adds OAuth with three scopes. No OpenAPI file, server SDK or idempotency key was found, and the status page history could not be read."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/didit-vs-shufti",
    "json": "https://www.anchorterminal.com/compare/didit-vs-shufti.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/didit-vs-shufti.md",
    "slim": "https://www.anchorterminal.com/compare/didit-vs-shufti.min.md"
  },
  "markdown": "Didit scores 75 (BB) on agent readiness against Shufti's 57.8 (C), and leads in 6 of 7 scored categories. Shufti leads on transparency \u0026 trust. Both do kyc identity.\n\n- Didit: grade BB, 75/100, rank #60 of 842. Markdown https://www.anchorterminal.com/tools/didit.md · JSON https://www.anchorterminal.com/api/v1/tools/didit.json\n- Shufti: grade C, 57.8/100, rank #538 of 842. Markdown https://www.anchorterminal.com/tools/shufti.md · JSON https://www.anchorterminal.com/api/v1/tools/shufti.json\n\n## Which one, for what\n\n### Didit (BB)\n\nGood for: A team that wants document, liveness, screening and business registry checks from one API with public prices and no sales step, and an agent that has to set itself up.\n\nAhead on:\n- Reliability, 80 against 65\n- Schema \u0026 documentation, 88 against 58\n- Agent ergonomics, 69 against 47\n- Security \u0026 auth, 76 against 62\n- Payments \u0026 pricing, 60 against 35\n- Maintenance \u0026 community, 82 against 72\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Runs on your own machine\n\nWatch for: Three incidents marked major on status.didit.me from 22 July to 4 September 2026, each a partial outage of the core APIs traced to the primary database\n\n### Shufti (C)\n\nGood for: A team that wants document, face, address, AML and KYB checks behind one endpoint, a free plan for low volume, and an MCP server that hands the person a hosted verification link.\n\nAhead on:\n- Transparency \u0026 trust, 71 against 63\n\nWatch for: No OpenAPI file or other machine-readable contract was found. The reference is prose tables plus Postman collections\n\n\n## Score by category\n\n| Category | Weight | Didit | Shufti | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 65 | Didit +15 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 58 | Didit +30 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 47 | Didit +22 |\n| Security \u0026 auth | 14% (17.5 this run) | 76 | 62 | Didit +14 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 35 | Didit +25 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 72 | Didit +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 71 | Shufti +8 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **75 · BB** | **57.8 · C** | |\n\n## Facts side by side\n\n| Fact | Didit | Shufti |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Didit Identity Spain, S.L. | Shufti Pro Limited |\n| Hosted endpoint | `https://verification.didit.me` | `https://api.shuftipro.com` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP, Streamable HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Pay per use | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Didit's Business Terms and Conditions. The MCP server in didit-protocol/mcp is MIT | Proprietary service under Shufti's Terms and Conditions. The licences of the mobile capture SDKs were not checked |\n| Tools exposed | 156 | 25 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `me.didit/mcp` | not listed |\n| Last release | 2026-10-08 | 2026-10-06 |\n| Terms last updated | 2026-09-23 |  |\n| Privacy policy last updated | 2026-10-07 | 2026-09-01 |\n| Customer content may train models | yes, with an opt-out | yes, with an opt-out |\n| Terms restrict automated access | not found in the text |  |\n| Terms restrict benchmarking | yes |  |\n| Terms or service can change without notice | not found in the text |  |\n| Arbitration or class-action waiver | not found in the text |  |\n| Popularity | 0 stars, 27k npm/wk | 673 npm/wk |\n\n## Verdicts\n\n**Didit.** A self-serve verification API with public per-check prices, key registration by API, scoped keys and a 365-day audit log. The status page shows three incidents marked major between 22 July and 4 September 2026, each a partial outage of the core APIs, and the sub-processor list isn't public.\n\n**Shufti.** One endpoint covers document, face, address, AML and KYB checks, with a free plan of 10 verifications a month, and a hosted MCP server adds OAuth with three scopes. No OpenAPI file, server SDK or idempotency key was found, and the status page history could not be read.\n\n## Before you call either\n\n### Didit\n\n1. Register with `POST https://apx.didit.me/auth/v2/programmatic/register/`, then `verify-email` with the emailed 6-character code. Use a real inbox, because reserved test domains return 500.\n2. Send the key as `x-api-key` to `https://verification.didit.me/v3/`. The JWT from registration works only on `apx.didit.me`.\n3. Create a workflow before `POST /v3/session/`. `workflow_id` is the only required field, and an unfinished session with the same `vendor_data` is returned again.\n4. Read results from webhooks and use `GET /v3/session/{sessionId}/decision/` for back-fill. Every per-feature result is a plural array.\n5. The MCP server at `https://mcp.didit.me/mcp` takes OAuth sign-in only, never an API key. Approve `didit:verification` alone when the task doesn't change workflows or keys.\n\n### Shufti\n\n1. POST every verification to `https://api.shuftipro.com/` with a unique `reference` of 6 to 250 characters and one object per service. Read results from `/status` with that reference\n2. Register the callback domain in the back office first. An unregistered `callback_url` is rejected\n3. Stay under 60 requests a minute per IP on a production account and 20 on a trial account\n4. Check the `Signature` response header. Accounts created after 15 March 2023 hash the Secret Key with SHA-256 before appending it to the raw response\n5. Through MCP, identity checks return a `verification_url` for the person to open. No tool accepts an image, so use the REST API for offsite proofs\n\n## Questions\n\n### Which is better for AI agents, Didit or Shufti?\n\nDidit scores 75 (BB) on agent readiness against Shufti's 57.8 (C), and leads in 6 of 7 scored categories. Shufti leads on transparency \u0026 trust.\n\n### Do Didit and Shufti need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Didit and Shufti without installing anything?\n\nYes. Didit has a hosted endpoint at https://verification.didit.me and Shufti at https://api.shuftipro.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/didit-vs-shufti.json, and with the fewest tokens: https://www.anchorterminal.com/compare/didit-vs-shufti.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"didit\", \"b\": \"shufti\"}`. From a terminal: `anchor compare didit shufti`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/didit.json and https://www.anchorterminal.com/api/v1/tools/shufti.json\n\n## Other comparisons with Didit or Shufti\n\n- [ComplyCube vs Didit](https://www.anchorterminal.com/compare/complycube-vs-didit.md)\n- [ComplyCube vs Shufti](https://www.anchorterminal.com/compare/complycube-vs-shufti.md)\n- [Didit vs Jumio](https://www.anchorterminal.com/compare/didit-vs-jumio.md)\n- [Didit vs Middesk](https://www.anchorterminal.com/compare/didit-vs-middesk.md)\n- [Didit vs Persona](https://www.anchorterminal.com/compare/didit-vs-persona.md)\n- [Didit vs Socure RiskOS](https://www.anchorterminal.com/compare/didit-vs-socure-riskos.md)\n- [Didit vs Sumsub](https://www.anchorterminal.com/compare/didit-vs-sumsub.md)\n- [Didit vs Trulioo](https://www.anchorterminal.com/compare/didit-vs-trulioo.md)\n- [Didit vs Veriff](https://www.anchorterminal.com/compare/didit-vs-veriff.md)\n- [Jumio vs Shufti](https://www.anchorterminal.com/compare/jumio-vs-shufti.md)\n- [Persona vs Shufti](https://www.anchorterminal.com/compare/persona-vs-shufti.md)\n- [Shufti vs Socure RiskOS](https://www.anchorterminal.com/compare/shufti-vs-socure-riskos.md)\n- [Shufti vs Sumsub](https://www.anchorterminal.com/compare/shufti-vs-sumsub.md)\n- [Shufti vs Trulioo](https://www.anchorterminal.com/compare/shufti-vs-trulioo.md)\n- [Shufti vs Veriff](https://www.anchorterminal.com/compare/shufti-vs-veriff.md)\n- [ComplyAdvantage vs Didit](https://www.anchorterminal.com/compare/complyadvantage-vs-didit.md)\n- [ComplyAdvantage vs Shufti](https://www.anchorterminal.com/compare/complyadvantage-vs-shufti.md)\n- [Middesk vs Shufti](https://www.anchorterminal.com/compare/middesk-vs-shufti.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Didit vs Shufti",
        "url": ""
      }
    ],
    "description": "Didit scores 75 (BB) on agent readiness against Shufti's 57.8 (C), and leads in 6 of 7 scored categories. Shufti leads on transparency \u0026 trust. Both do kyc identity. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Didit BB 75",
      "Shufti C 57.8",
      "scores"
    ],
    "h1": "Didit vs Shufti",
    "image": "https://www.anchorterminal.com/assets/og/compare-didit-vs-shufti.png",
    "path": "/compare/didit-vs-shufti",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Didit vs Shufti for AI agents, BB 75 vs C 57.8 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-09",
    "url": "https://www.anchorterminal.com/compare/didit-vs-shufti"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 730
  },
  "version": 1
}
