{
  "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": 389,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 56,
          "maintenance": 64,
          "payments": 10,
          "reliability": 73,
          "schema": 82,
          "security": 56,
          "transparency": 61
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A public OpenAPI 3.1 contract for 87 operations, llms.txt, Markdown docs and a dated weekly changelog make the REST API readable to an agent, and OAuth has a read-only scope. Access is sales-led. No price, self-serve signup or official SDK was found, and the hosted MCP server rejects sandbox keys.",
        "bestFor": "An agent onboarding or re-checking US businesses for a bank, lender or marketplace that already holds a Middesk contract, with registry, TIN, sanctions and lien data in one object.",
        "strengths": [
          "Public OpenAPI 3.1 spec with 87 operations and 373 schemas, plus llms.txt and a Markdown copy of every docs page",
          "Dated changelog with nine entries between 20 July and 5 October 2026, breaking changes labelled as such",
          "OAuth 2.0 with `read_only` and `read_write` scopes and a revoke endpoint. The MCP server adds PKCE and dynamic client registration",
          "Sandbox at api-sandbox.middesk.com with documented trigger values for names, addresses, TINs, people and watchlist hits",
          "The public terms of 21 August 2026 bar training generative AI models on customer data in any form"
        ],
        "weaknesses": [
          "No public price. Fees are set in an order form, and every docs page ends with a prompt to contact sales",
          "No official SDK found on npm, PyPI or RubyGems, and none in the vendor's GitHub organisation",
          "The hosted MCP server runs against production only, so a sandbox key fails on every call",
          "Creating a business places billable orders, and an empty `orders` array doesn't prevent that",
          "OAuth access tokens don't expire, and no security.txt, disclosure policy or bug bounty was found"
        ],
        "agentNotes": [
          "Match the key to the host. `mk_test` keys work only at https://api-sandbox.middesk.com/v1 and `mk_live` keys only at https://api.middesk.com/v1",
          "Name the `orders` on `POST /v1/businesses`. Omitting them places a verification order plus every package the account runs automatically, all billed",
          "Send `address_line1` and `address_line2`. The API ignores `address_line_1` without an error",
          "A 201 means the business was created, not verified. Wait for the `business.updated` webhook or poll until `status` leaves `pending`",
          "Stay under 20 requests a second per account, and in sandbox wait the seconds in `Retry-After` after a 429 on business creation"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59
          }
        ],
        "editorialScores": {
          "ergonomics": 56,
          "maintenance": 64,
          "payments": 10,
          "reliability": 73,
          "schema": 82,
          "security": 56,
          "transparency": 43
        },
        "provenanceScore": 78
      },
      "connect": {
        "http": "curl -X POST https://api-sandbox.middesk.com/v1/businesses \\\n  -u $MIDDESK_SANDBOX_API_KEY: \\\n  -H \"Accept: application/json\" \\\n  -d name=Corporation \\\n  -d addresses\\[0\\]\\[address_line1\\]=223+Grand+St. \\\n  -d addresses\\[0\\]\\[city\\]=new+york \\\n  -d addresses\\[0\\]\\[state\\]=NY \\\n  -d addresses\\[0\\]\\[postal_code\\]=10013",
        "claudeCode": "claude mcp add --transport http middesk https://mcp.middesk.com/mcp \\\n  --header \"Authorization: Bearer mk_live_...\"",
        "config": {
          "mcpServers": {
            "middesk": {
              "headers": {
                "Authorization": "Bearer mk_live_your_api_key"
              },
              "url": "https://mcp.middesk.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/kyc.business",
        "tool": "https://letme.dev/middesk"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Middesk, Inc.",
        "domain": "middesk.com",
        "domainRegistered": "2018-11-20",
        "endpointOnVendorDomain": true,
        "terms": "https://www.middesk.com/policies/bv-msa",
        "privacy": "https://www.middesk.com/policies/privacy-policy",
        "statusPage": "https://status.middesk.com",
        "changelog": "https://docs.middesk.com/guides/get-started/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Business Verification Terms and Conditions (last updated 21 August 2026) define Middesk as Middesk, Inc. The website terms (last updated 9 November 2023) give the address 85 2nd St., Suite 710, San Francisco, CA 94105.",
          "The API answers at api.middesk.com and api-sandbox.middesk.com, and the MCP server at mcp.middesk.com, all middesk.com subdomains.",
          "security.txt returns 404 on www.middesk.com, docs.middesk.com and api.middesk.com.",
          "The privacy policy was last updated on 2 November 2025 and gives no retention periods.",
          "trust.middesk.com is a Vanta trust centre that only renders with JavaScript, so we couldn't read its contents.",
          "RDAP for middesk.com gives a registration date of 2018-11-20."
        ],
        "score": 78
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/middesk.json",
      "live": {
        "slug": "middesk",
        "probe": {
          "target": "https://api.middesk.com/v1",
          "method": "get",
          "lastAt": "2026-10-08T19:08:53.228778228Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 213,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 213,
          "p95ms24h": 270,
          "samples24h": 42,
          "samples30d": 42,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 42,
              "ok": 42
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.middesk.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T19:06:45.998038558Z"
        },
        "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-08T19:08:53.228778228Z"
      }
    },
    "answer": "Veriff scores 61.1 (C) on agent readiness against Middesk's 59 (C), and leads in 4 of 7 scored categories. Middesk leads on reliability and agent ergonomics.",
    "b": {
      "slug": "veriff",
      "name": "Veriff",
      "vendor": "Veriff OÜ",
      "vendorUrl": "https://www.veriff.com",
      "kind": "http-api",
      "category": "identity-verification",
      "summary": "Identity verification service from Veriff in Tallinn. It checks an identity document and a selfie, with liveness, database checks and PEP and sanctions screening. Sessions are created and read through the Public API v1, with results sent by webhook.",
      "url": "https://www.anchorterminal.com/tools/veriff",
      "markdownUrl": "https://www.anchorterminal.com/tools/veriff.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/veriff.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/veriff.json",
      "repo": "https://github.com/Veriff/veriff-js-sdk",
      "license": "Proprietary service. The npm capture SDKs are ISC (@veriff/js-sdk, @veriff/incontext-sdk) and MIT (@veriff/react-native-sdk)",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@veriff/incontext-sdk"
        },
        {
          "registry": "npm",
          "name": "@veriff/js-sdk"
        },
        {
          "registry": "npm",
          "name": "@veriff/react-native-sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve. Signing up for a Self-Serve plan creates a Customer Portal account with a test integration, and Enterprise accounts start from a sales form. Each integration has an API key, sent as `X-AUTH-CLIENT`, and up to five shared secret keys used to compute an HMAC-SHA256 `X-HMAC-SIGNATURE` (over the body on POST and PATCH, over the session ID on GET and DELETE). POST /v1/sessions needs only the API key. Secrets are shown once and can be rotated or deleted by an admin. There are no scopes. A live integration unlocks once the account holder passes Veriff's own identity verification.",
      "pricing": "usage",
      "pricingNotes": "Self-Serve is priced per verification with a monthly minimum. Essential is $0.80 ($49 a month minimum), Plus $1.39 ($99) and Premium $1.89 ($209). PEP and sanctions screening adds $0.64, ongoing monitoring $0.09 and two-year retention $0.30. A 15-day trial covers up to 50 sessions with no card, after the account holder completes identity verification. Test integrations are free and unbilled. Enterprise, suggested for 5,000 or more verifications a month, is priced by sales (https://www.veriff.com/plans/self-serve, checked 2026-10-08).",
      "priceSummary": "$0.80 / tx",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs index, the API guides or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 32,
        "npmWeekly": 109625,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://devdocs.veriff.com",
      "llmsTxt": "https://devdocs.veriff.com/llms.txt",
      "openapi": "https://devdocs.veriff.com/apidocs/v1sessions.md",
      "capabilities": [
        "kyc.identity",
        "kyc.documents",
        "kyc.screening"
      ],
      "tags": [
        "hosted",
        "api-key",
        "hmac",
        "webhooks",
        "openapi",
        "llms-txt",
        "free-trial",
        "sandbox",
        "status-page",
        "bug-bounty",
        "soc2",
        "iso27001"
      ],
      "lastRelease": "2026-10-02",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.1,
        "grade": "C",
        "agentReady": false,
        "rank": 334,
        "ranked": true,
        "rankOf": 629,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 43,
          "maintenance": 74,
          "payments": 40,
          "reliability": 62,
          "schema": 82,
          "security": 63,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Per-verification prices are public from $0.80, with a 15-day trial of 50 sessions and no card. Each endpoint page is Markdown with an OpenAPI 3.0 fragment. There is no server SDK, MCP server or idempotency key, most calls need an HMAC signature, and the status page shows nine incidents between 20 July and 7 October 2026.",
        "bestFor": "A team that needs document and selfie verification with public per-verification prices and a trial, and that can run a webhook receiver and HMAC signing.",
        "strengths": [
          "Public prices of $0.80, $1.39 and $1.89 a verification, with a 15-day trial of up to 50 sessions and no card",
          "llms.txt index and Markdown pages, each API endpoint with an OpenAPI 3.0.0 fragment, examples and error schemas",
          "Up to five shared secret keys per integration, shown once, with documented rotation and deletion",
          "Test integrations are created at signup, aren't billed, and let the developer force a decision",
          "ISO/IEC 27001:2022, SOC 2 Type II, Cyber Essentials and a bug bounty on Intigriti paying 50 to 6,000 euros"
        ],
        "weaknesses": [
          "No server-side SDK and no MCP server. Official packages cover only browser and mobile capture",
          "No idempotency key on POST /v1/sessions, and no Retry-After or backoff guidance for the documented 429",
          "Nine status-page incidents between 20 July and 7 October 2026, mostly delayed decisions in the US region",
          "No endpoint lists sessions and no pagination was found. Every read needs a stored session ID",
          "Session deletion by API is off by default and capped at 10 sessions in 24 hours",
          "No security.txt, and the sub-processor list sits on a help centre page that needs JavaScript"
        ],
        "agentNotes": [
          "Take the base URL from the integration's API keys page. Send X-AUTH-CLIENT on every call and store verification.id from POST /v1/sessions",
          "Sign POST and PATCH bodies, and the session ID on GET and DELETE, with HMAC-SHA256 in X-HMAC-SIGNATURE. POST /v1/sessions needs no signature",
          "Stay under 30 session creations a minute on Self-Serve, 600 on Enterprise. A 429 carries code 1004",
          "Don't blindly retry POST /v1/sessions. Each call makes a new session, which is billed on a live integration",
          "Poll GET /v1/sessions/{id}/decision until `verification` is not null, or accept webhooks within 5 seconds and treat duplicates as normal"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61.1
          }
        ],
        "editorialScores": {
          "ergonomics": 43,
          "maintenance": 74,
          "payments": 40,
          "reliability": 62,
          "schema": 82,
          "security": 63,
          "transparency": 48
        },
        "provenanceScore": 85
      },
      "connect": {
        "http": "curl -X POST \"https://\u003cBaseURL\u003e/v1/sessions\" \\\n  -H 'Content-Type: application/json' \\\n  -H 'X-AUTH-CLIENT: API-KEY' \\\n  -d '{\"verification\": {}}'"
      },
      "letme": {
        "capability": "https://letme.dev/kyc.identity",
        "tool": "https://letme.dev/veriff"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Verification, Essential plan (automated decision)",
          "unit": "tx",
          "usd": 0.8,
          "note": "$49 a month minimum"
        },
        {
          "item": "Verification, Plus plan",
          "unit": "tx",
          "usd": 1.39,
          "note": "$99 a month minimum"
        },
        {
          "item": "Verification, Premium plan",
          "unit": "tx",
          "usd": 1.89,
          "note": "$209 a month minimum"
        },
        {
          "item": "PEP and sanctions screening add-on, per verification",
          "unit": "tx",
          "usd": 0.64,
          "note": "charged on top of the monthly minimum"
        },
        {
          "item": "Ongoing monitoring add-on, per verification",
          "unit": "tx",
          "usd": 0.09,
          "note": "charged on top of the monthly minimum"
        }
      ],
      "provenance": {
        "legalEntity": "Veriff OÜ",
        "domain": "veriff.com",
        "domainRegistered": "2006-04-12",
        "endpointOnVendorDomain": true,
        "terms": "https://www.veriff.com/terms-of-service",
        "privacy": "https://www.veriff.com/privacy-notice",
        "statusPage": "https://status.veriff.com",
        "changelog": "https://devdocs.veriff.com/docs/release-notes",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The privacy notice (valid from 30 July 2020, last updated 16 April 2026) names Veriff OÜ and Veriff Brazil Ltda. and gives the Estonian Data Protection Inspectorate as lead supervisory authority.",
          "www.veriff.com/terms-of-service answers 200 with the title Terms of Service but no terms text in the HTML we fetched, so the terms themselves weren't read.",
          "www.veriff.com/.well-known/security.txt and /security.txt return 404. Reports go to a bug bounty programme on Intigriti (https://www.veriff.com/bug-bounty).",
          "The API base URL is per integration and shown in the Customer Portal. Code samples in the docs use https://stationapi.veriff.com.",
          "RDAP for veriff.com gives a registration date of 2006-04-12, which predates the company.",
          "The sub-processor list is linked from the privacy notice to help.veriff.com, which returned only a JavaScript shell to our fetch."
        ],
        "score": 85
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/veriff.json",
      "live": {
        "slug": "veriff",
        "vendorStatus": {
          "page": "https://status.veriff.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T19:07:03.75500334Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "Veriff/veriff-js-sdk",
            "version": "v2.0.0",
            "released": "2025-09-09",
            "seenAt": "2026-10-08T16:34:12.058479178Z"
          },
          {
            "registry": "npm",
            "name": "@veriff/incontext-sdk",
            "version": "2.5.0",
            "seenAt": "2026-10-08T16:34:07.822049846Z"
          },
          {
            "registry": "npm",
            "name": "@veriff/js-sdk",
            "version": "2.0.0",
            "seenAt": "2026-10-08T16:34:08.944903091Z"
          },
          {
            "registry": "npm",
            "name": "@veriff/react-native-sdk",
            "version": "13.2.0",
            "seenAt": "2026-10-08T16:34:10.073325113Z"
          }
        ],
        "githubStars": 32,
        "npmWeekly": 109625,
        "securityTxt": {
          "url": "https://veriff.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:34.847122653Z"
        },
        "pages": [
          {
            "url": "https://devdocs.veriff.com/docs/release-notes",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:01.404186048Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "26520a9df2cc"
          },
          {
            "url": "https://www.veriff.com/privacy-notice",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:31:21.093035848Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "024c0d3f9713"
          },
          {
            "url": "https://www.veriff.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:31:23.123829782Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "d9e650601ce7"
          }
        ],
        "updatedAt": "2026-10-08T19:07:03.75500334Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Middesk, Inc.",
        "b": "Veriff OÜ",
        "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": "Pay per use",
        "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. The npm capture SDKs are ISC (@veriff/js-sdk, @veriff/incontext-sdk) and MIT (@veriff/react-native-sdk)",
        "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-02",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-04-16",
        "name": "Privacy policy last updated"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "2 stars",
        "b": "32 stars, 110k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Veriff scores 61.1 (C) on agent readiness against Middesk's 59 (C), and leads in 4 of 7 scored categories. Middesk leads on reliability and agent ergonomics.",
        "question": "Which is better for AI agents, Middesk or Veriff?"
      },
      {
        "answer": "Middesk takes an API key or an OAuth sign-in. Veriff needs an API key.",
        "question": "Do Middesk and Veriff need an API key?"
      },
      {
        "answer": "Middesk has a hosted endpoint at https://api.middesk.com/v1. No hosted endpoint is listed for Veriff.",
        "question": "Can an agent call Middesk and Veriff without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 73 against 62",
          "Agent ergonomics, 56 against 43"
        ],
        "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": [
          "Security \u0026 auth, 63 against 56",
          "Payments \u0026 pricing, 40 against 10",
          "Maintenance \u0026 community, 74 against 64",
          "Transparency \u0026 trust, 67 against 61"
        ],
        "also": null,
        "goodFor": "A team that needs document and selfie verification with public per-verification prices and a trial, and that can run a webhook receiver and HMAC signing.",
        "slug": "veriff",
        "watchFor": "No server-side SDK and no MCP server. Official packages cover only browser and mobile capture"
      }
    ],
    "job": {
      "capability": "kyc.identity",
      "name": "Kyc identity"
    },
    "others": [
      {
        "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-veriff.json",
        "title": "Jumio vs Veriff",
        "url": "https://www.anchorterminal.com/compare/jumio-vs-veriff"
      },
      {
        "json": "https://www.anchorterminal.com/compare/persona-vs-veriff.json",
        "title": "Persona vs Veriff",
        "url": "https://www.anchorterminal.com/compare/persona-vs-veriff"
      },
      {
        "json": "https://www.anchorterminal.com/compare/sumsub-vs-veriff.json",
        "title": "Sumsub vs Veriff",
        "url": "https://www.anchorterminal.com/compare/sumsub-vs-veriff"
      },
      {
        "json": "https://www.anchorterminal.com/compare/trulioo-vs-veriff.json",
        "title": "Trulioo vs Veriff",
        "url": "https://www.anchorterminal.com/compare/trulioo-vs-veriff"
      },
      {
        "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": 11,
        "edge": "middesk",
        "key": "reliability",
        "middesk": 73,
        "name": "Reliability",
        "veriff": 62,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "edge": "",
        "key": "schema",
        "middesk": 82,
        "name": "Schema \u0026 documentation",
        "veriff": 82,
        "weight": 13
      },
      {
        "by": 13,
        "edge": "middesk",
        "key": "ergonomics",
        "middesk": 56,
        "name": "Agent ergonomics",
        "veriff": 43,
        "weight": 13
      },
      {
        "by": 7,
        "edge": "veriff",
        "key": "security",
        "middesk": 56,
        "name": "Security \u0026 auth",
        "veriff": 63,
        "weight": 14
      },
      {
        "by": 30,
        "edge": "veriff",
        "key": "payments",
        "middesk": 10,
        "name": "Payments \u0026 pricing",
        "veriff": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "edge": "veriff",
        "key": "maintenance",
        "middesk": 64,
        "name": "Maintenance \u0026 community",
        "veriff": 74,
        "weight": 7
      },
      {
        "by": 6,
        "edge": "veriff",
        "key": "transparency",
        "middesk": 61,
        "name": "Transparency \u0026 trust",
        "veriff": 67,
        "weight": 7
      }
    ],
    "summary": "Veriff scores 61.1 (C) on agent readiness against Middesk's 59 (C), and leads in 4 of 7 scored categories. Middesk leads on reliability and agent ergonomics. Both do kyc identity.",
    "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.",
      "veriff": "Per-verification prices are public from $0.80, with a 15-day trial of 50 sessions and no card. Each endpoint page is Markdown with an OpenAPI 3.0 fragment. There is no server SDK, MCP server or idempotency key, most calls need an HMAC signature, and the status page shows nine incidents between 20 July and 7 October 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/middesk-vs-veriff",
    "json": "https://www.anchorterminal.com/compare/middesk-vs-veriff.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/middesk-vs-veriff.md",
    "slim": "https://www.anchorterminal.com/compare/middesk-vs-veriff.min.md"
  },
  "markdown": "Veriff scores 61.1 (C) on agent readiness against Middesk's 59 (C), and leads in 4 of 7 scored categories. Middesk leads on reliability and agent ergonomics. Both do kyc identity.\n\n- Middesk: grade C, 59/100, rank #389 of 629. Markdown https://www.anchorterminal.com/tools/middesk.md · JSON https://www.anchorterminal.com/api/v1/tools/middesk.json\n- Veriff: grade C, 61.1/100, rank #334 of 629. Markdown https://www.anchorterminal.com/tools/veriff.md · JSON https://www.anchorterminal.com/api/v1/tools/veriff.json\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 62\n- Agent ergonomics, 56 against 43\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### Veriff (C)\n\nGood for: A team that needs document and selfie verification with public per-verification prices and a trial, and that can run a webhook receiver and HMAC signing.\n\nAhead on:\n- Security \u0026 auth, 63 against 56\n- Payments \u0026 pricing, 40 against 10\n- Maintenance \u0026 community, 74 against 64\n- Transparency \u0026 trust, 67 against 61\n\nWatch for: No server-side SDK and no MCP server. Official packages cover only browser and mobile capture\n\n\n## Score by category\n\n| Category | Weight | Middesk | Veriff | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 73 | 62 | Middesk +11 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 82 | 82 | even |\n| Agent ergonomics | 13% (16.2 this run) | 56 | 43 | Middesk +13 |\n| Security \u0026 auth | 14% (17.5 this run) | 56 | 63 | Veriff +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 40 | Veriff +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 64 | 74 | Veriff +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 61 | 67 | Veriff +6 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **59 · C** | **61.1 · C** | |\n\n## Facts side by side\n\n| Fact | Middesk | Veriff |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Middesk, Inc. | Veriff OÜ |\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 | Pay per use |\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. The npm capture SDKs are ISC (@veriff/js-sdk, @veriff/incontext-sdk) and MIT (@veriff/react-native-sdk) |\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-02 |\n| Terms last updated | no date given | couldn't be read |\n| Privacy policy last updated | no date given | 2026-04-16 |\n| Customer content may train models | yes | yes |\n| Terms restrict automated access | not found in the text | couldn't be read |\n| Terms restrict benchmarking | yes | couldn't be read |\n| Terms or service can change without notice | not found in the text | couldn't be read |\n| Arbitration or class-action waiver | yes | couldn't be read |\n| Popularity | 2 stars | 32 stars, 110k npm/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**Veriff.** Per-verification prices are public from $0.80, with a 15-day trial of 50 sessions and no card. Each endpoint page is Markdown with an OpenAPI 3.0 fragment. There is no server SDK, MCP server or idempotency key, most calls need an HMAC signature, and the status page shows nine incidents between 20 July and 7 October 2026.\n\n## 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### Veriff\n\n1. Take the base URL from the integration's API keys page. Send X-AUTH-CLIENT on every call and store verification.id from POST /v1/sessions\n2. Sign POST and PATCH bodies, and the session ID on GET and DELETE, with HMAC-SHA256 in X-HMAC-SIGNATURE. POST /v1/sessions needs no signature\n3. Stay under 30 session creations a minute on Self-Serve, 600 on Enterprise. A 429 carries code 1004\n4. Don't blindly retry POST /v1/sessions. Each call makes a new session, which is billed on a live integration\n5. Poll GET /v1/sessions/{id}/decision until `verification` is not null, or accept webhooks within 5 seconds and treat duplicates as normal\n\n## Questions\n\n### Which is better for AI agents, Middesk or Veriff?\n\nVeriff scores 61.1 (C) on agent readiness against Middesk's 59 (C), and leads in 4 of 7 scored categories. Middesk leads on reliability and agent ergonomics.\n\n### Do Middesk and Veriff need an API key?\n\nMiddesk takes an API key or an OAuth sign-in. Veriff needs an API key.\n\n### Can an agent call Middesk and Veriff without installing anything?\n\nMiddesk has a hosted endpoint at https://api.middesk.com/v1. No hosted endpoint is listed for Veriff.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/middesk-vs-veriff.json, and with the fewest tokens: https://www.anchorterminal.com/compare/middesk-vs-veriff.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"middesk\", \"b\": \"veriff\"}`. From a terminal: `anchor compare middesk veriff`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/middesk.json and https://www.anchorterminal.com/api/v1/tools/veriff.json\n\n## Other comparisons with Middesk or Veriff\n\n- [Jumio vs Middesk](https://www.anchorterminal.com/compare/jumio-vs-middesk.md)\n- [Jumio vs Veriff](https://www.anchorterminal.com/compare/jumio-vs-veriff.md)\n- [Persona vs Veriff](https://www.anchorterminal.com/compare/persona-vs-veriff.md)\n- [Sumsub vs Veriff](https://www.anchorterminal.com/compare/sumsub-vs-veriff.md)\n- [Trulioo vs Veriff](https://www.anchorterminal.com/compare/trulioo-vs-veriff.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": "Middesk vs Veriff",
        "url": ""
      }
    ],
    "description": "Veriff scores 61.1 (C) on agent readiness against Middesk's 59 (C), and leads in 4 of 7 scored categories. Middesk leads on reliability and agent ergonomics. Both do kyc identity. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Middesk C 59",
      "Veriff C 61.1",
      "scores"
    ],
    "h1": "Middesk vs Veriff",
    "image": "https://www.anchorterminal.com/assets/og/compare-middesk-vs-veriff.png",
    "path": "/compare/middesk-vs-veriff",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Middesk vs Veriff for AI agents, C 59 vs C 61.1 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/middesk-vs-veriff"
  },
  "tokens": {
    "markdown": 2000,
    "slim": 730
  },
  "version": 1
}
