{
  "data": {
    "a": {
      "slug": "didit",
      "name": "Didit",
      "vendor": "Didit Identity Spain, S.L.",
      "vendorUrl": "https://didit.me",
      "kind": "http-api",
      "category": "identity-verification",
      "summary": "Didit is a hosted identity verification service for document, liveness, face match, sanctions screening and business registry checks. Developers reach it through a REST API with an OpenAPI spec, a hosted MCP server and client SDKs.",
      "url": "https://www.anchorterminal.com/tools/didit",
      "markdownUrl": "https://www.anchorterminal.com/tools/didit.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/didit.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/didit.json",
      "repo": "https://github.com/didit-protocol/mcp",
      "license": "Proprietary service under Didit's Business Terms and Conditions. The MCP server in didit-protocol/mcp is MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://verification.didit.me",
      "packages": [
        {
          "registry": "npm",
          "name": "@didit-protocol/mcp-server"
        },
        {
          "registry": "npm",
          "name": "@didit-protocol/sdk-web"
        },
        {
          "registry": "npm",
          "name": "@didit-protocol/sdk-react-native"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. The REST API takes an application API key in the `x-api-key` header. A key comes from the Business Console or from the registration API on `apx.didit.me`, which emails a 6-character code and returns the key with no browser step. Each application has a primary key with full access and any number of named keys with read or write access per resource, workflow and status limits, an IP allowlist and an expiry date. Named keys are created, rotated and revoked only in the console. The hosted MCP server uses OAuth 2.1 with PKCE and dynamic client registration, with the scopes `didit:management` and `didit:verification`, and accepts no API key.",
      "pricing": "usage",
      "pricingNotes": "Pay per completed check from prepaid USD credits, with no contract or minimum and no card needed to sign up. In a workflow, ID verification is $0.15, passive liveness $0.10, face match $0.05, device and IP analysis $0.03 and AML screening $0.20. Until 1 November 2026 each organisation gets 500 free checks a month for each of the first four. From 1 November that becomes $10 of credit a month, with optional Growth ($99 a month) and Scale ($299 a month) plans. Sandbox applications are not billed (https://docs.didit.me/getting-started/pricing, checked 2026-10-08).",
      "priceSummary": "$0.15 / tx",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI spec, the docs index or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 156,
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 27338,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.didit.me",
      "llmsTxt": "https://docs.didit.me/llms.txt",
      "openapi": "https://docs.didit.me/openapi-25.json",
      "registryName": "me.didit/mcp",
      "capabilities": [
        "kyc.identity",
        "kyc.documents",
        "kyc.screening",
        "kyc.business",
        "kyc.cases"
      ],
      "tags": [
        "hosted",
        "api-key",
        "oauth",
        "mcp",
        "webhooks",
        "openapi",
        "llms-txt",
        "free-tier",
        "no-card",
        "sandbox",
        "status-page",
        "sla",
        "soc2",
        "iso27001"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 75,
        "grade": "BB",
        "agentReady": true,
        "rank": 54,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 82,
          "payments": 60,
          "reliability": 80,
          "schema": 88,
          "security": 76,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A self-serve verification API with public per-check prices, key registration by API, scoped keys and a 365-day audit log. The status page shows three incidents marked major between 22 July and 4 September 2026, each a partial outage of the core APIs, and the sub-processor list isn't public.",
        "bestFor": "A team that wants document, liveness, screening and business registry checks from one API with public prices and no sales step, and an agent that has to set itself up.",
        "strengths": [
          "An account and API key can be created by API at `apx.didit.me/auth/v2/programmatic/register/`, with an emailed code and no browser step",
          "Public OpenAPI 3.0.0 spec with 256 operations, plus llms.txt and a Markdown copy of every docs page",
          "Named API keys take read or write access per resource, workflow limits, an IP allowlist and an expiry date, and rotation keeps the old secret for 24 hours",
          "429 responses carry `Retry-After`, limits are published per scope, and 31 operations document an `Idempotency-Key` header or a reuse rule",
          "Per-check prices are public, charged only when a check finishes, with 500 free checks a month per core feature until 1 November 2026"
        ],
        "weaknesses": [
          "Three incidents marked major on status.didit.me from 22 July to 4 September 2026, each a partial outage of the core APIs traced to the primary database",
          "No server-side SDK in any language. The published SDKs are capture clients for web, iOS, Android, React Native and Flutter",
          "The data processing addendum says the sub-processor list is published at `/terms/sub-processors`, but that address shows the legal index, which says the list is sent after a signed NDA",
          "Verification data is used for model training by default until an organisation owner turns it off in the console",
          "The hosted MCP server lists 156 tools to a signed-in user, 23 of them destructive, and role checks run in a mode that logs without hiding tools by default"
        ],
        "agentNotes": [
          "Register with `POST https://apx.didit.me/auth/v2/programmatic/register/`, then `verify-email` with the emailed 6-character code. Use a real inbox, because reserved test domains return 500.",
          "Send the key as `x-api-key` to `https://verification.didit.me/v3/`. The JWT from registration works only on `apx.didit.me`.",
          "Create a workflow before `POST /v3/session/`. `workflow_id` is the only required field, and an unfinished session with the same `vendor_data` is returned again.",
          "Read results from webhooks and use `GET /v3/session/{sessionId}/decision/` for back-fill. Every per-feature result is a plural array.",
          "The MCP server at `https://mcp.didit.me/mcp` takes OAuth sign-in only, never an API key. Approve `didit:verification` alone when the task doesn't change workflows or keys."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 75
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 82,
          "payments": 60,
          "reliability": 80,
          "schema": 88,
          "security": 76,
          "transparency": 53
        },
        "provenanceScore": 73
      },
      "connect": {
        "http": "curl -X POST https://verification.didit.me/v3/session/ \\\n  -H \"x-api-key: $DIDIT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"workflow_id\":\"\u003cWORKFLOW_ID\u003e\",\"vendor_data\":\"user-42\",\"callback\":\"https://myapp.com/return\"}'",
        "claudeCode": "claude mcp add --transport http didit https://mcp.didit.me/mcp",
        "config": {
          "mcpServers": {
            "didit": {
              "url": "https://mcp.didit.me/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/kyc.identity",
        "tool": "https://letme.dev/didit"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "ID verification in a workflow (document capture)",
          "unit": "tx",
          "usd": 0.15,
          "note": "500 free a month until 1 November 2026"
        },
        {
          "item": "Passive liveness in a workflow",
          "unit": "tx",
          "usd": 0.1,
          "note": "500 free a month until 1 November 2026"
        },
        {
          "item": "Face match 1:1 in a workflow",
          "unit": "tx",
          "usd": 0.05,
          "note": "500 free a month until 1 November 2026"
        },
        {
          "item": "Device and IP analysis in a workflow",
          "unit": "tx",
          "usd": 0.03,
          "note": "500 free a month until 1 November 2026"
        },
        {
          "item": "AML screening",
          "unit": "tx",
          "usd": 0.2,
          "note": "no free allowance"
        },
        {
          "item": "Proof of address",
          "unit": "tx",
          "usd": 0.2,
          "note": "no free allowance"
        },
        {
          "item": "KYB registry, per selected company (Lite profile)",
          "unit": "tx",
          "usd": 2,
          "note": "search is charged separately at up to $0.50"
        }
      ],
      "provenance": {
        "legalEntity": "Didit Identity Spain, S.L.",
        "domain": "didit.me",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://didit.me/terms/business/",
        "privacy": "https://didit.me/terms/privacy-policy/",
        "statusPage": "https://status.didit.me",
        "changelog": "https://docs.didit.me/changelog/september-2026",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Business Terms and Conditions (updated 23 September 2026) name two contracting entities. Didit Identity Spain, S.L., CIF B22929327, Barcelona, contracts with clients in the EU, EEA, UK and Switzerland, and Didit Identity, Inc., Dover, Delaware, with clients elsewhere.",
          "The Business Terms are the self-serve contract and include the SLA as Annex 1 and the Data Processing Addendum as Annex 2. A separate Master Services Agreement covers enterprise order forms.",
          "The Privacy Policy was updated on 7 October 2026 and names the Spanish Data Protection Agency as lead supervisory authority. A Verification Privacy Notice supplements it for end users.",
          "didit.me/.well-known/security.txt and docs.didit.me/.well-known/security.txt return 404. The Information Security Policy sends reports to security@didit.me.",
          "The API answers at verification.didit.me, account routes at apx.didit.me and the MCP server at mcp.didit.me, all on the vendor's domain.",
          "The registration date of didit.me wasn't established. whois returned nothing and rdap.org has no RDAP service for .me."
        ],
        "score": 73
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/didit.json",
      "live": {
        "slug": "didit",
        "probe": {
          "target": "https://verification.didit.me",
          "method": "get",
          "lastAt": "2026-10-08T21:53:20.666500555Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 58,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 60,
          "p95ms24h": 89,
          "samples24h": 28,
          "samples30d": 28,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 28,
              "ok": 28
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.didit.me",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:57:50.337506825Z"
        },
        "updatedAt": "2026-10-08T21:57:50.337506825Z"
      }
    },
    "answer": "Didit scores 75 (BB) on agent readiness against Middesk's 59 (C), and leads in every scored category.",
    "b": {
      "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": 440,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 6,
        "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-08T21:53:27.695131618Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 172,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 214,
          "p95ms24h": 316,
          "samples24h": 71,
          "samples30d": 71,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 71,
              "ok": 71
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.middesk.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:58:01.929583853Z"
        },
        "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"
          },
          {
            "url": "https://www.middesk.com/policies/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:15.011730927Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "a386a0eeeb69"
          },
          {
            "url": "https://www.middesk.com/policies/bv-msa",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:12.510644226Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "26b54790c413"
          }
        ],
        "updatedAt": "2026-10-08T21:58:01.929583853Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Didit Identity Spain, S.L.",
        "b": "Middesk, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://verification.didit.me",
        "b": "https://api.middesk.com/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, Streamable HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Pay per use",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Didit's Business Terms and Conditions. The MCP server in didit-protocol/mcp is MIT",
        "b": "Proprietary service under Middesk's Business Verification Terms and Conditions. The Claude Code and Codex plugins on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "156",
        "b": "11",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "me.didit/mcp",
        "b": "not listed",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-08",
        "b": "2026-10-05",
        "name": "Last release"
      },
      {
        "a": "2026-09-23",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-10-07",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes, with an opt-out",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "0 stars, 27k npm/wk",
        "b": "2 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Didit scores 75 (BB) on agent readiness against Middesk's 59 (C), and leads in every scored category.",
        "question": "Which is better for AI agents, Didit or Middesk?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Didit and Middesk need an API key?"
      },
      {
        "answer": "Yes. Didit has a hosted endpoint at https://verification.didit.me and Middesk at https://api.middesk.com/v1.",
        "question": "Can an agent call Didit and Middesk without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 80 against 73",
          "Schema \u0026 documentation, 88 against 82",
          "Agent ergonomics, 69 against 56",
          "Security \u0026 auth, 76 against 56",
          "Payments \u0026 pricing, 60 against 10",
          "Maintenance \u0026 community, 82 against 64"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "A team that wants document, liveness, screening and business registry checks from one API with public prices and no sales step, and an agent that has to set itself up.",
        "slug": "didit",
        "watchFor": "Three incidents marked major on status.didit.me from 22 July to 4 September 2026, each a partial outage of the core APIs traced to the primary database"
      },
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "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.",
        "slug": "middesk",
        "watchFor": "No public price. Fees are set in an order form, and every docs page ends with a prompt to contact sales"
      }
    ],
    "job": {
      "capability": "kyc.identity",
      "name": "Kyc identity"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/complycube-vs-didit.json",
        "title": "ComplyCube vs Didit",
        "url": "https://www.anchorterminal.com/compare/complycube-vs-didit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complycube-vs-middesk.json",
        "title": "ComplyCube vs Middesk",
        "url": "https://www.anchorterminal.com/compare/complycube-vs-middesk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-jumio.json",
        "title": "Didit vs Jumio",
        "url": "https://www.anchorterminal.com/compare/didit-vs-jumio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-persona.json",
        "title": "Didit vs Persona",
        "url": "https://www.anchorterminal.com/compare/didit-vs-persona"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-sumsub.json",
        "title": "Didit vs Sumsub",
        "url": "https://www.anchorterminal.com/compare/didit-vs-sumsub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-trulioo.json",
        "title": "Didit vs Trulioo",
        "url": "https://www.anchorterminal.com/compare/didit-vs-trulioo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-veriff.json",
        "title": "Didit vs Veriff",
        "url": "https://www.anchorterminal.com/compare/didit-vs-veriff"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jumio-vs-middesk.json",
        "title": "Jumio vs Middesk",
        "url": "https://www.anchorterminal.com/compare/jumio-vs-middesk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/middesk-vs-veriff.json",
        "title": "Middesk vs Veriff",
        "url": "https://www.anchorterminal.com/compare/middesk-vs-veriff"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complyadvantage-vs-didit.json",
        "title": "ComplyAdvantage vs Didit",
        "url": "https://www.anchorterminal.com/compare/complyadvantage-vs-didit"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complyadvantage-vs-middesk.json",
        "title": "ComplyAdvantage vs Middesk",
        "url": "https://www.anchorterminal.com/compare/complyadvantage-vs-middesk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/middesk-vs-persona.json",
        "title": "Middesk vs Persona",
        "url": "https://www.anchorterminal.com/compare/middesk-vs-persona"
      },
      {
        "json": "https://www.anchorterminal.com/compare/middesk-vs-sumsub.json",
        "title": "Middesk vs Sumsub",
        "url": "https://www.anchorterminal.com/compare/middesk-vs-sumsub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/middesk-vs-trulioo.json",
        "title": "Middesk vs Trulioo",
        "url": "https://www.anchorterminal.com/compare/middesk-vs-trulioo"
      }
    ],
    "scores": [
      {
        "by": 7,
        "didit": 80,
        "edge": "didit",
        "key": "reliability",
        "middesk": 73,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 6,
        "didit": 88,
        "edge": "didit",
        "key": "schema",
        "middesk": 82,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 13,
        "didit": 69,
        "edge": "didit",
        "key": "ergonomics",
        "middesk": 56,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 20,
        "didit": 76,
        "edge": "didit",
        "key": "security",
        "middesk": 56,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 50,
        "didit": 60,
        "edge": "didit",
        "key": "payments",
        "middesk": 10,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 18,
        "didit": 82,
        "edge": "didit",
        "key": "maintenance",
        "middesk": 64,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 2,
        "didit": 63,
        "edge": "didit",
        "key": "transparency",
        "middesk": 61,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Didit scores 75 (BB) on agent readiness against Middesk's 59 (C), and leads in every scored category. Both do kyc identity.",
    "verdicts": {
      "didit": "A self-serve verification API with public per-check prices, key registration by API, scoped keys and a 365-day audit log. The status page shows three incidents marked major between 22 July and 4 September 2026, each a partial outage of the core APIs, and the sub-processor list isn't public.",
      "middesk": "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/didit-vs-middesk",
    "json": "https://www.anchorterminal.com/compare/didit-vs-middesk.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/didit-vs-middesk.md",
    "slim": "https://www.anchorterminal.com/compare/didit-vs-middesk.min.md"
  },
  "markdown": "Didit scores 75 (BB) on agent readiness against Middesk's 59 (C), and leads in every scored category. Both do kyc identity.\n\n- Didit: grade BB, 75/100, rank #54 of 722. Markdown https://www.anchorterminal.com/tools/didit.md · JSON https://www.anchorterminal.com/api/v1/tools/didit.json\n- Middesk: grade C, 59/100, rank #440 of 722. Markdown https://www.anchorterminal.com/tools/middesk.md · JSON https://www.anchorterminal.com/api/v1/tools/middesk.json\n\n## Which one, for what\n\n### Didit (BB)\n\nGood for: A team that wants document, liveness, screening and business registry checks from one API with public prices and no sales step, and an agent that has to set itself up.\n\nAhead on:\n- Reliability, 80 against 73\n- Schema \u0026 documentation, 88 against 82\n- Agent ergonomics, 69 against 56\n- Security \u0026 auth, 76 against 56\n- Payments \u0026 pricing, 60 against 10\n- Maintenance \u0026 community, 82 against 64\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: Three incidents marked major on status.didit.me from 22 July to 4 September 2026, each a partial outage of the core APIs traced to the primary database\n\n### Middesk (C)\n\nGood for: 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.\n\nWatch for: No public price. Fees are set in an order form, and every docs page ends with a prompt to contact sales\n\n\n## Score by category\n\n| Category | Weight | Didit | Middesk | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 80 | 73 | Didit +7 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 88 | 82 | Didit +6 |\n| Agent ergonomics | 13% (16.2 this run) | 69 | 56 | Didit +13 |\n| Security \u0026 auth | 14% (17.5 this run) | 76 | 56 | Didit +20 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 10 | Didit +50 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 64 | Didit +18 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 61 | Didit +2 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **75 · BB** | **59 · C** | |\n\n## Facts side by side\n\n| Fact | Didit | Middesk |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Didit Identity Spain, S.L. | Middesk, Inc. |\n| Hosted endpoint | `https://verification.didit.me` | `https://api.middesk.com/v1` |\n| Transports | HTTP, Streamable HTTP, stdio | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Pay per use | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under Didit's Business Terms and Conditions. The MCP server in didit-protocol/mcp is MIT | Proprietary service under Middesk's Business Verification Terms and Conditions. The Claude Code and Codex plugins on GitHub are MIT |\n| Tools exposed | 156 | 11 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | `me.didit/mcp` | not listed |\n| Last release | 2026-10-08 | 2026-10-05 |\n| Terms last updated | 2026-09-23 | no date given |\n| Privacy policy last updated | 2026-10-07 | no date given |\n| Customer content may train models | yes, with an opt-out | yes |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | yes | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 0 stars, 27k npm/wk | 2 stars |\n\n## Verdicts\n\n**Didit.** A self-serve verification API with public per-check prices, key registration by API, scoped keys and a 365-day audit log. The status page shows three incidents marked major between 22 July and 4 September 2026, each a partial outage of the core APIs, and the sub-processor list isn't public.\n\n**Middesk.** 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## Before you call either\n\n### Didit\n\n1. Register with `POST https://apx.didit.me/auth/v2/programmatic/register/`, then `verify-email` with the emailed 6-character code. Use a real inbox, because reserved test domains return 500.\n2. Send the key as `x-api-key` to `https://verification.didit.me/v3/`. The JWT from registration works only on `apx.didit.me`.\n3. Create a workflow before `POST /v3/session/`. `workflow_id` is the only required field, and an unfinished session with the same `vendor_data` is returned again.\n4. Read results from webhooks and use `GET /v3/session/{sessionId}/decision/` for back-fill. Every per-feature result is a plural array.\n5. The MCP server at `https://mcp.didit.me/mcp` takes OAuth sign-in only, never an API key. Approve `didit:verification` alone when the task doesn't change workflows or keys.\n\n### Middesk\n\n1. 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\n2. Name the `orders` on `POST /v1/businesses`. Omitting them places a verification order plus every package the account runs automatically, all billed\n3. Send `address_line1` and `address_line2`. The API ignores `address_line_1` without an error\n4. A 201 means the business was created, not verified. Wait for the `business.updated` webhook or poll until `status` leaves `pending`\n5. Stay under 20 requests a second per account, and in sandbox wait the seconds in `Retry-After` after a 429 on business creation\n\n## Questions\n\n### Which is better for AI agents, Didit or Middesk?\n\nDidit scores 75 (BB) on agent readiness against Middesk's 59 (C), and leads in every scored category.\n\n### Do Didit and Middesk need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Didit and Middesk without installing anything?\n\nYes. Didit has a hosted endpoint at https://verification.didit.me and Middesk at https://api.middesk.com/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/didit-vs-middesk.json, and with the fewest tokens: https://www.anchorterminal.com/compare/didit-vs-middesk.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"didit\", \"b\": \"middesk\"}`. From a terminal: `anchor compare didit middesk`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/didit.json and https://www.anchorterminal.com/api/v1/tools/middesk.json\n\n## Other comparisons with Didit or Middesk\n\n- [ComplyCube vs Didit](https://www.anchorterminal.com/compare/complycube-vs-didit.md)\n- [ComplyCube vs Middesk](https://www.anchorterminal.com/compare/complycube-vs-middesk.md)\n- [Didit vs Jumio](https://www.anchorterminal.com/compare/didit-vs-jumio.md)\n- [Didit vs Persona](https://www.anchorterminal.com/compare/didit-vs-persona.md)\n- [Didit vs Sumsub](https://www.anchorterminal.com/compare/didit-vs-sumsub.md)\n- [Didit vs Trulioo](https://www.anchorterminal.com/compare/didit-vs-trulioo.md)\n- [Didit vs Veriff](https://www.anchorterminal.com/compare/didit-vs-veriff.md)\n- [Jumio vs Middesk](https://www.anchorterminal.com/compare/jumio-vs-middesk.md)\n- [Middesk vs Veriff](https://www.anchorterminal.com/compare/middesk-vs-veriff.md)\n- [ComplyAdvantage vs Didit](https://www.anchorterminal.com/compare/complyadvantage-vs-didit.md)\n- [ComplyAdvantage vs Middesk](https://www.anchorterminal.com/compare/complyadvantage-vs-middesk.md)\n- [Middesk vs Persona](https://www.anchorterminal.com/compare/middesk-vs-persona.md)\n- [Middesk vs Sumsub](https://www.anchorterminal.com/compare/middesk-vs-sumsub.md)\n- [Middesk vs Trulioo](https://www.anchorterminal.com/compare/middesk-vs-trulioo.md)\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": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Didit vs Middesk",
        "url": ""
      }
    ],
    "description": "Didit scores 75 (BB) on agent readiness against Middesk's 59 (C), and leads in every scored category. Both do kyc identity. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Didit BB 75",
      "Middesk C 59",
      "scores"
    ],
    "h1": "Didit vs Middesk",
    "image": "https://www.anchorterminal.com/assets/og/compare-didit-vs-middesk.png",
    "path": "/compare/didit-vs-middesk",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Didit vs Middesk for AI agents, BB 75 vs C 59 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/didit-vs-middesk"
  },
  "tokens": {
    "markdown": 2150,
    "slim": 680
  },
  "version": 1
}
