{
  "data": {
    "a": {
      "slug": "complycube",
      "name": "ComplyCube",
      "vendor": "ComplyCube (Teemo Technology Ltd)",
      "vendorUrl": "https://www.complycube.com",
      "kind": "http-api",
      "category": "identity-verification",
      "summary": "ComplyCube verifies people from identity documents and a liveness check, screens people and companies against sanctions, PEP and adverse media lists, and runs address and bureau checks. Agents reach it through a REST API with separate test and live keys.",
      "url": "https://www.anchorterminal.com/tools/complycube",
      "markdownUrl": "https://www.anchorterminal.com/tools/complycube.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/complycube.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/complycube.json",
      "repo": "https://github.com/complycube/complycube-php",
      "license": "Proprietary service under ComplyCube's terms of service. The PHP library and the web, iOS and Android SDK repositories are MIT, and `@complycube/api` on npm is MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.complycube.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@complycube/api"
        },
        {
          "registry": "pypi",
          "name": "complycube"
        }
      ],
      "auth": "api-key",
      "authNotes": "Every request carries an API key in the `Authorization` header, with no Bearer prefix. Each account has a test key (prefix `test_`) and a live key (prefix `live_`), created and rotated on the API keys page of the Web Portal by a signed-in Owner, Administrator or Developer. Keys have no scopes, and the docs say they carry many privileges. The live key opens when the account is activated from Test to Live in the portal. Client-side SDKs use short-lived tokens from `POST /v1/tokens` (https://docs.complycube.com/documentation/api-reference/authentication).",
      "pricing": "usage",
      "pricingNotes": "Starter is $99 a month and Core $299, each converted to credits spent per check, with further checks billed at plan rates. On Starter a document check is $1.05, standard AML screening $0.50 and a photo liveness check $0.35. Growth and Enterprise are quoted by sales. Only completed verifications are charged. The sandbox is free with a test key, and a 14-day trial of 50 checks starts on activation to Live (https://www.complycube.com/en/pricing/, checked 2026-10-08).",
      "priceSummary": "$99 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API reference, the OpenAPI spec or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 6182,
        "pypiWeekly": 292,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.complycube.com/documentation",
      "llmsTxt": "https://docs.complycube.com/documentation/llms.txt",
      "openapi": "https://2245032618-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkAhgmUKSf8CFUFVL3GEe%2Fuploads%2FcpxxltxmYAxOotxgEkmP%2Fcomplycube-openapi.yaml?alt=media\u0026token=aa988fe0-8ce8-431c-a69a-6657f5eacf28",
      "capabilities": [
        "kyc.identity",
        "kyc.documents",
        "kyc.screening",
        "kyc.business"
      ],
      "tags": [
        "hosted",
        "usage-based",
        "sandbox",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "status-page",
        "python",
        "typescript",
        "php",
        "dotnet",
        "iso27001",
        "soc2"
      ],
      "lastRelease": "2026-10-06",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.7,
        "grade": "B",
        "agentReady": false,
        "rank": 299,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 74,
          "payments": 27,
          "reliability": 84,
          "schema": 78,
          "security": 52,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A sandbox with its own key and scripted outcomes, a public OpenAPI spec, Markdown docs and an audit log API suit an agent running verification checks. Each environment has one unscoped key, no idempotency keys were found, and the only published terms are undated and read as website terms.",
        "bestFor": "An agent that creates clients, uploads documents, starts document, identity and AML screening checks and reads results for a regulated business, with low entry cost ($99 a month) and a scripted sandbox.",
        "strengths": [
          "Test and live environments have separate keys, and sandbox outcomes are set by test data such as a client last name of attention or failed",
          "Public OpenAPI 3.0.0 spec (version 1.7.3, 52 operations), `llms.txt`, and every docs page served as Markdown",
          "Audit log API records the team member, trigger, action and a field-level diff of old and new values",
          "Per-check prices are public for the Starter and Core plans, and failed or incomplete verifications are not charged",
          "Statuspage lists API, Web Portal and each check type for four regions, with no incident recorded since August 2022"
        ],
        "weaknesses": [
          "One API key per environment with no scopes. The docs say keys carry many privileges",
          "No idempotency keys, and no Retry-After header documented for 429 responses",
          "The only published terms are undated, read as website terms and cite the Data Protection Act 1998. No service agreement or DPA was found on a public page",
          "No `security.txt`, disclosure policy or bug bounty found, and the trust centre is drawn by script",
          "Company search, address search and redaction endpoints are in the API reference but not in the OpenAPI spec",
          "The ComplyCube MCP server serves documentation only and cannot reach account data"
        ],
        "agentNotes": [
          "Send the key bare in the `Authorization` header, with no Bearer prefix. Keys start `test_` or `live_`",
          "Create a client first, then documents or live photos for it, then `POST /v1/checks` with the client and upload IDs",
          "Stay under 10 requests a second live and 5 in the sandbox. On 429, back off exponentially with jitter, starting at 30 seconds",
          "A badly formed filter returns 200 with no results, so check filter names before trusting an empty list",
          "Checks are asynchronous. Subscribe to webhooks, verify the `ComplyCube-Signature` HMAC-SHA256 header, and expect duplicate and out-of-order events"
        ],
        "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": 63.7
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 74,
          "payments": 27,
          "reliability": 84,
          "schema": 78,
          "security": 52,
          "transparency": 43
        },
        "provenanceScore": 82
      },
      "connect": {
        "install": "npm install --save @complycube/api",
        "http": "curl -X GET https://api.complycube.com/v1/clients \\\n     -H 'Authorization: \u003cYOUR_API_KEY\u003e'"
      },
      "letme": {
        "capability": "https://letme.dev/kyc.identity",
        "tool": "https://letme.dev/complycube"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 99,
          "note": "converted to usage credits; 1,000 checks a month quota"
        },
        {
          "item": "Core plan",
          "unit": "month",
          "usd": 299,
          "note": "converted to usage credits; 8,000 checks a month quota"
        },
        {
          "item": "Document verification check, Starter",
          "unit": "tx",
          "usd": 1.05,
          "note": "per completed check; $0.75 on Core"
        },
        {
          "item": "Standard AML screening, Starter",
          "unit": "tx",
          "usd": 0.5,
          "note": "per completed check; $0.35 on Core"
        },
        {
          "item": "Extensive AML screening, Starter",
          "unit": "tx",
          "usd": 1.05,
          "note": "per completed check; $0.85 on Core"
        },
        {
          "item": "Liveness and facial similarity check (photo), Starter",
          "unit": "tx",
          "usd": 0.35,
          "note": "per completed check; $0.20 on Core"
        }
      ],
      "provenance": {
        "legalEntity": "Teemo Technology Ltd",
        "domain": "complycube.com",
        "domainRegistered": "2018-05-24",
        "endpointOnVendorDomain": true,
        "terms": "https://www.complycube.com/en/terms-of-service/",
        "privacy": "https://www.complycube.com/en/privacy-policy/",
        "statusPage": "https://status.complycube.com",
        "changelog": "https://docs.complycube.com/documentation/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The privacy policy gives ComplyCube as the trading name of TEEMO TECHNOLOGY LTD, company number 12392069, Crown House, 27 Old Gloucester Street, London WC1N 3AX. The terms of service name only ComplyCube, registered in England and Wales, at that address.",
          "The terms of service are the only terms published. They define the Services to include ComplyCube's data and software services, but are written around website use, carry no date and cite the Data Protection Act 1998. No separate service agreement or DPA was found on a public page.",
          "The privacy policy covers the website and the Service and carries no date.",
          "The API answers at api.complycube.com, the Web Portal at portal.complycube.com and the docs at docs.complycube.com.",
          "www.complycube.com/.well-known/security.txt redirects to a 404 page, and api.complycube.com returns 403 for the same path.",
          "RDAP for complycube.com gives a registration date of 2018-05-24."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/complycube.json",
      "live": {
        "slug": "complycube",
        "probe": {
          "target": "https://api.complycube.com",
          "method": "get",
          "lastAt": "2026-10-08T21:12:08.016023639Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 28,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 32,
          "p95ms24h": 67,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.complycube.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:05:57.230738482Z"
        },
        "updatedAt": "2026-10-08T21:12:08.016023639Z"
      }
    },
    "answer": "ComplyCube scores 63.7 (B) on agent readiness against Middesk's 59 (C), and leads in 5 of 7 scored categories.",
    "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:12:15.740989382Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 208,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 214,
          "p95ms24h": 316,
          "samples24h": 64,
          "samples30d": 64,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 64,
              "ok": 64
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.middesk.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:06:12.357681566Z"
        },
        "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:12:15.740989382Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "ComplyCube (Teemo Technology Ltd)",
        "b": "Middesk, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.complycube.com",
        "b": "https://api.middesk.com/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API 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 ComplyCube's terms of service. The PHP library and the web, iOS and Android SDK repositories are MIT, and `@complycube/api` on npm 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": "none",
        "b": "11",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-06",
        "b": "2026-10-05",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "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": "not found in the text",
        "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": "6.2k npm/wk, 292 PyPI/wk",
        "b": "2 stars",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "ComplyCube scores 63.7 (B) on agent readiness against Middesk's 59 (C), and leads in 5 of 7 scored categories.",
        "question": "Which is better for AI agents, ComplyCube or Middesk?"
      },
      {
        "answer": "ComplyCube needs an API key. Middesk takes an API key or an OAuth sign-in.",
        "question": "Do ComplyCube and Middesk need an API key?"
      },
      {
        "answer": "Yes. ComplyCube has a hosted endpoint at https://api.complycube.com and Middesk at https://api.middesk.com/v1.",
        "question": "Can an agent call ComplyCube and Middesk without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 84 against 73",
          "Payments \u0026 pricing, 27 against 10",
          "Maintenance \u0026 community, 74 against 64"
        ],
        "also": null,
        "goodFor": "An agent that creates clients, uploads documents, starts document, identity and AML screening checks and reads results for a regulated business, with low entry cost ($99 a month) and a scripted sandbox.",
        "slug": "complycube",
        "watchFor": "One API key per environment with no scopes. The docs say keys carry many privileges"
      },
      {
        "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-jumio.json",
        "title": "ComplyCube vs Jumio",
        "url": "https://www.anchorterminal.com/compare/complycube-vs-jumio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complycube-vs-persona.json",
        "title": "ComplyCube vs Persona",
        "url": "https://www.anchorterminal.com/compare/complycube-vs-persona"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complycube-vs-sumsub.json",
        "title": "ComplyCube vs Sumsub",
        "url": "https://www.anchorterminal.com/compare/complycube-vs-sumsub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complycube-vs-trulioo.json",
        "title": "ComplyCube vs Trulioo",
        "url": "https://www.anchorterminal.com/compare/complycube-vs-trulioo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complycube-vs-veriff.json",
        "title": "ComplyCube vs Veriff",
        "url": "https://www.anchorterminal.com/compare/complycube-vs-veriff"
      },
      {
        "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/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-complycube.json",
        "title": "ComplyAdvantage vs ComplyCube",
        "url": "https://www.anchorterminal.com/compare/complyadvantage-vs-complycube"
      },
      {
        "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": 11,
        "complycube": 84,
        "edge": "complycube",
        "key": "reliability",
        "middesk": 73,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 4,
        "complycube": 78,
        "edge": "middesk",
        "key": "schema",
        "middesk": 82,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 4,
        "complycube": 60,
        "edge": "complycube",
        "key": "ergonomics",
        "middesk": 56,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 4,
        "complycube": 52,
        "edge": "middesk",
        "key": "security",
        "middesk": 56,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 17,
        "complycube": 27,
        "edge": "complycube",
        "key": "payments",
        "middesk": 10,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 10,
        "complycube": 74,
        "edge": "complycube",
        "key": "maintenance",
        "middesk": 64,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 2,
        "complycube": 63,
        "edge": "complycube",
        "key": "transparency",
        "middesk": 61,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "ComplyCube scores 63.7 (B) on agent readiness against Middesk's 59 (C), and leads in 5 of 7 scored categories. Both do kyc identity.",
    "verdicts": {
      "complycube": "A sandbox with its own key and scripted outcomes, a public OpenAPI spec, Markdown docs and an audit log API suit an agent running verification checks. Each environment has one unscoped key, no idempotency keys were found, and the only published terms are undated and read as website terms.",
      "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/complycube-vs-middesk",
    "json": "https://www.anchorterminal.com/compare/complycube-vs-middesk.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/complycube-vs-middesk.md",
    "slim": "https://www.anchorterminal.com/compare/complycube-vs-middesk.min.md"
  },
  "markdown": "ComplyCube scores 63.7 (B) on agent readiness against Middesk's 59 (C), and leads in 5 of 7 scored categories. Both do kyc identity.\n\n- ComplyCube: grade B, 63.7/100, rank #299 of 722. Markdown https://www.anchorterminal.com/tools/complycube.md · JSON https://www.anchorterminal.com/api/v1/tools/complycube.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### ComplyCube (B)\n\nGood for: An agent that creates clients, uploads documents, starts document, identity and AML screening checks and reads results for a regulated business, with low entry cost ($99 a month) and a scripted sandbox.\n\nAhead on:\n- Reliability, 84 against 73\n- Payments \u0026 pricing, 27 against 10\n- Maintenance \u0026 community, 74 against 64\n\nWatch for: One API key per environment with no scopes. The docs say keys carry many privileges\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 | ComplyCube | Middesk | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 84 | 73 | ComplyCube +11 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 78 | 82 | Middesk +4 |\n| Agent ergonomics | 13% (16.2 this run) | 60 | 56 | ComplyCube +4 |\n| Security \u0026 auth | 14% (17.5 this run) | 52 | 56 | Middesk +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 27 | 10 | ComplyCube +17 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 74 | 64 | ComplyCube +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 61 | ComplyCube +2 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.7 · B** | **59 · C** | |\n\n## Facts side by side\n\n| Fact | ComplyCube | Middesk |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | ComplyCube (Teemo Technology Ltd) | Middesk, Inc. |\n| Hosted endpoint | `https://api.complycube.com` | `https://api.middesk.com/v1` |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Pay per use | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under ComplyCube's terms of service. The PHP library and the web, iOS and Android SDK repositories are MIT, and `@complycube/api` on npm 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 | none | 11 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-06 | 2026-10-05 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | no date given | no date given |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | 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 | 6.2k npm/wk, 292 PyPI/wk | 2 stars |\n\n## Verdicts\n\n**ComplyCube.** A sandbox with its own key and scripted outcomes, a public OpenAPI spec, Markdown docs and an audit log API suit an agent running verification checks. Each environment has one unscoped key, no idempotency keys were found, and the only published terms are undated and read as website terms.\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### ComplyCube\n\n1. Send the key bare in the `Authorization` header, with no Bearer prefix. Keys start `test_` or `live_`\n2. Create a client first, then documents or live photos for it, then `POST /v1/checks` with the client and upload IDs\n3. Stay under 10 requests a second live and 5 in the sandbox. On 429, back off exponentially with jitter, starting at 30 seconds\n4. A badly formed filter returns 200 with no results, so check filter names before trusting an empty list\n5. Checks are asynchronous. Subscribe to webhooks, verify the `ComplyCube-Signature` HMAC-SHA256 header, and expect duplicate and out-of-order events\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, ComplyCube or Middesk?\n\nComplyCube scores 63.7 (B) on agent readiness against Middesk's 59 (C), and leads in 5 of 7 scored categories.\n\n### Do ComplyCube and Middesk need an API key?\n\nComplyCube needs an API key. Middesk takes an API key or an OAuth sign-in.\n\n### Can an agent call ComplyCube and Middesk without installing anything?\n\nYes. ComplyCube has a hosted endpoint at https://api.complycube.com and Middesk at https://api.middesk.com/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/complycube-vs-middesk.json, and with the fewest tokens: https://www.anchorterminal.com/compare/complycube-vs-middesk.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"complycube\", \"b\": \"middesk\"}`. From a terminal: `anchor compare complycube middesk`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/complycube.json and https://www.anchorterminal.com/api/v1/tools/middesk.json\n\n## Other comparisons with ComplyCube or Middesk\n\n- [ComplyCube vs Didit](https://www.anchorterminal.com/compare/complycube-vs-didit.md)\n- [ComplyCube vs Jumio](https://www.anchorterminal.com/compare/complycube-vs-jumio.md)\n- [ComplyCube vs Persona](https://www.anchorterminal.com/compare/complycube-vs-persona.md)\n- [ComplyCube vs Sumsub](https://www.anchorterminal.com/compare/complycube-vs-sumsub.md)\n- [ComplyCube vs Trulioo](https://www.anchorterminal.com/compare/complycube-vs-trulioo.md)\n- [ComplyCube vs Veriff](https://www.anchorterminal.com/compare/complycube-vs-veriff.md)\n- [Didit vs Middesk](https://www.anchorterminal.com/compare/didit-vs-middesk.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 ComplyCube](https://www.anchorterminal.com/compare/complyadvantage-vs-complycube.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": "ComplyCube vs Middesk",
        "url": ""
      }
    ],
    "description": "ComplyCube scores 63.7 (B) on agent readiness against Middesk's 59 (C), and leads in 5 of 7 scored categories. Both do kyc identity. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "ComplyCube B 63.7",
      "Middesk C 59",
      "scores"
    ],
    "h1": "ComplyCube vs Middesk",
    "image": "https://www.anchorterminal.com/assets/og/compare-complycube-vs-middesk.png",
    "path": "/compare/complycube-vs-middesk",
    "published": "2026-10-01",
    "section": "tools",
    "title": "ComplyCube vs Middesk for AI agents, B 63.7 vs C 59 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/complycube-vs-middesk"
  },
  "tokens": {
    "markdown": 2100,
    "slim": 630
  },
  "version": 1
}
