{
  "data": {
    "category": {
      "area": "domain-data",
      "capabilities": [
        "kyc.identity",
        "kyc.business",
        "kyc.documents",
        "kyc.screening",
        "kyc.cases"
      ],
      "description": "Services that verify a person from an identity document and a selfie, or a business from registry records, and screen both against sanctions and watchlists. Compared on the checks covered, how a verification is started and read, webhooks and data retention.",
      "json": "https://www.anchorterminal.com/categories/identity-verification.json",
      "name": "Identity \u0026 business verification",
      "slug": "identity-verification",
      "test": "One test person and one test business run through each listing's sandbox. A verification is started, completed with the vendor's test documents and read back, with a watchlist screen. We check the result fields, status events, retention controls and redaction. In this run listings are graded from public evidence against the published checklist.",
      "title": "Identity and business verification APIs for AI agents",
      "toolCount": 6,
      "tools": [
        "persona",
        "sumsub",
        "veriff",
        "middesk",
        "trulioo",
        "jumio"
      ],
      "url": "https://www.anchorterminal.com/categories/identity-verification"
    },
    "tools": [
      {
        "slug": "persona",
        "name": "Persona",
        "vendor": "Persona Identities, Inc.",
        "vendorUrl": "https://withpersona.com",
        "kind": "http-api",
        "category": "identity-verification",
        "summary": "Persona is an identity verification platform from Persona Identities, Inc. Its REST API and hosted MCP server create inquiries, run government ID, selfie, document and database verifications, screen people and businesses against watchlists, and manage review cases.",
        "url": "https://www.anchorterminal.com/tools/persona",
        "markdownUrl": "https://www.anchorterminal.com/tools/persona.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/persona.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/persona.json",
        "license": "Proprietary service under Persona's terms of service. The `persona` JavaScript client on npm is MIT",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://mcp.withpersona.com",
        "packages": [
          {
            "registry": "npm",
            "name": "persona"
          }
        ],
        "auth": "api-key",
        "authNotes": "Self-serve API key, sent as `Authorization: Bearer \u003ckey\u003e` to https://api.withpersona.com/api/v1. A browser sign-up with a business email gives a sandbox key (`persona_sandbox_...`) at once. A production key (`persona_production_...`) needs a plan and Persona's approval of the organisation. Each key can be limited to about 50 read and write permissions per resource, given its own rate limit and an IP allowlist, and expired through the dashboard or the API. A new key has every standard permission until someone limits it. The MCP server at https://mcp.withpersona.com takes the same key. Its help article says OAuth is coming and isn't available yet (checked 2026-10-08).",
        "pricing": "paid",
        "pricingNotes": "The Essential plan starts at $250 a month on a 12-month contract with 500 verifications or reports a month included, then $1.50 for each further one, per the help centre. Growth and Enterprise are priced through sales. A 60-day trial with no card gives sandbox access and up to 50 services, so an agent can build and test without a contract, but the sandbox performs no real verifications. A Startup Programme gives eligible small companies 500 free verifications a month for a year. The pricing page itself refused our reader (checked 2026-10-08).",
        "priceSummary": "$250 / mo",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in the API docs, the OpenAPI file, the MCP tool list or the help centre's plan articles (checked 2026-10-08).",
          "endpoints": []
        },
        "toolCount": 190,
        "popularity": {
          "githubStars": null,
          "npmWeekly": 570188,
          "pypiWeekly": null,
          "asOf": "2026-10-08"
        },
        "docsUrl": "https://docs.withpersona.com/getting-started",
        "llmsTxt": "https://docs.withpersona.com/llms.txt",
        "openapi": "https://docs.withpersona.com/openapi/api-reference.json",
        "capabilities": [
          "kyc.identity",
          "kyc.business",
          "kyc.documents",
          "kyc.screening",
          "kyc.cases"
        ],
        "tags": [
          "hosted",
          "paid",
          "sandbox",
          "api-key",
          "mcp",
          "openapi",
          "llms-txt",
          "webhooks",
          "json-api",
          "status-page",
          "soc2",
          "iso27001"
        ],
        "lastRelease": "2026-09-29",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 69.5,
          "grade": "B",
          "agentReady": false,
          "rank": 148,
          "ranked": true,
          "rankOf": 629,
          "categoryRank": 1,
          "methodology": "0.4",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 74,
            "maintenance": 75,
            "payments": 35,
            "reliability": 70,
            "schema": 85,
            "security": 73,
            "transparency": 68
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-08"
          },
          "negative": 0,
          "verdict": "The REST API has a public OpenAPI 3.1 file, llms.txt, API keys with per-resource permissions, idempotency keys on every POST and a 60-day sandbox trial with no card. Production needs a business review and a 12-month plan from $250 a month. The status page lists 11 incidents since 10 July 2026, including 70 minutes of timeouts across all products.",
          "bestFor": "A company that already runs Persona and wants an agent to create inquiries from templates, read verification and report results, screen against watchlists and work review cases with a permission-limited key.",
          "strengths": [
            "Public OpenAPI 3.1 file with 231 operations and 141 webhook definitions, plus llms.txt and a Markdown copy of every docs page",
            "API keys take about 50 read and write permissions per resource, an IP allowlist, their own rate limit and an expiry endpoint",
            "`Idempotency-Key` on every POST, cursor pagination, and `fields` and `include` parameters that trim responses",
            "API logs kept for two weeks and user audit logs for six months, both readable through the API",
            "Dated API versions selected per key or per request with `Persona-Version`, and a changelog with an RSS feed"
          ],
          "weaknesses": [
            "Production access needs Persona's approval and a 12-month plan from $250 a month, and API-only integration is limited to Enterprise plans",
            "Eleven incidents on the status page since 10 July 2026, five marked partial outage, most on document and government ID verifications",
            "The MCP server lists all 190 tools whatever the key allows, with no annotations, toolsets or read-only subset, and OAuth isn't available yet",
            "No official server-side SDK was found. The npm, iOS, Android and React Native packages are clients for the end-user flow",
            "The marketing site, terms, privacy policy and pricing page answered our reader with a bot check, and no SLA was found in the docs or help centre"
          ],
          "agentNotes": [
            "Ask for a dedicated key limited to the permissions the task needs. A new key has every standard permission until it's limited",
            "Send `Persona-Version` on every call and an `Idempotency-Key` on every POST. A replayed key returns the first result, including a 500",
            "Treat redact calls as irreversible. They permanently delete personal data and cascade to downstream objects",
            "Stay under 300 requests a minute in production, read `RateLimit-Remaining` and `Quota-Remaining`, and back off on 429 because rejected requests still count",
            "Use `fields` and `include` to cut response size. Through MCP these parameters aren't exposed, and only 14 tools take `filter`"
          ],
          "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": 69.5
            }
          ],
          "editorialScores": {
            "ergonomics": 74,
            "maintenance": 75,
            "payments": 35,
            "reliability": 70,
            "schema": 85,
            "security": 73,
            "transparency": 46
          },
          "provenanceScore": 90
        },
        "connect": {
          "http": "curl --request POST \\\n     --url https://api.withpersona.com/api/v1/inquiries \\\n     --header 'Persona-Version: 2023-01-05' \\\n     --header 'accept: application/json' \\\n     --header 'authorization: Bearer persona_sandbox_YOURAPIKEY' \\\n     --header 'content-type: application/json' \\\n     --data '{\"data\":{\"attributes\":{\"inquiry-template-id\":\"itmpl_YOURTEMPLATEID\",\"fields\":{\"name-first\":\"Jane\",\"name-last\":\"Doe\",\"birthdate\":\"1994-04-12\"}}}}'"
        },
        "letme": {
          "capability": "https://letme.dev/kyc.identity",
          "tool": "https://letme.dev/persona"
        },
        "area": "domain-data",
        "unitPrices": [
          {
            "item": "Essential plan",
            "unit": "month",
            "usd": 250,
            "note": "12-month contract, 500 verifications or reports a month included, unused ones don't roll over"
          },
          {
            "item": "Additional verification or report on the Essential plan",
            "unit": "tx",
            "usd": 1.5,
            "note": "Each service beyond the 500 included a month"
          }
        ],
        "provenance": {
          "legalEntity": "Persona Identities, Inc.",
          "domain": "withpersona.com",
          "domainRegistered": "2018-09-24",
          "endpointOnVendorDomain": true,
          "terms": "https://withpersona.com/legal/terms-of-service",
          "privacy": "https://withpersona.com/legal/privacy-policy",
          "statusPage": "https://status.withpersona.com",
          "changelog": "https://docs.withpersona.com/api-reference/versioning/changelog",
          "securityTxt": "valid",
          "checked": "2026-10-08",
          "notes": [
            "The help centre footer reads \"2026 Persona Identities, Inc.\", and the `persona` npm package names Persona Identities, Inc. as author.",
            "The API answers at api.withpersona.com and the MCP server at mcp.withpersona.com, both withpersona.com subdomains.",
            "withpersona.com/.well-known/security.txt gives security@withpersona.com, an expiry of 17 February 2027 and a note that disclosure runs through Bugcrowd.",
            "The terms and privacy URLs are the ones the status page links to. Both pages, and the rest of withpersona.com, answered our reader with a bot check (HTTP 403), so their text wasn't read.",
            "RDAP for withpersona.com gives a registration date of 2018-09-24 and MarkMonitor Inc. as registrar."
          ],
          "score": 90
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/persona.json",
        "live": {
          "slug": "persona",
          "probe": {
            "target": "https://mcp.withpersona.com",
            "method": "get",
            "lastAt": "2026-10-08T18:20:37.279762245Z",
            "lastOk": true,
            "lastStatus": 405,
            "lastMs": 147,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 148,
            "p95ms24h": 430,
            "samples24h": 33,
            "samples30d": 33,
            "days": [
              {
                "date": "2026-10-08",
                "probes": 33,
                "ok": 33
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.withpersona.com",
            "indicator": "unknown",
            "summary": "no machine-readable status found",
            "checkedAt": "2026-10-08T17:51:06.208771544Z"
          },
          "versions": [
            {
              "registry": "npm",
              "name": "persona",
              "version": "5.9.0",
              "seenAt": "2026-10-08T16:25:07.765894859Z"
            }
          ],
          "npmWeekly": 570188,
          "securityTxt": {
            "url": "https://withpersona.com/.well-known/security.txt",
            "state": "valid",
            "expires": "2027-02-17T08:00:00.000Z",
            "checkedAt": "2026-10-08T15:39:00.840131962Z"
          },
          "pages": [
            {
              "url": "https://docs.withpersona.com/api-reference/versioning/changelog",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-08T18:19:46.701685957Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "6f0e8de3c16e"
            }
          ],
          "updatedAt": "2026-10-08T18:20:37.279762245Z"
        }
      },
      {
        "slug": "sumsub",
        "name": "Sumsub",
        "vendor": "Sum and Substance Ltd",
        "vendorUrl": "https://sumsub.com",
        "kind": "http-api",
        "category": "identity-verification",
        "summary": "Sumsub verifies people from identity documents and a liveness check, verifies businesses against registries, and screens both against sanctions and watchlists. Agents reach it through a signed REST API and a hosted MCP server.",
        "url": "https://www.anchorterminal.com/tools/sumsub",
        "markdownUrl": "https://www.anchorterminal.com/tools/sumsub.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/sumsub.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/sumsub.json",
        "repo": "https://github.com/sumsub/agent-skills",
        "license": "Proprietary service under Sumsub's terms and conditions. The agent skills repository and the @sumsub/websdk npm package are MIT",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://api.sumsub.com",
        "packages": [
          {
            "registry": "npm",
            "name": "@sumsub/websdk"
          }
        ],
        "auth": "mixed",
        "authNotes": "The REST API takes an app token generated in the Dashboard by a signed-in team member. Each request carries `X-App-Token`, `X-App-Access-Ts` and `X-App-Access-Sig`, an HMAC-SHA256 signature made with the token's secret key over the timestamp, method, path and body. A token has its own permissions, an optional IP allowlist, an optional expiry date and optional source keys that limit it to a group of applicants, and it can be disabled or deleted but not edited. Sandbox and production tokens are separate. The MCP server at https://api.sumsub.com/mcp/ uses OAuth with PKCE and dynamic client registration, signs the user in with Sumsub, and needs the Use MCP server role permission. Production mode opens after Sumsub verifies the integration (https://docs.sumsub.com/reference/about-sumsub-api).",
        "pricing": "usage",
        "pricingNotes": "Basic is $1.35 per verification with a $149 monthly minimum, and Compliance is $1.85 with a $299 minimum and adds AML screening and address checks. Business verification, transaction monitoring and fraud prevention are on a custom plan through sales. Only completed checks are charged. Sandbox mode is free in any account, limited to 500 new applicants and 1,000 transactions per 24 hours. The 14-day trial of 50 real checks asks for bank card details (https://sumsub.com/pricing/, https://docs.sumsub.com/docs/self-service, checked 2026-10-08).",
        "priceSummary": "$1.35 / tx",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in the API reference, the OpenAPI spec or the pricing page (checked 2026-10-08).",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": null,
          "npmWeekly": 172226,
          "pypiWeekly": null,
          "asOf": "2026-10-08"
        },
        "docsUrl": "https://docs.sumsub.com",
        "llmsTxt": "https://docs.sumsub.com/llms.txt",
        "openapi": "https://api.sumsub.com/openapi.json",
        "capabilities": [
          "kyc.identity",
          "kyc.business",
          "kyc.documents",
          "kyc.screening",
          "kyc.cases"
        ],
        "tags": [
          "hosted",
          "usage-based",
          "sandbox",
          "api-key",
          "oauth",
          "mcp",
          "openapi",
          "llms-txt",
          "webhooks",
          "status-page",
          "sla",
          "bug-bounty",
          "soc2",
          "iso27001"
        ],
        "lastRelease": "2026-10-03",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 68.5,
          "grade": "B",
          "agentReady": false,
          "rank": 167,
          "ranked": true,
          "rankOf": 629,
          "categoryRank": 2,
          "methodology": "0.4",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 60,
            "maintenance": 74,
            "payments": 25,
            "reliability": 80,
            "schema": 78,
            "security": 80,
            "transparency": 74
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-08"
          },
          "negative": 0,
          "verdict": "Per-token permissions, an IP allowlist, HMAC-signed requests and a public OpenAPI spec with Markdown docs suit an agent working on verification cases. No idempotency keys or Retry-After guidance were found, there is no server SDK, and production access needs a browser signup, a bank card and Sumsub's review of the integration.",
          "bestFor": "An agent that starts verifications, sends links, reads results and AML cases, and works case queues for a regulated business, with one token limited to those permissions.",
          "strengths": [
            "App tokens carry per-token permissions, an optional IP allowlist and expiry date, and can be disabled with a recorded reason",
            "Requests are signed with HMAC-SHA256 over timestamp, method, path and body, so the secret key never travels",
            "Public OpenAPI 3.0.1 spec with 157 operations, llms.txt, and every docs page served as Markdown",
            "Hosted MCP server with OAuth, PKCE and dynamic client registration, gated by a Use MCP server role permission",
            "Terms publish a 99.5 per cent monthly uptime commitment, and the status page lists API, WebSDK and MobileSDK for three regions"
          ],
          "weaknesses": [
            "No idempotency keys and no Retry-After or backoff guidance found in the reviewed documentation",
            "Only 24 of 157 operations in the OpenAPI spec carry a summary or description, and 154 declare only a default response",
            "No official server-side SDK. Sumsub publishes request-signing examples in seven languages instead",
            "The 14-day trial of 50 real checks needs a bank card, and production opens after Sumsub checks the integration",
            "Terms clause 6.9 permits Sumsub to use customers' personal data to develop fraud detection, including machine learning models",
            "The subprocessor list is published in the Dashboard, not on a public page"
          ],
          "agentNotes": [
            "Sign every request. X-App-Access-Sig is the lowercase hex HMAC-SHA256 of timestamp, uppercase method, path with query and raw body, and the timestamp must be within one minute of server time",
            "Use a sandbox token (prefix sbx) for agent work. Sandbox and production tokens are separate, and Sumsub's own skills refuse any other prefix",
            "Stay under 300 GET and 50 POST requests per 5 seconds, and under 500 new applicants per 24 hours in Sandbox",
            "Token permissions can't be edited after creation. Generate a new token with the narrower set and delete the old one",
            "Subscribe to the applicantReviewed webhook for results and verify x-payload-digest against the raw body before trusting it"
          ],
          "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": 68.5
            }
          ],
          "editorialScores": {
            "ergonomics": 60,
            "maintenance": 74,
            "payments": 25,
            "reliability": 80,
            "schema": 78,
            "security": 80,
            "transparency": 52
          },
          "provenanceScore": 96
        },
        "connect": {
          "install": "npx skills add sumsub/agent-skills --all -g",
          "http": "curl -X GET \\\n  'https://api.sumsub.com/resources/auditTrailEvents/list?from=2024-06-01+00:00:00\u0026to=2024-06-30+23:59:59\u0026limit=100' \\\n  -H 'X-App-Token: \u003cyour-app-token\u003e' \\\n  -H 'X-App-Access-Sig: \u003cyour-signature\u003e' \\\n  -H 'X-App-Access-Ts: \u003cunix-timestamp\u003e'",
          "claudeCode": "claude mcp add --transport http sumsub https://api.sumsub.com/mcp/",
          "config": {
            "mcpServers": {
              "sumsub": {
                "args": [
                  "mcp-remote",
                  "https://api.sumsub.com/mcp/"
                ],
                "command": "npx"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/kyc.identity",
          "tool": "https://letme.dev/sumsub"
        },
        "area": "domain-data",
        "unitPrices": [
          {
            "item": "Basic plan, user verification",
            "unit": "tx",
            "usd": 1.35,
            "note": "per completed verification; $149 monthly minimum"
          },
          {
            "item": "Compliance plan, user verification with AML screening and address check",
            "unit": "tx",
            "usd": 1.85,
            "note": "per completed verification; $299 monthly minimum"
          }
        ],
        "provenance": {
          "legalEntity": "Sum and Substance Ltd",
          "domain": "sumsub.com",
          "domainRegistered": "2015-05-01",
          "endpointOnVendorDomain": true,
          "terms": "https://sumsub.com/terms-and-conditions/",
          "privacy": "https://sumsub.com/privacy-notice-service/",
          "statusPage": "https://status.sumsub.com",
          "changelog": "https://docs.sumsub.com/changelog",
          "securityTxt": "valid",
          "checked": "2026-10-08",
          "notes": [
            "The terms (version of 21 May 2026) name Sum and Substance Ltd, England, company number 09688671, 30 St. Mary Axe, London EC3A 8BF, with contracting entities in the UAE, Delaware, Singapore and Cyprus depending on where the customer is registered.",
            "The API and the MCP server answer at api.sumsub.com, and the Dashboard and OAuth issuer at cockpit.sumsub.com.",
            "sumsub.com/.well-known/security.txt gives security@sumsub.com and a Bugcrowd engagement as contacts and expires on 2027-12-31.",
            "The service privacy notice was last updated on 19 March 2026. The data processing agreement is Annex 3 of the terms.",
            "RDAP for sumsub.com gives a registration date of 2015-05-01."
          ],
          "score": 96
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/sumsub.json",
        "live": {
          "slug": "sumsub",
          "probe": {
            "target": "https://api.sumsub.com",
            "method": "get",
            "lastAt": "2026-10-08T18:20:41.174437615Z",
            "lastOk": true,
            "lastStatus": 200,
            "lastMs": 181,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 209,
            "p95ms24h": 298,
            "samples24h": 33,
            "samples30d": 33,
            "days": [
              {
                "date": "2026-10-08",
                "probes": 33,
                "ok": 33
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.sumsub.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-08T18:22:20.872598047Z"
          },
          "versions": [
            {
              "registry": "npm",
              "name": "@sumsub/websdk",
              "version": "2.9.0",
              "seenAt": "2026-10-08T16:31:00.353997894Z"
            }
          ],
          "githubStars": 7,
          "npmWeekly": 172226,
          "securityTxt": {
            "url": "https://sumsub.com/.well-known/security.txt",
            "state": "valid",
            "expires": "2027-12-31T11:59:00Z",
            "checkedAt": "2026-10-08T15:38:36.412722848Z"
          },
          "pages": [
            {
              "url": "https://docs.sumsub.com/changelog",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-08T18:19:32.69717252Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "24fd7917e5f9"
            },
            {
              "url": "https://sumsub.com/pricing/",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-08T18:24:56.017931789Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "8df9176ba407"
            },
            {
              "url": "https://sumsub.com/privacy-notice-service/",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-08T18:24:58.191382748Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "676c31f026df"
            },
            {
              "url": "https://sumsub.com/terms-and-conditions/",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-08T18:25:00.198690776Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "63e133a2d160"
            }
          ],
          "updatedAt": "2026-10-08T18:25:00.198690776Z"
        }
      },
      {
        "slug": "veriff",
        "name": "Veriff",
        "vendor": "Veriff OÜ",
        "vendorUrl": "https://www.veriff.com",
        "kind": "http-api",
        "category": "identity-verification",
        "summary": "Identity verification service from Veriff in Tallinn. It checks an identity document and a selfie, with liveness, database checks and PEP and sanctions screening. Sessions are created and read through the Public API v1, with results sent by webhook.",
        "url": "https://www.anchorterminal.com/tools/veriff",
        "markdownUrl": "https://www.anchorterminal.com/tools/veriff.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/veriff.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/veriff.json",
        "repo": "https://github.com/Veriff/veriff-js-sdk",
        "license": "Proprietary service. The npm capture SDKs are ISC (@veriff/js-sdk, @veriff/incontext-sdk) and MIT (@veriff/react-native-sdk)",
        "transports": [
          "http"
        ],
        "packages": [
          {
            "registry": "npm",
            "name": "@veriff/incontext-sdk"
          },
          {
            "registry": "npm",
            "name": "@veriff/js-sdk"
          },
          {
            "registry": "npm",
            "name": "@veriff/react-native-sdk"
          }
        ],
        "auth": "api-key",
        "authNotes": "Self-serve. Signing up for a Self-Serve plan creates a Customer Portal account with a test integration, and Enterprise accounts start from a sales form. Each integration has an API key, sent as `X-AUTH-CLIENT`, and up to five shared secret keys used to compute an HMAC-SHA256 `X-HMAC-SIGNATURE` (over the body on POST and PATCH, over the session ID on GET and DELETE). POST /v1/sessions needs only the API key. Secrets are shown once and can be rotated or deleted by an admin. There are no scopes. A live integration unlocks once the account holder passes Veriff's own identity verification.",
        "pricing": "usage",
        "pricingNotes": "Self-Serve is priced per verification with a monthly minimum. Essential is $0.80 ($49 a month minimum), Plus $1.39 ($99) and Premium $1.89 ($209). PEP and sanctions screening adds $0.64, ongoing monitoring $0.09 and two-year retention $0.30. A 15-day trial covers up to 50 sessions with no card, after the account holder completes identity verification. Test integrations are free and unbilled. Enterprise, suggested for 5,000 or more verifications a month, is priced by sales (https://www.veriff.com/plans/self-serve, checked 2026-10-08).",
        "priceSummary": "$0.80 / tx",
        "where": "local",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in the developer docs index, the API guides or the pricing page (checked 2026-10-08).",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": 32,
          "npmWeekly": 109625,
          "pypiWeekly": null,
          "asOf": "2026-10-08"
        },
        "docsUrl": "https://devdocs.veriff.com",
        "llmsTxt": "https://devdocs.veriff.com/llms.txt",
        "openapi": "https://devdocs.veriff.com/apidocs/v1sessions.md",
        "capabilities": [
          "kyc.identity",
          "kyc.documents",
          "kyc.screening"
        ],
        "tags": [
          "hosted",
          "api-key",
          "hmac",
          "webhooks",
          "openapi",
          "llms-txt",
          "free-trial",
          "sandbox",
          "status-page",
          "bug-bounty",
          "soc2",
          "iso27001"
        ],
        "lastRelease": "2026-10-02",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 61.1,
          "grade": "C",
          "agentReady": false,
          "rank": 334,
          "ranked": true,
          "rankOf": 629,
          "categoryRank": 3,
          "methodology": "0.4",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 43,
            "maintenance": 74,
            "payments": 40,
            "reliability": 62,
            "schema": 82,
            "security": 63,
            "transparency": 67
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-08"
          },
          "negative": 0,
          "verdict": "Per-verification prices are public from $0.80, with a 15-day trial of 50 sessions and no card. Each endpoint page is Markdown with an OpenAPI 3.0 fragment. There is no server SDK, MCP server or idempotency key, most calls need an HMAC signature, and the status page shows nine incidents between 20 July and 7 October 2026.",
          "bestFor": "A team that needs document and selfie verification with public per-verification prices and a trial, and that can run a webhook receiver and HMAC signing.",
          "strengths": [
            "Public prices of $0.80, $1.39 and $1.89 a verification, with a 15-day trial of up to 50 sessions and no card",
            "llms.txt index and Markdown pages, each API endpoint with an OpenAPI 3.0.0 fragment, examples and error schemas",
            "Up to five shared secret keys per integration, shown once, with documented rotation and deletion",
            "Test integrations are created at signup, aren't billed, and let the developer force a decision",
            "ISO/IEC 27001:2022, SOC 2 Type II, Cyber Essentials and a bug bounty on Intigriti paying 50 to 6,000 euros"
          ],
          "weaknesses": [
            "No server-side SDK and no MCP server. Official packages cover only browser and mobile capture",
            "No idempotency key on POST /v1/sessions, and no Retry-After or backoff guidance for the documented 429",
            "Nine status-page incidents between 20 July and 7 October 2026, mostly delayed decisions in the US region",
            "No endpoint lists sessions and no pagination was found. Every read needs a stored session ID",
            "Session deletion by API is off by default and capped at 10 sessions in 24 hours",
            "No security.txt, and the sub-processor list sits on a help centre page that needs JavaScript"
          ],
          "agentNotes": [
            "Take the base URL from the integration's API keys page. Send X-AUTH-CLIENT on every call and store verification.id from POST /v1/sessions",
            "Sign POST and PATCH bodies, and the session ID on GET and DELETE, with HMAC-SHA256 in X-HMAC-SIGNATURE. POST /v1/sessions needs no signature",
            "Stay under 30 session creations a minute on Self-Serve, 600 on Enterprise. A 429 carries code 1004",
            "Don't blindly retry POST /v1/sessions. Each call makes a new session, which is billed on a live integration",
            "Poll GET /v1/sessions/{id}/decision until `verification` is not null, or accept webhooks within 5 seconds and treat duplicates as normal"
          ],
          "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": 61.1
            }
          ],
          "editorialScores": {
            "ergonomics": 43,
            "maintenance": 74,
            "payments": 40,
            "reliability": 62,
            "schema": 82,
            "security": 63,
            "transparency": 48
          },
          "provenanceScore": 85
        },
        "connect": {
          "http": "curl -X POST \"https://\u003cBaseURL\u003e/v1/sessions\" \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-AUTH-CLIENT: API-KEY' \\\n  -d '{\"verification\": {}}'"
        },
        "letme": {
          "capability": "https://letme.dev/kyc.identity",
          "tool": "https://letme.dev/veriff"
        },
        "area": "domain-data",
        "unitPrices": [
          {
            "item": "Verification, Essential plan (automated decision)",
            "unit": "tx",
            "usd": 0.8,
            "note": "$49 a month minimum"
          },
          {
            "item": "Verification, Plus plan",
            "unit": "tx",
            "usd": 1.39,
            "note": "$99 a month minimum"
          },
          {
            "item": "Verification, Premium plan",
            "unit": "tx",
            "usd": 1.89,
            "note": "$209 a month minimum"
          },
          {
            "item": "PEP and sanctions screening add-on, per verification",
            "unit": "tx",
            "usd": 0.64,
            "note": "charged on top of the monthly minimum"
          },
          {
            "item": "Ongoing monitoring add-on, per verification",
            "unit": "tx",
            "usd": 0.09,
            "note": "charged on top of the monthly minimum"
          }
        ],
        "provenance": {
          "legalEntity": "Veriff OÜ",
          "domain": "veriff.com",
          "domainRegistered": "2006-04-12",
          "endpointOnVendorDomain": true,
          "terms": "https://www.veriff.com/terms-of-service",
          "privacy": "https://www.veriff.com/privacy-notice",
          "statusPage": "https://status.veriff.com",
          "changelog": "https://devdocs.veriff.com/docs/release-notes",
          "securityTxt": "none",
          "checked": "2026-10-08",
          "notes": [
            "The privacy notice (valid from 30 July 2020, last updated 16 April 2026) names Veriff OÜ and Veriff Brazil Ltda. and gives the Estonian Data Protection Inspectorate as lead supervisory authority.",
            "www.veriff.com/terms-of-service answers 200 with the title Terms of Service but no terms text in the HTML we fetched, so the terms themselves weren't read.",
            "www.veriff.com/.well-known/security.txt and /security.txt return 404. Reports go to a bug bounty programme on Intigriti (https://www.veriff.com/bug-bounty).",
            "The API base URL is per integration and shown in the Customer Portal. Code samples in the docs use https://stationapi.veriff.com.",
            "RDAP for veriff.com gives a registration date of 2006-04-12, which predates the company.",
            "The sub-processor list is linked from the privacy notice to help.veriff.com, which returned only a JavaScript shell to our fetch."
          ],
          "score": 85
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/veriff.json",
        "live": {
          "slug": "veriff",
          "vendorStatus": {
            "page": "https://status.veriff.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-08T18:22:22.90272638Z"
          },
          "versions": [
            {
              "registry": "github",
              "name": "Veriff/veriff-js-sdk",
              "version": "v2.0.0",
              "released": "2025-09-09",
              "seenAt": "2026-10-08T16:34:12.058479178Z"
            },
            {
              "registry": "npm",
              "name": "@veriff/incontext-sdk",
              "version": "2.5.0",
              "seenAt": "2026-10-08T16:34:07.822049846Z"
            },
            {
              "registry": "npm",
              "name": "@veriff/js-sdk",
              "version": "2.0.0",
              "seenAt": "2026-10-08T16:34:08.944903091Z"
            },
            {
              "registry": "npm",
              "name": "@veriff/react-native-sdk",
              "version": "13.2.0",
              "seenAt": "2026-10-08T16:34:10.073325113Z"
            }
          ],
          "githubStars": 32,
          "npmWeekly": 109625,
          "securityTxt": {
            "url": "https://veriff.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-08T15:38:34.847122653Z"
          },
          "pages": [
            {
              "url": "https://devdocs.veriff.com/docs/release-notes",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-08T18:17:01.404186048Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "26520a9df2cc"
            }
          ],
          "updatedAt": "2026-10-08T18:22:22.90272638Z"
        }
      },
      {
        "slug": "middesk",
        "name": "Middesk",
        "vendor": "Middesk, Inc.",
        "vendorUrl": "https://www.middesk.com",
        "kind": "http-api",
        "category": "identity-verification",
        "summary": "Business verification API from Middesk in San Francisco. It checks US and international businesses against registry, tax ID, sanctions and watchlist records, monitors them for changes, and files liens and state tax registrations, over REST and a hosted MCP server.",
        "url": "https://www.anchorterminal.com/tools/middesk",
        "markdownUrl": "https://www.anchorterminal.com/tools/middesk.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/middesk.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/middesk.json",
        "repo": "https://github.com/middesk/plugins",
        "license": "Proprietary service under Middesk's Business Verification Terms and Conditions. The Claude Code and Codex plugins on GitHub are MIT",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://api.middesk.com/v1",
        "packages": [],
        "auth": "mixed",
        "authNotes": "Access is granted by Middesk's sales team, and keys are then created in the dashboard under Settings, Developer, Credentials. An API key goes as the Basic auth username or as a Bearer token. `mk_test` keys work only against https://api-sandbox.middesk.com/v1 and `mk_live` keys only against https://api.middesk.com/v1. OAuth 2.0 authorisation code is available for acting in another Middesk user's account, with up to 5 clients an account, `read_only` or `read_write` scope, no consent screen, access tokens that don't expire and a revoke endpoint. The hosted MCP server takes OAuth 2.1 with PKCE and dynamic client registration, or a live API key as a Bearer token. The account's IP allowlist applies to OAuth requests.",
        "pricing": "paid",
        "pricingNotes": "No public prices. Fees are set in an order form under the Business Verification Terms and Conditions, the site has no pricing page (middesk.com/pricing returns 404) and its buttons ask for a demo. A sandbox with mock data comes with every account. Middesk's plugin README says trial accounts exist and issue test keys only, and we didn't find how one is opened without sales. Creating a business places billable orders (checked 2026-10-08).",
        "priceSummary": "Paid",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in the docs index, the OpenAPI spec or the site (checked 2026-10-08).",
          "endpoints": []
        },
        "toolCount": 11,
        "popularity": {
          "githubStars": 2,
          "npmWeekly": null,
          "pypiWeekly": null,
          "asOf": "2026-10-08"
        },
        "docsUrl": "https://docs.middesk.com",
        "llmsTxt": "https://docs.middesk.com/llms.txt",
        "openapi": "https://docs.middesk.com/openapi.json",
        "capabilities": [
          "kyc.business",
          "kyc.screening",
          "kyc.cases",
          "kyc.identity"
        ],
        "tags": [
          "hosted",
          "enterprise",
          "sales-led",
          "api-key",
          "oauth",
          "mcp",
          "openapi",
          "llms-txt",
          "webhooks",
          "sandbox",
          "graphql",
          "status-page",
          "soc2"
        ],
        "lastRelease": "2026-10-05",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 59,
          "grade": "C",
          "agentReady": false,
          "rank": 389,
          "ranked": true,
          "rankOf": 629,
          "categoryRank": 4,
          "methodology": "0.4",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 56,
            "maintenance": 64,
            "payments": 10,
            "reliability": 73,
            "schema": 82,
            "security": 56,
            "transparency": 61
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-08"
          },
          "negative": 0,
          "verdict": "A public OpenAPI 3.1 contract for 87 operations, llms.txt, Markdown docs and a dated weekly changelog make the REST API readable to an agent, and OAuth has a read-only scope. Access is sales-led. No price, self-serve signup or official SDK was found, and the hosted MCP server rejects sandbox keys.",
          "bestFor": "An agent onboarding or re-checking US businesses for a bank, lender or marketplace that already holds a Middesk contract, with registry, TIN, sanctions and lien data in one object.",
          "strengths": [
            "Public OpenAPI 3.1 spec with 87 operations and 373 schemas, plus llms.txt and a Markdown copy of every docs page",
            "Dated changelog with nine entries between 20 July and 5 October 2026, breaking changes labelled as such",
            "OAuth 2.0 with `read_only` and `read_write` scopes and a revoke endpoint. The MCP server adds PKCE and dynamic client registration",
            "Sandbox at api-sandbox.middesk.com with documented trigger values for names, addresses, TINs, people and watchlist hits",
            "The public terms of 21 August 2026 bar training generative AI models on customer data in any form"
          ],
          "weaknesses": [
            "No public price. Fees are set in an order form, and every docs page ends with a prompt to contact sales",
            "No official SDK found on npm, PyPI or RubyGems, and none in the vendor's GitHub organisation",
            "The hosted MCP server runs against production only, so a sandbox key fails on every call",
            "Creating a business places billable orders, and an empty `orders` array doesn't prevent that",
            "OAuth access tokens don't expire, and no security.txt, disclosure policy or bug bounty was found"
          ],
          "agentNotes": [
            "Match the key to the host. `mk_test` keys work only at https://api-sandbox.middesk.com/v1 and `mk_live` keys only at https://api.middesk.com/v1",
            "Name the `orders` on `POST /v1/businesses`. Omitting them places a verification order plus every package the account runs automatically, all billed",
            "Send `address_line1` and `address_line2`. The API ignores `address_line_1` without an error",
            "A 201 means the business was created, not verified. Wait for the `business.updated` webhook or poll until `status` leaves `pending`",
            "Stay under 20 requests a second per account, and in sandbox wait the seconds in `Retry-After` after a 429 on business creation"
          ],
          "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": 59
            }
          ],
          "editorialScores": {
            "ergonomics": 56,
            "maintenance": 64,
            "payments": 10,
            "reliability": 73,
            "schema": 82,
            "security": 56,
            "transparency": 43
          },
          "provenanceScore": 78
        },
        "connect": {
          "http": "curl -X POST https://api-sandbox.middesk.com/v1/businesses \\\n  -u $MIDDESK_SANDBOX_API_KEY: \\\n  -H \"Accept: application/json\" \\\n  -d name=Corporation \\\n  -d addresses\\[0\\]\\[address_line1\\]=223+Grand+St. \\\n  -d addresses\\[0\\]\\[city\\]=new+york \\\n  -d addresses\\[0\\]\\[state\\]=NY \\\n  -d addresses\\[0\\]\\[postal_code\\]=10013",
          "claudeCode": "claude mcp add --transport http middesk https://mcp.middesk.com/mcp \\\n  --header \"Authorization: Bearer mk_live_...\"",
          "config": {
            "mcpServers": {
              "middesk": {
                "headers": {
                  "Authorization": "Bearer mk_live_your_api_key"
                },
                "url": "https://mcp.middesk.com/mcp"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/kyc.business",
          "tool": "https://letme.dev/middesk"
        },
        "area": "domain-data",
        "provenance": {
          "legalEntity": "Middesk, Inc.",
          "domain": "middesk.com",
          "domainRegistered": "2018-11-20",
          "endpointOnVendorDomain": true,
          "terms": "https://www.middesk.com/policies/bv-msa",
          "privacy": "https://www.middesk.com/policies/privacy-policy",
          "statusPage": "https://status.middesk.com",
          "changelog": "https://docs.middesk.com/guides/get-started/changelog",
          "securityTxt": "none",
          "checked": "2026-10-08",
          "notes": [
            "The Business Verification Terms and Conditions (last updated 21 August 2026) define Middesk as Middesk, Inc. The website terms (last updated 9 November 2023) give the address 85 2nd St., Suite 710, San Francisco, CA 94105.",
            "The API answers at api.middesk.com and api-sandbox.middesk.com, and the MCP server at mcp.middesk.com, all middesk.com subdomains.",
            "security.txt returns 404 on www.middesk.com, docs.middesk.com and api.middesk.com.",
            "The privacy policy was last updated on 2 November 2025 and gives no retention periods.",
            "trust.middesk.com is a Vanta trust centre that only renders with JavaScript, so we couldn't read its contents.",
            "RDAP for middesk.com gives a registration date of 2018-11-20."
          ],
          "score": 78
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/middesk.json",
        "live": {
          "slug": "middesk",
          "probe": {
            "target": "https://api.middesk.com/v1",
            "method": "get",
            "lastAt": "2026-10-08T18:20:34.934226551Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 190,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 212,
            "p95ms24h": 316,
            "samples24h": 33,
            "samples30d": 33,
            "days": [
              {
                "date": "2026-10-08",
                "probes": 33,
                "ok": 33
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.middesk.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-08T18:22:07.547803744Z"
          },
          "githubStars": 2,
          "securityTxt": {
            "url": "https://middesk.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-08T15:38:39.426096193Z"
          },
          "pages": [
            {
              "url": "https://docs.middesk.com/guides/get-started/changelog",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-08T18:19:07.781323249Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "eebdc6aa87ba"
            }
          ],
          "updatedAt": "2026-10-08T18:22:07.547803744Z"
        }
      },
      {
        "slug": "trulioo",
        "name": "Trulioo",
        "vendor": "Trulioo Information Services Inc.",
        "vendorUrl": "https://www.trulioo.com",
        "kind": "http-api",
        "category": "identity-verification",
        "summary": "Trulioo verifies people and businesses against registry and bureau data, checks identity documents and screens watchlists. Agents reach it through REST APIs with OAuth client credentials or a hosted MCP server, which is in early access.",
        "url": "https://www.anchorterminal.com/tools/trulioo",
        "markdownUrl": "https://www.anchorterminal.com/tools/trulioo.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/trulioo.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/trulioo.json",
        "repo": "https://github.com/Trulioo/trulioo-mcp",
        "license": "Proprietary service under a customer agreement that isn't public. The MCP plugin and the C# and Java REST SDKs on GitHub are Apache-2.0, and the capture SDKs fall under the Trulioo SDK Licence",
        "transports": [
          "http",
          "streamable-http"
        ],
        "remoteUrl": "https://api.trulioo.com",
        "packages": [
          {
            "registry": "npm",
            "name": "@trulioo/trulioo"
          },
          {
            "registry": "npm",
            "name": "@trulioo/kyc-documents"
          }
        ],
        "auth": "oauth",
        "authNotes": "Live access needs a `client_id` and `client_secret` that Trulioo issues after a sales contract, through a customer success manager or support@trulioo.com. The REST APIs exchange them at https://auth-api.trulioo.com/connect/token (client credentials) for a bearer token lasting 30 to 60 minutes, with optional mutual TLS. The hosted MCP server uses OAuth 2.1 authorisation code with PKCE and dynamic client registration, with `read` and `verify` scopes granted by default. Choosing Sandbox on the consent screen needs no Trulioo credentials, and https://mcp.trulioo.com/mock/mcp takes no authentication. Live MCP sessions exchange the client id and secret at https://mcp.trulioo.com/oauth/token for a one-hour token. The legacy Normalised API v1 uses Basic authentication.",
        "pricing": "paid",
        "pricingNotes": "No public prices. trulioo.com/pricing redirects to the solutions page, and live access starts with a demo or contact form. An agent can start without a contract on synthetic data only. The MCP sandbox is unbilled and needs no card or Trulioo credentials, and the mock endpoint needs no sign-in. No free tier of live verification was found (checked 2026-10-08).",
        "priceSummary": "Paid",
        "where": "hosted",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in the developer docs, the MCP docs or the website (checked 2026-10-08).",
          "endpoints": []
        },
        "toolCount": 18,
        "popularity": {
          "githubStars": 0,
          "npmWeekly": 131,
          "pypiWeekly": null,
          "asOf": "2026-10-08"
        },
        "docsUrl": "https://developer.trulioo.com",
        "llmsTxt": "https://developer.trulioo.com/llms.txt",
        "openapi": "https://api.trulioo.com/wfs/interpreter-v2/api-docs",
        "capabilities": [
          "kyc.identity",
          "kyc.business",
          "kyc.documents",
          "kyc.screening",
          "auth.agent-identity"
        ],
        "tags": [
          "hosted",
          "enterprise",
          "sales-led",
          "mcp",
          "early-access",
          "oauth",
          "openapi",
          "llms-txt",
          "sandbox",
          "csharp",
          "java",
          "typescript",
          "soc2",
          "iso27001"
        ],
        "lastRelease": "2026-10-07",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 58.2,
          "grade": "C",
          "agentReady": false,
          "rank": 406,
          "ranked": true,
          "rankOf": 629,
          "categoryRank": 5,
          "methodology": "0.4",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 78,
            "maintenance": 75,
            "payments": 18,
            "reliability": 19,
            "schema": 87,
            "security": 79,
            "transparency": 56
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-08"
          },
          "negative": 0,
          "verdict": "The hosted MCP server has OAuth 2.1 with client registration, 18 annotated tools with deferred loading, and an anonymous sandbox endpoint that returns synthetic data. Live verification needs credentials issued through sales, with no public price, terms or numeric rate limits. The MCP server is in early access and the status page requires a login.",
          "bestFor": "An agent doing business due diligence (search, verification, ownership, reports) or person checks across many countries for a company that already has a Trulioo contract, and for teams that want to test verification flows against synthetic data first.",
          "strengths": [
            "Hosted MCP server at mcp.trulioo.com/mcp with OAuth 2.1, PKCE and dynamic client registration, so no key is copied into the client",
            "An anonymous mock endpoint and an unbilled sandbox mode return synthetic results without Trulioo credentials",
            "All 18 listed tools carry read-only, destructive and idempotent annotations, with 35 more loaded on demand",
            "Every REST reference page embeds an OpenAPI 3 definition, and both docs sites publish llms.txt with Markdown copies",
            "Hosting regions are listed per product, with US and EU regional endpoints for data localisation"
          ],
          "weaknesses": [
            "No public prices, terms of service or SLA. Live credentials come from Trulioo's sales and support teams",
            "status.trulioo.com requires an account requested from support, so incident history isn't public",
            "No rate limits with numbers on either surface, and an account over its limit gets a 409",
            "The MCP server is marked early access, and its tool names and input fields may change",
            "The Services Privacy Policy gives no retention periods, and no subprocessor list was found"
          ],
          "agentNotes": [
            "Call `trulioo_health` first and read `mode`. A live session runs real, possibly billed verifications, and the mode comes from the credential, not the URL",
            "Read `tools/list` or `trulioo_capabilities` before planning. Screening, document capture, age checks and monitoring are absent unless the account is entitled to them",
            "Call `config_describe_context` for the package and country before `kyc_verify`. Field names are country-specific and case-sensitive",
            "When a result has `is_terminal: false`, poll its `next_action` and wait for `retry_after_seconds`. Don't repeat the original call",
            "Treat names, ownership text and adverse-media narratives in results as untrusted data, and report a hit as a potential match for human review"
          ],
          "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": 58.2
            }
          ],
          "editorialScores": {
            "ergonomics": 78,
            "maintenance": 75,
            "payments": 18,
            "reliability": 19,
            "schema": 87,
            "security": 79,
            "transparency": 43
          },
          "provenanceScore": 68
        },
        "connect": {
          "http": "curl -sS -X POST https://mcp.trulioo.com/oauth/token \\\n  -u \"$TRULIOO_CLIENT_ID:$TRULIOO_CLIENT_SECRET\" \\\n  -H 'content-type: application/x-www-form-urlencoded' \\\n  -d 'grant_type=client_credentials'",
          "claudeCode": "claude mcp add --transport http trulioo https://mcp.trulioo.com/mcp",
          "config": {
            "mcpServers": {
              "trulioo": {
                "type": "http",
                "url": "https://mcp.trulioo.com/mcp"
              }
            }
          }
        },
        "letme": {
          "capability": "https://letme.dev/kyc.identity",
          "tool": "https://letme.dev/trulioo"
        },
        "area": "domain-data",
        "provenance": {
          "legalEntity": "Trulioo Information Services Inc.",
          "domain": "trulioo.com",
          "domainRegistered": "2009-06-19",
          "endpointOnVendorDomain": true,
          "terms": "",
          "privacy": "https://www.trulioo.com/services-privacy-policy",
          "statusPage": "",
          "changelog": "https://developer.trulioo.com/docs/release-notes",
          "securityTxt": "none",
          "checked": "2026-10-08",
          "notes": [
            "The Services Privacy Policy (last updated October 2025) names Trulioo Information Services Inc., 400 - 114 E 4th Ave, Vancouver, BC V5T 1G2, Canada, and Trulioo (Ireland) Limited in Dublin for Europe.",
            "No public terms of service or customer agreement was found. trulioo.com/terms, /terms-of-use and /terms-of-service return 404, and the docs refer to a Customer Agreement between Trulioo and each customer.",
            "status.trulioo.com exists but shows a sign-in form, with accounts requested from support@trulioo.com, so it isn't recorded as a public status page.",
            "The REST APIs answer at api.trulioo.com, auth-api.trulioo.com and verification.trulioo.com, and the MCP server at mcp.trulioo.com, all trulioo.com subdomains.",
            "/.well-known/security.txt returns 404 on www.trulioo.com, developer.trulioo.com, api.trulioo.com and mcp.trulioo.com. The MCP plugin's SECURITY.md sends reports to security@trulioo.com.",
            "RDAP for trulioo.com gives a registration date of 2009-06-19."
          ],
          "score": 68
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/trulioo.json",
        "live": {
          "slug": "trulioo",
          "probe": {
            "target": "https://api.trulioo.com",
            "method": "get",
            "lastAt": "2026-10-08T18:20:42.328012373Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 227,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 80,
            "p95ms24h": 246,
            "samples24h": 33,
            "samples30d": 33,
            "days": [
              {
                "date": "2026-10-08",
                "probes": 33,
                "ok": 33
              }
            ]
          },
          "versions": [
            {
              "registry": "npm",
              "name": "@trulioo/kyc-documents",
              "version": "4.0.0",
              "seenAt": "2026-10-08T16:32:45.799607536Z"
            },
            {
              "registry": "npm",
              "name": "@trulioo/trulioo",
              "version": "4.0.0",
              "seenAt": "2026-10-08T16:32:44.836212648Z"
            }
          ],
          "githubStars": 0,
          "npmWeekly": 131,
          "securityTxt": {
            "url": "https://trulioo.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-08T15:38:43.373342676Z"
          },
          "pages": [
            {
              "url": "https://developer.trulioo.com/docs/release-notes",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-08T18:17:19.796936768Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "f5d20f381d11"
            }
          ],
          "updatedAt": "2026-10-08T18:20:42.328012373Z"
        }
      },
      {
        "slug": "jumio",
        "name": "Jumio",
        "vendor": "Jumio Corporation",
        "vendorUrl": "https://www.jumio.com",
        "kind": "http-api",
        "category": "identity-verification",
        "summary": "Identity verification service from Jumio Corporation in Sunnyvale. It checks identity documents and selfies with liveness, screens against sanctions and PEP lists, and runs government database checks. Transactions are started and read through regional REST APIs with OAuth2.",
        "url": "https://www.anchorterminal.com/tools/jumio",
        "markdownUrl": "https://www.anchorterminal.com/tools/jumio.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/jumio.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/jumio.json",
        "repo": "https://github.com/Jumio/mobile-sdk-android",
        "license": "Proprietary service. No public service agreement was found. The @jumio/websdk npm package is marked UNLICENSED",
        "transports": [
          "http"
        ],
        "packages": [
          {
            "registry": "npm",
            "name": "@jumio/websdk"
          },
          {
            "registry": "npm",
            "name": "react-native-jumio-mobilesdk"
          }
        ],
        "auth": "oauth",
        "authNotes": "Sales approval. A Jumio account manager activates OAuth2 for the tenant and supplies the workflow keys. An admin then generates client ID and secret pairs in the Jumio Portal, each limited to initiating transactions, to retrieving and deleting them, or both, and each can be deactivated. The pair is sent as Basic credentials to the regional token URL with `grant_type=client_credentials`, and the bearer token lasts 60 minutes. Basic authentication on the REST APIs themselves is marked deprecated. Account creation also returns per-transaction tokens for uploads and the capture SDKs.",
        "pricing": "paid",
        "pricingNotes": "No public prices. www.jumio.com/pricing/ returns 404 and the site's Get Started button opens a sales enquiry form. No free tier, trial or self-serve signup was found. The mock service for synthetic test transactions needs a dedicated tenant that Jumio Support or the account manager sets up (checked 2026-10-08).",
        "priceSummary": "Paid",
        "where": "local",
        "x402": {
          "level": "no",
          "evidence": "No x402, MPP or L402 in llms-full.txt, the five OpenAPI files or the Jumio website (checked 2026-10-08).",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": 72,
          "npmWeekly": 2122,
          "pypiWeekly": null,
          "asOf": "2026-10-08"
        },
        "docsUrl": "https://documentation.jumio.ai",
        "llmsTxt": "https://documentation.jumio.ai/llms.txt",
        "openapi": "https://documentation.jumio.ai/redocusaurus/account.yaml",
        "capabilities": [
          "kyc.identity",
          "kyc.documents",
          "kyc.screening"
        ],
        "tags": [
          "hosted",
          "enterprise",
          "oauth",
          "openapi",
          "llms-txt",
          "callbacks",
          "sales-led",
          "status-page",
          "soc2",
          "iso27001",
          "java",
          "dotnet"
        ],
        "lastRelease": "2026-09-28",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 55,
          "grade": "C",
          "agentReady": false,
          "rank": 461,
          "ranked": true,
          "rankOf": 629,
          "categoryRank": 6,
          "methodology": "0.4",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 45,
            "maintenance": 75,
            "payments": 0,
            "reliability": 65,
            "schema": 73,
            "security": 63,
            "transparency": 60
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-08"
          },
          "negative": 0,
          "verdict": "Five OpenAPI 3.0 files, an llms.txt index and OAuth2 clients limited to initiating or to retrieving and deleting make the API readable and containable. Access starts with an account manager, with no public price, trial or service agreement, and the status page shows four processing degradations and a 35-minute Singapore outage between 14 August and 2 October 2026.",
          "bestFor": "An enterprise with a Jumio contract that wants document, selfie and liveness checks, watchlist screening and Latin American, Thai and Australian database checks behind OpenAPI-described endpoints.",
          "strengths": [
            "Five downloadable OpenAPI 3.0 files covering 25 operations, plus llms.txt and a 2.2 MB llms-full.txt of the docs in Markdown",
            "OAuth2 client credentials with 60-minute bearer tokens. Each client is limited to initiate, to retrieve and delete, or both, and can be deactivated",
            "Rate limits are published per tenant. Token requests 10 a second, new transactions 1 a second, retrievals 15 a second",
            "Statuspage at monitor.jumio.com by data centre, and an unauthenticated health endpoint per region that answers UP, DEGRADED or DOWN",
            "SOC 2, ISO 27001 and PCI DSS 4.0.1 listed on the Trust Centre, and a vulnerability disclosure programme at vdp.jumio.com"
          ],
          "weaknesses": [
            "No public price, free tier or trial. OAuth2 and workflow keys are activated by a Jumio account manager",
            "No service agreement or DPA is published. The public terms of use cover end users in the United States",
            "Four processing degradations and a 35-minute Singapore outage on the status page between 14 August and 2 October 2026",
            "No idempotency key. A repeated POST or PUT on accounts starts another transaction",
            "GET /api/v1/workflow-executions takes no paging or filter parameters, and the specs document only 401, 403 and 404 errors",
            "Retention periods and the sub-processor list are available on request only, and security.txt returns 404"
          ],
          "agentNotes": [
            "Use the host for the tenant's region (amer-1, emea-1 or apac-1). Tokens come from auth.\u003cregion\u003e.jumio.ai/oauth2/token with the client ID and secret as Basic credentials",
            "Reuse the bearer token for its 60 minutes. Token requests are limited to 10 a second and new transactions to 1 a second per tenant",
            "Send a User-Agent header on every call. The Account API marks it required",
            "Don't blindly retry POST /api/v1/accounts. Each call creates an account and a transaction, and no idempotency key exists",
            "Wait for the callback or poll the status endpoint until PROCESSED before retrieving. Jumio's retry schedule starts at 40 seconds and stops after 940"
          ],
          "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": 55
            }
          ],
          "editorialScores": {
            "ergonomics": 45,
            "maintenance": 75,
            "payments": 0,
            "reliability": 65,
            "schema": 73,
            "security": 63,
            "transparency": 41
          },
          "provenanceScore": 78
        },
        "connect": {
          "http": "curl --location 'https://auth.amer-1.jumio.ai/oauth2/token' \\\n  -u CLIENT_ID:CLIENT_SECRET \\\n  --header 'Accept: application/json' \\\n  --data-urlencode 'grant_type=client_credentials'"
        },
        "letme": {
          "capability": "https://letme.dev/kyc.identity",
          "tool": "https://letme.dev/jumio"
        },
        "area": "domain-data",
        "provenance": {
          "legalEntity": "Jumio Corporation",
          "domain": "jumio.com",
          "domainRegistered": "2004-03-30",
          "endpointOnVendorDomain": true,
          "terms": "",
          "privacy": "https://www.jumio.com/privacy-center/privacy-notices/online-services-notice/",
          "statusPage": "https://monitor.jumio.com",
          "changelog": "https://documentation.jumio.ai/docs/developer-resources/SDKs/mobile-sdk/mobile-sdk-android-master/docs/changelog",
          "securityTxt": "none",
          "checked": "2026-10-08",
          "notes": [
            "The Online Services Privacy Notice (last updated 4 August 2026) names Jumio Corporation, 100 Mathilda Place, Suite 100, Sunnyvale, CA 94086, with Jumio Software Development GmbH in Linz as EU representative.",
            "No terms field. Jumio publishes no service agreement or API terms for customers. www.jumio.com/terms-of-use/ (last updated 18 June 2026) is addressed to end users in the United States, so it isn't recorded as the governing document.",
            "The APIs answer on jumio.ai hosts (auth, account, api, retrieval, kyx and status under amer-1, emea-1 and apac-1), a second domain used throughout Jumio's own documentation at documentation.jumio.ai.",
            "www.jumio.com/.well-known/security.txt and /security.txt return 404. Reports go to the vulnerability disclosure programme at https://vdp.jumio.com, which pays nothing.",
            "The changelog linked is the Android SDK's. No changelog for the REST APIs was found.",
            "RDAP for jumio.com gives a registration date of 2004-03-30."
          ],
          "score": 78
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/jumio.json",
        "live": {
          "slug": "jumio",
          "vendorStatus": {
            "page": "https://monitor.jumio.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-08T18:22:06.158005243Z"
          },
          "pages": [
            {
              "url": "https://documentation.jumio.ai/docs/developer-resources/SDKs/mobile-sdk/mobile-sdk-android-master/docs/changelog",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-08T18:19:56.339175642Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "4e0b13492ecb"
            }
          ],
          "updatedAt": "2026-10-08T18:22:06.158005243Z"
        }
      }
    ]
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/categories/identity-verification",
    "json": "https://www.anchorterminal.com/categories/identity-verification.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/categories/identity-verification.md",
    "slim": "https://www.anchorterminal.com/categories/identity-verification.min.md"
  },
  "markdown": "Services that verify a person from an identity document and a selfie, or a business from registry records, and screen both against sanctions and watchlists. Compared on the checks covered, how a verification is started and read, webhooks and data retention.\n\n- Tools ranked: 6 · agent-ready (BB or better): 0 · accept x402: 0 · hosted endpoints: 4 · desk reviews by the panel: 0\n- JSON: https://www.anchorterminal.com/api/v1/tools.json (list) · https://www.anchorterminal.com/api/v1/rankings.json (ranked) · https://www.anchorterminal.com/api/v1/x402.json (payable) · https://www.anchorterminal.com/api/v1/capabilities.json (by capability)\n- Grades run AA, A, BB, B, C, D, E, F · methodology: https://www.anchorterminal.com/benchmark/\n\n- Capabilities in this category: kyc.identity, kyc.business, kyc.documents, kyc.screening, kyc.cases\n- https://letme.dev/kyc.identity picks the top-graded tool in this list and says how to call it direct; calling through letme comes later (https://www.anchorterminal.com/letme/index.md)\n\n## Ranking\n\n| # | Tool | Vendor | Kind | Category | Grade | Score | Confidence | x402 | Auth | Where | Reviews | Page |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 148 | Persona | Persona Identities, Inc. | HTTP API | Verification | B | 69.5 | medium | no | API key | hosted | none | https://www.anchorterminal.com/tools/persona.md |\n| 167 | Sumsub | Sum and Substance Ltd | HTTP API | Verification | B | 68.5 | medium | no | OAuth or key | hosted | none | https://www.anchorterminal.com/tools/sumsub.md |\n| 334 | Veriff | Veriff OÜ | HTTP API | Verification | C | 61.1 | medium | no | API key | local | none | https://www.anchorterminal.com/tools/veriff.md |\n| 389 | Middesk | Middesk, Inc. | HTTP API | Verification | C | 59 | medium | no | OAuth or key | hosted | none | https://www.anchorterminal.com/tools/middesk.md |\n| 406 | Trulioo | Trulioo Information Services Inc. | HTTP API | Verification | C | 58.2 | medium | no | OAuth | hosted | none | https://www.anchorterminal.com/tools/trulioo.md |\n| 461 | Jumio | Jumio Corporation | HTTP API | Verification | C | 55 | medium | no | OAuth | local | none | https://www.anchorterminal.com/tools/jumio.md |\n\nScores are from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/), with Performance and Task success pending. p95 latency and context cost come from our probes, which haven't run yet.\n\n## Summaries\n\n### 148. Persona, B (69.5)\n\nPersona is an identity verification platform from Persona Identities, Inc. Its REST API and hosted MCP server create inquiries, run government ID, selfie, document and database verifications, screen people and businesses against watchlists, and manage review cases. The REST API has a public OpenAPI 3.1 file, llms.txt, API keys with per-resource permissions, idempotency keys on every POST and a 60-day sandbox trial with no card. Production needs a business review and a 12-month plan from $250 a month. The status page lists 11 incidents since 10 July 2026, including 70 minutes of timeouts across all products.\n\n- Page: https://www.anchorterminal.com/tools/persona · Markdown: https://www.anchorterminal.com/tools/persona.md · JSON: https://www.anchorterminal.com/api/v1/tools/persona.json\n- Capabilities: kyc.identity, kyc.business, kyc.documents, kyc.screening, kyc.cases · endpoint: `https://mcp.withpersona.com`\n\n### 167. Sumsub, B (68.5)\n\nSumsub verifies people from identity documents and a liveness check, verifies businesses against registries, and screens both against sanctions and watchlists. Agents reach it through a signed REST API and a hosted MCP server. Per-token permissions, an IP allowlist, HMAC-signed requests and a public OpenAPI spec with Markdown docs suit an agent working on verification cases. No idempotency keys or Retry-After guidance were found, there is no server SDK, and production access needs a browser signup, a bank card and Sumsub's review of the integration.\n\n- Page: https://www.anchorterminal.com/tools/sumsub · Markdown: https://www.anchorterminal.com/tools/sumsub.md · JSON: https://www.anchorterminal.com/api/v1/tools/sumsub.json\n- Capabilities: kyc.identity, kyc.business, kyc.documents, kyc.screening, kyc.cases · endpoint: `https://api.sumsub.com`\n\n### 334. Veriff, C (61.1)\n\nIdentity verification service from Veriff in Tallinn. It checks an identity document and a selfie, with liveness, database checks and PEP and sanctions screening. Sessions are created and read through the Public API v1, with results sent by webhook. Per-verification prices are public from $0.80, with a 15-day trial of 50 sessions and no card. Each endpoint page is Markdown with an OpenAPI 3.0 fragment. There is no server SDK, MCP server or idempotency key, most calls need an HMAC signature, and the status page shows nine incidents between 20 July and 7 October 2026.\n\n- Page: https://www.anchorterminal.com/tools/veriff · Markdown: https://www.anchorterminal.com/tools/veriff.md · JSON: https://www.anchorterminal.com/api/v1/tools/veriff.json\n- Capabilities: kyc.identity, kyc.documents, kyc.screening\n\n### 389. Middesk, C (59)\n\nBusiness verification API from Middesk in San Francisco. It checks US and international businesses against registry, tax ID, sanctions and watchlist records, monitors them for changes, and files liens and state tax registrations, over REST and a hosted MCP server. A public OpenAPI 3.1 contract for 87 operations, llms.txt, Markdown docs and a dated weekly changelog make the REST API readable to an agent, and OAuth has a read-only scope. Access is sales-led. No price, self-serve signup or official SDK was found, and the hosted MCP server rejects sandbox keys.\n\n- Page: https://www.anchorterminal.com/tools/middesk · Markdown: https://www.anchorterminal.com/tools/middesk.md · JSON: https://www.anchorterminal.com/api/v1/tools/middesk.json\n- Capabilities: kyc.business, kyc.screening, kyc.cases, kyc.identity · endpoint: `https://api.middesk.com/v1`\n\n### 406. Trulioo, C (58.2)\n\nTrulioo verifies people and businesses against registry and bureau data, checks identity documents and screens watchlists. Agents reach it through REST APIs with OAuth client credentials or a hosted MCP server, which is in early access. The hosted MCP server has OAuth 2.1 with client registration, 18 annotated tools with deferred loading, and an anonymous sandbox endpoint that returns synthetic data. Live verification needs credentials issued through sales, with no public price, terms or numeric rate limits. The MCP server is in early access and the status page requires a login.\n\n- Page: https://www.anchorterminal.com/tools/trulioo · Markdown: https://www.anchorterminal.com/tools/trulioo.md · JSON: https://www.anchorterminal.com/api/v1/tools/trulioo.json\n- Capabilities: kyc.identity, kyc.business, kyc.documents, kyc.screening, auth.agent-identity · endpoint: `https://api.trulioo.com`\n\n### 461. Jumio, C (55)\n\nIdentity verification service from Jumio Corporation in Sunnyvale. It checks identity documents and selfies with liveness, screens against sanctions and PEP lists, and runs government database checks. Transactions are started and read through regional REST APIs with OAuth2. Five OpenAPI 3.0 files, an llms.txt index and OAuth2 clients limited to initiating or to retrieving and deleting make the API readable and containable. Access starts with an account manager, with no public price, trial or service agreement, and the status page shows four processing degradations and a 35-minute Singapore outage between 14 August and 2 October 2026.\n\n- Page: https://www.anchorterminal.com/tools/jumio · Markdown: https://www.anchorterminal.com/tools/jumio.md · JSON: https://www.anchorterminal.com/api/v1/tools/jumio.json\n- Capabilities: kyc.identity, kyc.documents, kyc.screening\n\n## How we test this category\n\nOne test person and one test business run through each listing's sandbox. A verification is started, completed with the vendor's test documents and read back, with a watchlist screen. We check the result fields, status events, retention controls and redaction. In this run listings are graded from public evidence against the published checklist. This test hasn't run yet, so Task success is pending and the grades here come from the categories assessed from public evidence.\n\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "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": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Identity \u0026 business verification",
        "url": ""
      }
    ],
    "description": "6 identity \u0026 business verification listings ranked by the Anchor benchmark. Leader Persona (B). Services that verify a person from an identity document and a selfie, or a business from registry records, and screen both against sanctions and watchlists. Compared on the checks covered, how a verification is started and read, webhooks and data retention.",
    "facts": [
      "Persona B",
      "Sumsub B",
      "Veriff C"
    ],
    "h1": "Identity and business verification APIs for AI agents",
    "image": "https://www.anchorterminal.com/assets/og/categories-identity-verification.png",
    "path": "/categories/identity-verification",
    "published": "",
    "section": "tools",
    "title": "Identity and business verification APIs for AI agents, ranked",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/categories/identity-verification"
  },
  "tokens": {
    "markdown": 2250,
    "slim": 380
  },
  "version": 1
}
