{
  "data": {
    "a": {
      "slug": "plaid-identity-verification",
      "name": "Plaid Identity Verification",
      "vendor": "Plaid Inc.",
      "vendorUrl": "https://plaid.com/products/identity-verification/",
      "kind": "http-api",
      "category": "identity-verification",
      "summary": "Plaid Identity Verification checks a person against data sources, identity documents, selfies with liveness and SMS, with risk scoring and optional Monitor watchlist screening. Sessions run in Plaid Link or through a backend-only API flow.",
      "url": "https://www.anchorterminal.com/tools/plaid-identity-verification",
      "markdownUrl": "https://www.anchorterminal.com/tools/plaid-identity-verification.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/plaid-identity-verification.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/plaid-identity-verification.json",
      "repo": "https://github.com/plaid/plaid-openapi",
      "license": "Proprietary service under Plaid's developer policy and end-user terms. The OpenAPI file and client libraries are MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "plaid"
        },
        {
          "registry": "pypi",
          "name": "plaid-python"
        }
      ],
      "auth": "api-key",
      "authNotes": "`client_id` and `secret` in the JSON body of each POST to https://sandbox.plaid.com or https://production.plaid.com, with a separate secret per environment. No scopes. Sandbox for Identity Verification is enabled self-serve from the Dashboard Products page (since 12 August 2026). Production needs a product access request, and the integrating company must be based in the US, Canada or the UK (checked 2026-10-14).",
      "pricing": "paid",
      "pricingNotes": "No public prices. Each session is billed an Anti-Fraud Engine fee plus fees for data source verification (by country), document checks and selfie checks, and retries are billed as new sessions. Exact rates appear after applying for Production. Sandbox is free (https://plaid.com/docs/account/billing/, checked 2026-10-14).",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the Identity Verification docs, the API reference or the pricing page (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 1238045,
        "pypiWeekly": 656200,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://plaid.com/docs/identity-verification/",
      "llmsTxt": "https://plaid.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/plaid/plaid-openapi/master/2020-09-14.yml",
      "capabilities": [
        "kyc.identity",
        "kyc.documents",
        "kyc.screening"
      ],
      "tags": [
        "hosted",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "sandbox",
        "status-page",
        "python",
        "typescript",
        "go",
        "java",
        "ruby",
        "bug-bounty"
      ],
      "lastRelease": "2026-10-13",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 67.1,
        "grade": "B",
        "agentReady": false,
        "rank": 278,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 83,
          "payments": 15,
          "reliability": 68,
          "schema": 91,
          "security": 61,
          "transparency": 77
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Plaid Identity Verification has four typed endpoints in Plaid's public OpenAPI file, an idempotent create, a backend-only flow for data source checks and frequent changelog entries. Prices appear only after applying for Production, the secret has no scopes, and the rate-limit and error pages are disallowed to crawlers.",
        "bestFor": "US, Canadian and UK companies that want KYC with data source checks, documents and selfies, especially those already on Plaid or wanting Monitor screening in the same flow.",
        "strengths": [
          "Four typed endpoints in the public OpenAPI file, with llms.txt and Markdown docs",
          "Backend-only flow runs data source checks from user data with no Link session",
          "`is_idempotent` on create returns the existing session instead of making a second",
          "Six dated Identity Verification changelog entries between 9 July and 13 October 2026",
          "Self-serve Sandbox since 12 August 2026, with sample identities for test outcomes"
        ],
        "weaknesses": [
          "No public prices. Rates appear only after a Production application",
          "One team secret reaches every Plaid product, with no scopes or read-only key",
          "Integrating companies must be based in the US, Canada or the UK",
          "Data stays only while the contract is active, and access to past sessions ends with it",
          "Rate-limit and error pages sit under a path robots.txt disallows, so we didn't read them"
        ],
        "agentNotes": [
          "Pass `is_idempotent: true` to /identity_verification/create so a retry returns the existing session",
          "Use the backend-only flow (data source template, `gave_consent: true`) when you already hold the user's details. Documents and selfies need the person in Link",
          "Wait for the STATUS_UPDATED webhook or poll /identity_verification/get. Link's onSuccess doesn't mean the user passed",
          "Don't issue retries casually. Each retry is a new session billed again",
          "Enable Sandbox for Identity Verification on the Dashboard Products page before the first call"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 67.1
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 83,
          "payments": 15,
          "reliability": 68,
          "schema": 91,
          "security": 61,
          "transparency": 57
        },
        "provenanceScore": 97
      },
      "connect": {
        "http": "curl -X POST https://sandbox.plaid.com/identity_verification/create \\\n-H 'Content-Type: application/json' \\\n-d '{\n  \"client_user_id\": \"user-sandbox-b0e2c4ee-a763-4df5-bfe9-46a46bce993d\",\n  \"client_id\": \"${PLAID_CLIENT_ID}\",\n  \"secret\": \"${PLAID_SECRET}\",\n  \"is_shareable\": true,\n  \"template_id\": \"idvtmp_52xR9LKo77r1Np\",\n  \"gave_consent\": true\n}'"
      },
      "letme": {
        "capability": "https://letme.dev/kyc.identity",
        "tool": "https://letme.dev/plaid-identity-verification"
      },
      "sameCompany": [
        "plaid"
      ],
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Plaid Inc.",
        "domain": "plaid.com",
        "domainRegistered": "1995-08-16",
        "endpointOnVendorDomain": true,
        "terms": "https://plaid.com/legal/#developer-policy",
        "privacy": "https://plaid.com/legal/#privacy-statement",
        "statusPage": "https://status.plaid.com",
        "changelog": "https://plaid.com/docs/changelog/",
        "securityTxt": "valid",
        "checked": "2026-10-14",
        "notes": [
          "Same entity, legal pages and status page as the plaid listing. Plaid Financial Ltd and Plaid, B.V. cover the UK and the EEA.",
          "plaid.com/.well-known/security.txt lists HackerOne and security@plaid.com and expires 2026-12-31.",
          "plaid.com was registered in 1995, before Plaid was founded."
        ],
        "score": 97
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/plaid-identity-verification.json",
      "live": {
        "slug": "plaid-identity-verification",
        "vendorStatus": {
          "page": "https://status.plaid.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-14T09:53:20.159743826Z"
        },
        "updatedAt": "2026-10-14T09:53:20.159743826Z"
      }
    },
    "answer": "Plaid Identity Verification scores 67.1 (B) on agent readiness against Shufti's 57.8 (C), and leads in 5 of 7 scored categories. Shufti leads on payments \u0026 pricing.",
    "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": 631,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 12,
        "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-14T10:00:04.776495063Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 439,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 316,
          "p95ms24h": 418,
          "samples24h": 248,
          "samples30d": 1261,
          "days": [
            {
              "date": "2026-10-09",
              "probes": 169,
              "ok": 169
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 103,
              "ok": 103
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.shuftipro.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-14T08:53:55.897732357Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "shuftipro/iOS-SDK",
            "version": "3.6.0",
            "released": "2023-07-25",
            "seenAt": "2026-10-13T23:24:32.018892654Z"
          },
          {
            "registry": "npm",
            "name": "shuftipro-onsite-mobilesdk",
            "version": "1.1.2",
            "seenAt": "2026-10-13T23:24:31.153977856Z"
          }
        ],
        "githubStars": 13,
        "npmWeekly": 264,
        "securityTxt": {
          "url": "https://shuftipro.com/.well-known/security.txt",
          "state": "unknown",
          "checkedAt": "2026-10-13T15:45:53.468373373Z"
        },
        "llmsTxt": {
          "url": "https://developers.shuftipro.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-13T14:12:33.536092196Z"
        },
        "domain": {
          "domain": "shuftipro.com",
          "registered": "2016-06-28",
          "source": "https://rdap.verisign.com/com/v1/domain/shuftipro.com",
          "checkedAt": "2026-10-11T13:13:21.385938571Z"
        },
        "pages": [
          {
            "url": "https://developers.shuftipro.com/docs/revision_history",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-13T20:13:41.253235246Z",
            "changedAt": "2026-10-13T20:13:41.253235246Z",
            "fingerprint": "dc6cece4b80e"
          },
          {
            "url": "https://shuftipro.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-13T20:23:06.746835684Z",
            "changedAt": "2026-10-13T20:23:06.746835684Z",
            "fingerprint": "c1066f033e45"
          },
          {
            "url": "https://shuftipro.com/services-privacy-notice/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-13T20:23:09.026573958Z",
            "changedAt": "2026-10-13T20:23:09.026573958Z",
            "fingerprint": "5f64840666c9"
          }
        ],
        "updatedAt": "2026-10-14T10:00:04.776495063Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Plaid Inc.",
        "b": "Shufti Pro Limited",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.shuftipro.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Plaid's developer policy and end-user terms. The OpenAPI file and client libraries are MIT",
        "b": "Proprietary service under Shufti's Terms and Conditions. The licences of the mobile capture SDKs were not checked",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "25",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-13",
        "b": "2026-10-06",
        "name": "Last release"
      },
      {
        "a": "2025-12-01",
        "b": "",
        "name": "Terms last updated"
      },
      {
        "a": "2025-12-01",
        "b": "2026-09-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "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": "1.2M npm/wk, 656k PyPI/wk",
        "b": "673 npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Plaid Identity Verification scores 67.1 (B) on agent readiness against Shufti's 57.8 (C), and leads in 5 of 7 scored categories. Shufti leads on payments \u0026 pricing.",
        "question": "Which is better for AI agents, Plaid Identity Verification or Shufti?"
      },
      {
        "answer": "Plaid Identity Verification needs an API key. Shufti takes an API key or an OAuth sign-in.",
        "question": "Do Plaid Identity Verification and Shufti need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Plaid Identity Verification. Shufti has a hosted endpoint at https://api.shuftipro.com.",
        "question": "Can an agent call Plaid Identity Verification and Shufti without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 91 against 58",
          "Agent ergonomics, 75 against 47",
          "Maintenance \u0026 community, 83 against 72",
          "Transparency \u0026 trust, 77 against 71"
        ],
        "also": null,
        "goodFor": "US, Canadian and UK companies that want KYC with data source checks, documents and selfies, especially those already on Plaid or wanting Monitor screening in the same flow.",
        "slug": "plaid-identity-verification",
        "watchFor": "No public prices. Rates appear only after a Production application"
      },
      {
        "aheadOn": [
          "Payments \u0026 pricing, 35 against 15"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Free to start without a card"
        ],
        "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": "Identity verification"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/alloy-vs-plaid-identity-verification.json",
        "title": "Alloy vs Plaid Identity Verification",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-plaid-identity-verification"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alloy-vs-shufti.json",
        "title": "Alloy vs Shufti",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-shufti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complycube-vs-plaid-identity-verification.json",
        "title": "ComplyCube vs Plaid Identity Verification",
        "url": "https://www.anchorterminal.com/compare/complycube-vs-plaid-identity-verification"
      },
      {
        "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-plaid-identity-verification.json",
        "title": "Didit vs Plaid Identity Verification",
        "url": "https://www.anchorterminal.com/compare/didit-vs-plaid-identity-verification"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-shufti.json",
        "title": "Didit vs Shufti",
        "url": "https://www.anchorterminal.com/compare/didit-vs-shufti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/entrust-identity-verification-vs-plaid-identity-verification.json",
        "title": "Entrust Identity Verification (formerly Onfido) vs Plaid Identity Verification",
        "url": "https://www.anchorterminal.com/compare/entrust-identity-verification-vs-plaid-identity-verification"
      },
      {
        "json": "https://www.anchorterminal.com/compare/entrust-identity-verification-vs-shufti.json",
        "title": "Entrust Identity Verification (formerly Onfido) vs Shufti",
        "url": "https://www.anchorterminal.com/compare/entrust-identity-verification-vs-shufti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jumio-vs-plaid-identity-verification.json",
        "title": "Jumio vs Plaid Identity Verification",
        "url": "https://www.anchorterminal.com/compare/jumio-vs-plaid-identity-verification"
      },
      {
        "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/middesk-vs-plaid-identity-verification.json",
        "title": "Middesk vs Plaid Identity Verification",
        "url": "https://www.anchorterminal.com/compare/middesk-vs-plaid-identity-verification"
      },
      {
        "json": "https://www.anchorterminal.com/compare/persona-vs-plaid-identity-verification.json",
        "title": "Persona vs Plaid Identity Verification",
        "url": "https://www.anchorterminal.com/compare/persona-vs-plaid-identity-verification"
      },
      {
        "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/plaid-identity-verification-vs-socure-riskos.json",
        "title": "Plaid Identity Verification vs Socure RiskOS",
        "url": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-socure-riskos"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-stripe-identity.json",
        "title": "Plaid Identity Verification vs Stripe Identity",
        "url": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-stripe-identity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-sumsub.json",
        "title": "Plaid Identity Verification vs Sumsub",
        "url": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-sumsub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-trulioo.json",
        "title": "Plaid Identity Verification vs Trulioo",
        "url": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-trulioo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-veriff.json",
        "title": "Plaid Identity Verification vs Veriff",
        "url": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-veriff"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-vouched.json",
        "title": "Plaid Identity Verification vs Vouched",
        "url": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-vouched"
      },
      {
        "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-stripe-identity.json",
        "title": "Shufti vs Stripe Identity",
        "url": "https://www.anchorterminal.com/compare/shufti-vs-stripe-identity"
      },
      {
        "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/shufti-vs-vouched.json",
        "title": "Shufti vs Vouched",
        "url": "https://www.anchorterminal.com/compare/shufti-vs-vouched"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complyadvantage-vs-plaid-identity-verification.json",
        "title": "ComplyAdvantage vs Plaid Identity Verification",
        "url": "https://www.anchorterminal.com/compare/complyadvantage-vs-plaid-identity-verification"
      },
      {
        "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": 3,
        "edge": "plaid-identity-verification",
        "key": "reliability",
        "name": "Reliability",
        "plaid-identity-verification": 68,
        "shufti": 65,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 33,
        "edge": "plaid-identity-verification",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "plaid-identity-verification": 91,
        "shufti": 58,
        "weight": 13
      },
      {
        "by": 28,
        "edge": "plaid-identity-verification",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "plaid-identity-verification": 75,
        "shufti": 47,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "shufti",
        "key": "security",
        "name": "Security \u0026 auth",
        "plaid-identity-verification": 61,
        "shufti": 62,
        "weight": 14
      },
      {
        "by": 20,
        "edge": "shufti",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "plaid-identity-verification": 15,
        "shufti": 35,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "edge": "plaid-identity-verification",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "plaid-identity-verification": 83,
        "shufti": 72,
        "weight": 7
      },
      {
        "by": 6,
        "edge": "plaid-identity-verification",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "plaid-identity-verification": 77,
        "shufti": 71,
        "weight": 7
      }
    ],
    "summary": "Plaid Identity Verification scores 67.1 (B) on agent readiness against Shufti's 57.8 (C), and leads in 5 of 7 scored categories. Shufti leads on payments \u0026 pricing. Both do identity verification.",
    "verdicts": {
      "plaid-identity-verification": "Plaid Identity Verification has four typed endpoints in Plaid's public OpenAPI file, an idempotent create, a backend-only flow for data source checks and frequent changelog entries. Prices appear only after applying for Production, the secret has no scopes, and the rate-limit and error pages are disallowed to crawlers.",
      "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/plaid-identity-verification-vs-shufti",
    "json": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-shufti.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-shufti.md",
    "slim": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-shufti.min.md"
  },
  "markdown": "Plaid Identity Verification scores 67.1 (B) on agent readiness against Shufti's 57.8 (C), and leads in 5 of 7 scored categories. Shufti leads on payments \u0026 pricing. Both do identity verification.\n\n- Plaid Identity Verification: grade B, 67.1/100, rank #278 of 1076. Markdown https://www.anchorterminal.com/tools/plaid-identity-verification.md · JSON https://www.anchorterminal.com/api/v1/tools/plaid-identity-verification.json\n- Shufti: grade C, 57.8/100, rank #631 of 1076. Markdown https://www.anchorterminal.com/tools/shufti.md · JSON https://www.anchorterminal.com/api/v1/tools/shufti.json\n- Best identity and business verification APIs for AI agents: https://www.anchorterminal.com/best/identity-verification/index.md\n- All 119 verification comparisons: https://www.anchorterminal.com/compare/identity-verification/index.md\n\n## Which one, for what\n\n### Plaid Identity Verification (B)\n\nGood for: US, Canadian and UK companies that want KYC with data source checks, documents and selfies, especially those already on Plaid or wanting Monitor screening in the same flow.\n\nAhead on:\n- Schema \u0026 documentation, 91 against 58\n- Agent ergonomics, 75 against 47\n- Maintenance \u0026 community, 83 against 72\n- Transparency \u0026 trust, 77 against 71\n\nWatch for: No public prices. Rates appear only after a Production application\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- Payments \u0026 pricing, 35 against 15\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Free to start without a card\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 | Plaid Identity Verification | Shufti | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 65 | Plaid Identity Verification +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 91 | 58 | Plaid Identity Verification +33 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 47 | Plaid Identity Verification +28 |\n| Security \u0026 auth | 14% (17.5 this run) | 61 | 62 | Shufti +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 15 | 35 | Shufti +20 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 72 | Plaid Identity Verification +11 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 77 | 71 | Plaid Identity Verification +6 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **67.1 · B** | **57.8 · C** | |\n\n## Facts side by side\n\n| Fact | Plaid Identity Verification | Shufti |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Plaid Inc. | Shufti Pro Limited |\n| Hosted endpoint | no (local only) | `https://api.shuftipro.com` |\n| Transports | HTTP | HTTP, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Paid | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under Plaid's developer policy and end-user terms. The OpenAPI file and client libraries are MIT | Proprietary service under Shufti's Terms and Conditions. The licences of the mobile capture SDKs were not checked |\n| Tools exposed | none | 25 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-13 | 2026-10-06 |\n| Terms last updated | 2025-12-01 |  |\n| Privacy policy last updated | 2025-12-01 | 2026-09-01 |\n| Customer content may train models | not found in the text | 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 | 1.2M npm/wk, 656k PyPI/wk | 673 npm/wk |\n\n## Verdicts\n\n**Plaid Identity Verification.** Plaid Identity Verification has four typed endpoints in Plaid's public OpenAPI file, an idempotent create, a backend-only flow for data source checks and frequent changelog entries. Prices appear only after applying for Production, the secret has no scopes, and the rate-limit and error pages are disallowed to crawlers.\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### Plaid Identity Verification\n\n1. Pass `is_idempotent: true` to /identity_verification/create so a retry returns the existing session\n2. Use the backend-only flow (data source template, `gave_consent: true`) when you already hold the user's details. Documents and selfies need the person in Link\n3. Wait for the STATUS_UPDATED webhook or poll /identity_verification/get. Link's onSuccess doesn't mean the user passed\n4. Don't issue retries casually. Each retry is a new session billed again\n5. Enable Sandbox for Identity Verification on the Dashboard Products page before the first call\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, Plaid Identity Verification or Shufti?\n\nPlaid Identity Verification scores 67.1 (B) on agent readiness against Shufti's 57.8 (C), and leads in 5 of 7 scored categories. Shufti leads on payments \u0026 pricing.\n\n### Do Plaid Identity Verification and Shufti need an API key?\n\nPlaid Identity Verification needs an API key. Shufti takes an API key or an OAuth sign-in.\n\n### Can an agent call Plaid Identity Verification and Shufti without installing anything?\n\nNo hosted endpoint is listed for Plaid Identity Verification. Shufti has a hosted endpoint at https://api.shuftipro.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/plaid-identity-verification-vs-shufti.json, and with the fewest tokens: https://www.anchorterminal.com/compare/plaid-identity-verification-vs-shufti.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"plaid-identity-verification\", \"b\": \"shufti\"}`. From a terminal: `anchor compare plaid-identity-verification shufti`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/plaid-identity-verification.json and https://www.anchorterminal.com/api/v1/tools/shufti.json\n\n## Other comparisons with Plaid Identity Verification or Shufti\n\n- [Alloy vs Plaid Identity Verification](https://www.anchorterminal.com/compare/alloy-vs-plaid-identity-verification.md)\n- [Alloy vs Shufti](https://www.anchorterminal.com/compare/alloy-vs-shufti.md)\n- [ComplyCube vs Plaid Identity Verification](https://www.anchorterminal.com/compare/complycube-vs-plaid-identity-verification.md)\n- [ComplyCube vs Shufti](https://www.anchorterminal.com/compare/complycube-vs-shufti.md)\n- [Didit vs Plaid Identity Verification](https://www.anchorterminal.com/compare/didit-vs-plaid-identity-verification.md)\n- [Didit vs Shufti](https://www.anchorterminal.com/compare/didit-vs-shufti.md)\n- [Entrust Identity Verification (formerly Onfido) vs Plaid Identity Verification](https://www.anchorterminal.com/compare/entrust-identity-verification-vs-plaid-identity-verification.md)\n- [Entrust Identity Verification (formerly Onfido) vs Shufti](https://www.anchorterminal.com/compare/entrust-identity-verification-vs-shufti.md)\n- [Jumio vs Plaid Identity Verification](https://www.anchorterminal.com/compare/jumio-vs-plaid-identity-verification.md)\n- [Jumio vs Shufti](https://www.anchorterminal.com/compare/jumio-vs-shufti.md)\n- [Middesk vs Plaid Identity Verification](https://www.anchorterminal.com/compare/middesk-vs-plaid-identity-verification.md)\n- [Persona vs Plaid Identity Verification](https://www.anchorterminal.com/compare/persona-vs-plaid-identity-verification.md)\n- [Persona vs Shufti](https://www.anchorterminal.com/compare/persona-vs-shufti.md)\n- [Plaid Identity Verification vs Socure RiskOS](https://www.anchorterminal.com/compare/plaid-identity-verification-vs-socure-riskos.md)\n- [Plaid Identity Verification vs Stripe Identity](https://www.anchorterminal.com/compare/plaid-identity-verification-vs-stripe-identity.md)\n- [Plaid Identity Verification vs Sumsub](https://www.anchorterminal.com/compare/plaid-identity-verification-vs-sumsub.md)\n- [Plaid Identity Verification vs Trulioo](https://www.anchorterminal.com/compare/plaid-identity-verification-vs-trulioo.md)\n- [Plaid Identity Verification vs Veriff](https://www.anchorterminal.com/compare/plaid-identity-verification-vs-veriff.md)\n- [Plaid Identity Verification vs Vouched](https://www.anchorterminal.com/compare/plaid-identity-verification-vs-vouched.md)\n- [Shufti vs Socure RiskOS](https://www.anchorterminal.com/compare/shufti-vs-socure-riskos.md)\n- [Shufti vs Stripe Identity](https://www.anchorterminal.com/compare/shufti-vs-stripe-identity.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- [Shufti vs Vouched](https://www.anchorterminal.com/compare/shufti-vs-vouched.md)\n- [ComplyAdvantage vs Plaid Identity Verification](https://www.anchorterminal.com/compare/complyadvantage-vs-plaid-identity-verification.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-14",
    "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": "Plaid Identity Verification vs Shufti",
        "url": ""
      }
    ],
    "description": "Plaid Identity Verification scores 67.1 (B) to Shufti's 57.8 (C) for identity verification. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Plaid Identity Verification B 67.1",
      "Shufti C 57.8",
      "scores"
    ],
    "h1": "Plaid Identity Verification vs Shufti",
    "image": "https://www.anchorterminal.com/assets/og/compare-plaid-identity-verification-vs-shufti.png",
    "path": "/compare/plaid-identity-verification-vs-shufti",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Plaid Identity Verification vs Shufti for AI agents (2026)",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-shufti"
  },
  "tokens": {
    "markdown": 2750,
    "slim": 780
  },
  "version": 1
}
