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