{
  "data": {
    "a": {
      "slug": "alloy",
      "name": "Alloy",
      "vendor": "First Mile Group, Inc. (Alloy)",
      "vendorUrl": "https://www.alloy.com",
      "kind": "http-api",
      "category": "identity-verification",
      "summary": "Alloy is an identity and fraud decisioning platform for banks and fintechs. Its API runs onboarding journeys and evaluations that orchestrate identity, business, document and watchlist checks across third-party data vendors, with case management and ongoing monitoring.",
      "url": "https://www.anchorterminal.com/tools/alloy",
      "markdownUrl": "https://www.anchorterminal.com/tools/alloy.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/alloy.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/alloy.json",
      "license": "Proprietary service under Alloy's terms of service. The @alloyidentity/web-sdk capture package is MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "@alloyidentity/web-sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "Account-level token and secret (older accounts use a workflow token and secret), sent as HTTP basic auth or exchanged at /v1/oauth/bearer for a one-hour Bearer token with client credentials. Up to five active secrets per key, rotated and revoked in the dashboard by users with key permissions. No scopes. The same keys serve sandbox and production, chosen by base URL or the `alloy-sandbox: true` header. Keys come with a customer contract (checked 2026-10-14).",
      "pricing": "paid",
      "pricingNotes": "No public prices. www.alloy.com/pricing returns 404 and the site routes buyers to a demo. Production calls invoke third-party data vendors and can incur charges, while sandbox calls don't (https://developer.alloy.com/public/docs/sandbox-vs-production, checked 2026-10-14).",
      "priceSummary": "Paid",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs index, the API reference or the website (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 20569,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://developer.alloy.com/public/docs/introduction",
      "llmsTxt": "https://developer.alloy.com/public/llms.txt",
      "capabilities": [
        "kyc.identity",
        "kyc.business",
        "kyc.screening",
        "kyc.documents",
        "kyc.cases"
      ],
      "tags": [
        "hosted",
        "enterprise",
        "sales-led",
        "api-key",
        "oauth",
        "llms-txt",
        "webhooks",
        "sandbox",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-10-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 52.4,
        "grade": "D",
        "agentReady": false,
        "rank": 782,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 16,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 52,
          "maintenance": 72,
          "payments": 0,
          "reliability": 59,
          "schema": 73,
          "security": 49,
          "transparency": 62
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Alloy's public docs cover journeys, evaluations, entities, documents, cases and investigations, with llms.txt, Markdown pages, OpenAPI fragments and rate-limit headers with retry-after. Access is sales-led with no public price or trial, credentials have no scopes, there is no idempotency key or server SDK, and inputs vary by each customer's workflow.",
        "bestFor": "Banks and fintechs that already run onboarding through Alloy and want an agent to submit journey applications, read decisions and work investigations.",
        "strengths": [
          "Public developer docs with llms.txt (247 entries), Markdown pages and an OpenAPI fragment on each reference page",
          "Rate-limit headers and `retry-after` on 429, with a written guide to which codes to retry",
          "One API orchestrates identity, business, document and watchlist checks across many data vendors",
          "Up to five active secrets per key, OAuth client credentials and an IP allowlist",
          "Status page with separate Production API, Sandbox API, Webhooks and third-party components"
        ],
        "weaknesses": [
          "No public prices, trial or self-serve sign-up. Access starts with a demo request",
          "Rate limits vary by account and endpoint with no published numbers",
          "No idempotency key and no server-side SDK",
          "Evaluation inputs and outputs depend on each customer's workflow, so the contract is loosely typed",
          "Sandbox and Production are request modes over one data store, so test and live records can collide"
        ],
        "agentNotes": [
          "Get the account's base URL from the customer. Defaults are api.alloy.co and sandbox.alloy.co, and some accounts have their own hosts",
          "Use unique, prefixed external IDs in sandbox. Sandbox and Production share one data store",
          "Read `alloy-ratelimit-remaining`, and on 429 or 5xx wait for `retry-after` with exponential backoff and jitter",
          "Expect `running` after about 25 seconds on journey applications and wait for the webhook instead of resubmitting",
          "Send the workflow header with account-level keys, since inputs depend on the workflow configured"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 52.4
          }
        ],
        "editorialScores": {
          "ergonomics": 52,
          "maintenance": 72,
          "payments": 0,
          "reliability": 59,
          "schema": 73,
          "security": 49,
          "transparency": 38
        },
        "provenanceScore": 86
      },
      "connect": {
        "http": "curl -X POST https://sandbox.alloy.co/v1/oauth/bearer \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Authorization: Basic \u003cbasic_token\u003e\" \\\n  -d '{\n    \"grant_type\": \"client_credentials\"\n  }'"
      },
      "letme": {
        "capability": "https://letme.dev/kyc.identity",
        "tool": "https://letme.dev/alloy"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "First Mile Group, Inc.",
        "domain": "alloy.com",
        "domainRegistered": "1999-02-25",
        "endpointOnVendorDomain": true,
        "terms": "https://www.alloy.com/tos",
        "privacy": "https://www.alloy.com/privacy-policy",
        "statusPage": "https://status.alloy.com",
        "changelog": "https://www.alloy.com/product-updates",
        "securityTxt": "none",
        "checked": "2026-10-14",
        "notes": [
          "The privacy policy (29 August 2025) names First Mile Group, Inc. d/b/a/ Alloy.",
          "The default API hosts are on alloy.co (api.alloy.co, sandbox.alloy.co), and account-specific hosts on alloy.com. status.alloy.co redirects to status.alloy.com.",
          "www.alloy.com/.well-known/security.txt and alloy.co/.well-known/security.txt return 404.",
          "RDAP for alloy.com gives a registration date of 1999-02-25, before Alloy was founded in 2015."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/alloy.json",
      "live": {
        "slug": "alloy",
        "vendorStatus": {
          "page": "https://status.alloy.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-14T09:50:42.047906821Z"
        },
        "mcpTools": {
          "url": "https://api.alloy.cx/mcp",
          "checkedAt": "2026-10-02T22:09:59.902886223Z",
          "status": "auth",
          "note": "asks for credentials before listing its tools",
          "changedAt": "2026-10-02T22:09:59.902886223Z"
        },
        "updatedAt": "2026-10-14T09:50:42.047906821Z"
      }
    },
    "answer": "Didit scores 75 (BB) on agent readiness against Alloy's 52.4 (D), and leads in every scored category.",
    "b": {
      "slug": "didit",
      "name": "Didit",
      "vendor": "Didit Identity Spain, S.L.",
      "vendorUrl": "https://didit.me",
      "kind": "http-api",
      "category": "identity-verification",
      "summary": "Didit is a hosted identity verification service for document, liveness, face match, sanctions screening and business registry checks. Developers reach it through a REST API with an OpenAPI spec, a hosted MCP server and client SDKs.",
      "url": "https://www.anchorterminal.com/tools/didit",
      "markdownUrl": "https://www.anchorterminal.com/tools/didit.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/didit.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/didit.json",
      "repo": "https://github.com/didit-protocol/mcp",
      "license": "Proprietary service under Didit's Business Terms and Conditions. The MCP server in didit-protocol/mcp is MIT",
      "transports": [
        "http",
        "streamable-http",
        "stdio"
      ],
      "remoteUrl": "https://verification.didit.me",
      "packages": [
        {
          "registry": "npm",
          "name": "@didit-protocol/mcp-server"
        },
        {
          "registry": "npm",
          "name": "@didit-protocol/sdk-web"
        },
        {
          "registry": "npm",
          "name": "@didit-protocol/sdk-react-native"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. The REST API takes an application API key in the `x-api-key` header. A key comes from the Business Console or from the registration API on `apx.didit.me`, which emails a 6-character code and returns the key with no browser step. Each application has a primary key with full access and any number of named keys with read or write access per resource, workflow and status limits, an IP allowlist and an expiry date. Named keys are created, rotated and revoked only in the console. The hosted MCP server uses OAuth 2.1 with PKCE and dynamic client registration, with the scopes `didit:management` and `didit:verification`, and accepts no API key.",
      "pricing": "usage",
      "pricingNotes": "Pay per completed check from prepaid USD credits, with no contract or minimum and no card needed to sign up. In a workflow, ID verification is $0.15, passive liveness $0.10, face match $0.05, device and IP analysis $0.03 and AML screening $0.20. Until 1 November 2026 each organisation gets 500 free checks a month for each of the first four. From 1 November that becomes $10 of credit a month, with optional Growth ($99 a month) and Scale ($299 a month) plans. Sandbox applications are not billed (https://docs.didit.me/getting-started/pricing, checked 2026-10-08).",
      "priceSummary": "$0.15 / tx",
      "where": "both",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the OpenAPI spec, the docs index or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 156,
      "popularity": {
        "githubStars": 0,
        "npmWeekly": 27338,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.didit.me",
      "llmsTxt": "https://docs.didit.me/llms.txt",
      "openapi": "https://docs.didit.me/openapi-25.json",
      "registryName": "me.didit/mcp",
      "capabilities": [
        "kyc.identity",
        "kyc.documents",
        "kyc.screening",
        "kyc.business",
        "kyc.cases"
      ],
      "tags": [
        "hosted",
        "api-key",
        "oauth",
        "mcp",
        "webhooks",
        "openapi",
        "llms-txt",
        "free-tier",
        "no-card",
        "sandbox",
        "status-page",
        "sla",
        "soc2",
        "iso27001"
      ],
      "lastRelease": "2026-10-08",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 75,
        "grade": "BB",
        "agentReady": true,
        "rank": 63,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 69,
          "maintenance": 82,
          "payments": 60,
          "reliability": 80,
          "schema": 88,
          "security": 76,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A self-serve verification API with public per-check prices, key registration by API, scoped keys and a 365-day audit log. The status page shows three incidents marked major between 22 July and 4 September 2026, each a partial outage of the core APIs, and the sub-processor list isn't public.",
        "bestFor": "A team that wants document, liveness, screening and business registry checks from one API with public prices and no sales step, and an agent that has to set itself up.",
        "strengths": [
          "An account and API key can be created by API at `apx.didit.me/auth/v2/programmatic/register/`, with an emailed code and no browser step",
          "Public OpenAPI 3.0.0 spec with 256 operations, plus llms.txt and a Markdown copy of every docs page",
          "Named API keys take read or write access per resource, workflow limits, an IP allowlist and an expiry date, and rotation keeps the old secret for 24 hours",
          "429 responses carry `Retry-After`, limits are published per scope, and 31 operations document an `Idempotency-Key` header or a reuse rule",
          "Per-check prices are public, charged only when a check finishes, with 500 free checks a month per core feature until 1 November 2026"
        ],
        "weaknesses": [
          "Three incidents marked major on status.didit.me from 22 July to 4 September 2026, each a partial outage of the core APIs traced to the primary database",
          "No server-side SDK in any language. The published SDKs are capture clients for web, iOS, Android, React Native and Flutter",
          "The data processing addendum says the sub-processor list is published at `/terms/sub-processors`, but that address shows the legal index, which says the list is sent after a signed NDA",
          "Verification data is used for model training by default until an organisation owner turns it off in the console",
          "The hosted MCP server lists 156 tools to a signed-in user, 23 of them destructive, and role checks run in a mode that logs without hiding tools by default"
        ],
        "agentNotes": [
          "Register with `POST https://apx.didit.me/auth/v2/programmatic/register/`, then `verify-email` with the emailed 6-character code. Use a real inbox, because reserved test domains return 500.",
          "Send the key as `x-api-key` to `https://verification.didit.me/v3/`. The JWT from registration works only on `apx.didit.me`.",
          "Create a workflow before `POST /v3/session/`. `workflow_id` is the only required field, and an unfinished session with the same `vendor_data` is returned again.",
          "Read results from webhooks and use `GET /v3/session/{sessionId}/decision/` for back-fill. Every per-feature result is a plural array.",
          "The MCP server at `https://mcp.didit.me/mcp` takes OAuth sign-in only, never an API key. Approve `didit:verification` alone when the task doesn't change workflows or keys."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 75
          }
        ],
        "editorialScores": {
          "ergonomics": 69,
          "maintenance": 82,
          "payments": 60,
          "reliability": 80,
          "schema": 88,
          "security": 76,
          "transparency": 53
        },
        "provenanceScore": 73
      },
      "connect": {
        "http": "curl -X POST https://verification.didit.me/v3/session/ \\\n  -H \"x-api-key: $DIDIT_API_KEY\" \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"workflow_id\":\"\u003cWORKFLOW_ID\u003e\",\"vendor_data\":\"user-42\",\"callback\":\"https://myapp.com/return\"}'",
        "claudeCode": "claude mcp add --transport http didit https://mcp.didit.me/mcp",
        "config": {
          "mcpServers": {
            "didit": {
              "url": "https://mcp.didit.me/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/kyc.identity",
        "tool": "https://letme.dev/didit"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "ID verification in a workflow (document capture)",
          "unit": "tx",
          "usd": 0.15,
          "note": "500 free a month until 1 November 2026"
        },
        {
          "item": "Passive liveness in a workflow",
          "unit": "tx",
          "usd": 0.1,
          "note": "500 free a month until 1 November 2026"
        },
        {
          "item": "Face match 1:1 in a workflow",
          "unit": "tx",
          "usd": 0.05,
          "note": "500 free a month until 1 November 2026"
        },
        {
          "item": "Device and IP analysis in a workflow",
          "unit": "tx",
          "usd": 0.03,
          "note": "500 free a month until 1 November 2026"
        },
        {
          "item": "AML screening",
          "unit": "tx",
          "usd": 0.2,
          "note": "no free allowance"
        },
        {
          "item": "Proof of address",
          "unit": "tx",
          "usd": 0.2,
          "note": "no free allowance"
        },
        {
          "item": "KYB registry, per selected company (Lite profile)",
          "unit": "tx",
          "usd": 2,
          "note": "search is charged separately at up to $0.50"
        }
      ],
      "provenance": {
        "legalEntity": "Didit Identity Spain, S.L.",
        "domain": "didit.me",
        "domainRegistered": "",
        "endpointOnVendorDomain": true,
        "terms": "https://didit.me/terms/business/",
        "privacy": "https://didit.me/terms/privacy-policy/",
        "statusPage": "https://status.didit.me",
        "changelog": "https://docs.didit.me/changelog/september-2026",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Business Terms and Conditions (updated 23 September 2026) name two contracting entities. Didit Identity Spain, S.L., CIF B22929327, Barcelona, contracts with clients in the EU, EEA, UK and Switzerland, and Didit Identity, Inc., Dover, Delaware, with clients elsewhere.",
          "The Business Terms are the self-serve contract and include the SLA as Annex 1 and the Data Processing Addendum as Annex 2. A separate Master Services Agreement covers enterprise order forms.",
          "The Privacy Policy was updated on 7 October 2026 and names the Spanish Data Protection Agency as lead supervisory authority. A Verification Privacy Notice supplements it for end users.",
          "didit.me/.well-known/security.txt and docs.didit.me/.well-known/security.txt return 404. The Information Security Policy sends reports to security@didit.me.",
          "The API answers at verification.didit.me, account routes at apx.didit.me and the MCP server at mcp.didit.me, all on the vendor's domain.",
          "The registration date of didit.me wasn't established. whois returned nothing and rdap.org has no RDAP service for .me."
        ],
        "score": 73
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/didit.json",
      "live": {
        "slug": "didit",
        "probe": {
          "target": "https://verification.didit.me",
          "method": "get",
          "lastAt": "2026-10-14T10:27:59.749588083Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 54,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 61,
          "p95ms24h": 137,
          "samples24h": 248,
          "samples30d": 1397,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "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": 108,
              "ok": 108
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.didit.me",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-14T10:25:33.872395199Z"
        },
        "versions": [
          {
            "registry": "mcp-registry",
            "name": "me.didit/mcp",
            "version": "5.0.1",
            "seenAt": "2026-10-14T04:18:30.41681267Z"
          },
          {
            "registry": "npm",
            "name": "@didit-protocol/mcp-server",
            "version": "5.1.36",
            "seenAt": "2026-10-13T22:53:08.55424519Z"
          },
          {
            "registry": "npm",
            "name": "@didit-protocol/sdk-react-native",
            "version": "4.9.1",
            "seenAt": "2026-10-13T22:53:10.755479798Z"
          },
          {
            "registry": "npm",
            "name": "@didit-protocol/sdk-web",
            "version": "0.4.0",
            "seenAt": "2026-10-13T22:53:09.3554505Z"
          }
        ],
        "githubStars": 0,
        "npmWeekly": 1132,
        "securityTxt": {
          "url": "https://didit.me/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-13T15:45:51.737049528Z"
        },
        "llmsTxt": {
          "url": "https://docs.didit.me/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-13T14:11:23.094991426Z"
        },
        "domain": {
          "domain": "didit.me",
          "checkedAt": "2026-10-11T13:12:22.673163614Z"
        },
        "pages": [
          {
            "url": "https://docs.didit.me/changelog/september-2026",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-13T20:14:42.617522581Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "27cc95453999"
          },
          {
            "url": "https://docs.didit.me/getting-started/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-13T20:14:44.918284015Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "9bca969c5102"
          },
          {
            "url": "https://didit.me/terms/privacy-policy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-13T20:13:53.175706613Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b971fafcf494"
          },
          {
            "url": "https://didit.me/terms/business/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-13T20:13:50.607671313Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "293d1878de09"
          }
        ],
        "updatedAt": "2026-10-14T10:27:59.749588083Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "First Mile Group, Inc. (Alloy)",
        "b": "Didit Identity Spain, S.L.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://verification.didit.me",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, Streamable HTTP, stdio",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Alloy's terms of service. The @alloyidentity/web-sdk capture package is MIT",
        "b": "Proprietary service under Didit's Business Terms and Conditions. The MCP server in didit-protocol/mcp is MIT",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "156",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "not listed",
        "b": "me.didit/mcp",
        "name": "MCP registry"
      },
      {
        "a": "2026-10-05",
        "b": "2026-10-08",
        "name": "Last release"
      },
      {
        "a": "2026-03-12",
        "b": "2026-09-23",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-10-07",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "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": "yes",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "21k npm/wk",
        "b": "0 stars, 27k npm/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Didit scores 75 (BB) on agent readiness against Alloy's 52.4 (D), and leads in every scored category.",
        "question": "Which is better for AI agents, Alloy or Didit?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Alloy and Didit need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Alloy. Didit has a hosted endpoint at https://verification.didit.me.",
        "question": "Can an agent call Alloy and Didit without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "Banks and fintechs that already run onboarding through Alloy and want an agent to submit journey applications, read decisions and work investigations.",
        "slug": "alloy",
        "watchFor": "No public prices, trial or self-serve sign-up. Access starts with a demo request"
      },
      {
        "aheadOn": [
          "Reliability, 80 against 59",
          "Schema \u0026 documentation, 88 against 73",
          "Agent ergonomics, 69 against 52",
          "Security \u0026 auth, 76 against 49",
          "Payments \u0026 pricing, 60 against 0",
          "Maintenance \u0026 community, 82 against 72"
        ],
        "also": [
          "Agent-ready, a grade of BB or better",
          "A hosted endpoint, with nothing to install",
          "Runs on your own machine",
          "Free to start without a card"
        ],
        "goodFor": "A team that wants document, liveness, screening and business registry checks from one API with public prices and no sales step, and an agent that has to set itself up.",
        "slug": "didit",
        "watchFor": "Three incidents marked major on status.didit.me from 22 July to 4 September 2026, each a partial outage of the core APIs traced to the primary database"
      }
    ],
    "job": {
      "capability": "kyc.identity",
      "name": "Identity verification"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/alloy-vs-complycube.json",
        "title": "Alloy vs ComplyCube",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-complycube"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alloy-vs-entrust-identity-verification.json",
        "title": "Alloy vs Entrust Identity Verification (formerly Onfido)",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-entrust-identity-verification"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alloy-vs-jumio.json",
        "title": "Alloy vs Jumio",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-jumio"
      },
      {
        "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-persona.json",
        "title": "Alloy vs Persona",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-persona"
      },
      {
        "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/alloy-vs-shufti.json",
        "title": "Alloy vs Shufti",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-shufti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alloy-vs-socure-riskos.json",
        "title": "Alloy vs Socure RiskOS",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-socure-riskos"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alloy-vs-stripe-identity.json",
        "title": "Alloy vs Stripe Identity",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-stripe-identity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alloy-vs-sumsub.json",
        "title": "Alloy vs Sumsub",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-sumsub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alloy-vs-trulioo.json",
        "title": "Alloy vs Trulioo",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-trulioo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alloy-vs-veriff.json",
        "title": "Alloy vs Veriff",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-veriff"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alloy-vs-vouched.json",
        "title": "Alloy vs Vouched",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-vouched"
      },
      {
        "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/didit-vs-entrust-identity-verification.json",
        "title": "Didit vs Entrust Identity Verification (formerly Onfido)",
        "url": "https://www.anchorterminal.com/compare/didit-vs-entrust-identity-verification"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-jumio.json",
        "title": "Didit vs Jumio",
        "url": "https://www.anchorterminal.com/compare/didit-vs-jumio"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-middesk.json",
        "title": "Didit vs Middesk",
        "url": "https://www.anchorterminal.com/compare/didit-vs-middesk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-persona.json",
        "title": "Didit vs Persona",
        "url": "https://www.anchorterminal.com/compare/didit-vs-persona"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-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/didit-vs-shufti.json",
        "title": "Didit vs Shufti",
        "url": "https://www.anchorterminal.com/compare/didit-vs-shufti"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-socure-riskos.json",
        "title": "Didit vs Socure RiskOS",
        "url": "https://www.anchorterminal.com/compare/didit-vs-socure-riskos"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-stripe-identity.json",
        "title": "Didit vs Stripe Identity",
        "url": "https://www.anchorterminal.com/compare/didit-vs-stripe-identity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-sumsub.json",
        "title": "Didit vs Sumsub",
        "url": "https://www.anchorterminal.com/compare/didit-vs-sumsub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-trulioo.json",
        "title": "Didit vs Trulioo",
        "url": "https://www.anchorterminal.com/compare/didit-vs-trulioo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-veriff.json",
        "title": "Didit vs Veriff",
        "url": "https://www.anchorterminal.com/compare/didit-vs-veriff"
      },
      {
        "json": "https://www.anchorterminal.com/compare/didit-vs-vouched.json",
        "title": "Didit vs Vouched",
        "url": "https://www.anchorterminal.com/compare/didit-vs-vouched"
      },
      {
        "json": "https://www.anchorterminal.com/compare/alloy-vs-complyadvantage.json",
        "title": "Alloy vs ComplyAdvantage",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-complyadvantage"
      },
      {
        "json": "https://www.anchorterminal.com/compare/complyadvantage-vs-didit.json",
        "title": "ComplyAdvantage vs Didit",
        "url": "https://www.anchorterminal.com/compare/complyadvantage-vs-didit"
      }
    ],
    "scores": [
      {
        "alloy": 59,
        "by": 21,
        "didit": 80,
        "edge": "didit",
        "key": "reliability",
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "alloy": 73,
        "by": 15,
        "didit": 88,
        "edge": "didit",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "alloy": 52,
        "by": 17,
        "didit": 69,
        "edge": "didit",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "alloy": 49,
        "by": 27,
        "didit": 76,
        "edge": "didit",
        "key": "security",
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "alloy": 0,
        "by": 60,
        "didit": 60,
        "edge": "didit",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "alloy": 72,
        "by": 10,
        "didit": 82,
        "edge": "didit",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "alloy": 62,
        "by": 1,
        "didit": 63,
        "edge": "didit",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Didit scores 75 (BB) on agent readiness against Alloy's 52.4 (D), and leads in every scored category. Both do identity verification.",
    "verdicts": {
      "alloy": "Alloy's public docs cover journeys, evaluations, entities, documents, cases and investigations, with llms.txt, Markdown pages, OpenAPI fragments and rate-limit headers with retry-after. Access is sales-led with no public price or trial, credentials have no scopes, there is no idempotency key or server SDK, and inputs vary by each customer's workflow.",
      "didit": "A self-serve verification API with public per-check prices, key registration by API, scoped keys and a 365-day audit log. The status page shows three incidents marked major between 22 July and 4 September 2026, each a partial outage of the core APIs, and the sub-processor list isn't public."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/alloy-vs-didit",
    "json": "https://www.anchorterminal.com/compare/alloy-vs-didit.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/alloy-vs-didit.md",
    "slim": "https://www.anchorterminal.com/compare/alloy-vs-didit.min.md"
  },
  "markdown": "Didit scores 75 (BB) on agent readiness against Alloy's 52.4 (D), and leads in every scored category. Both do identity verification.\n\n- Alloy: grade D, 52.4/100, rank #782 of 1076. Markdown https://www.anchorterminal.com/tools/alloy.md · JSON https://www.anchorterminal.com/api/v1/tools/alloy.json\n- Didit: grade BB, 75/100, rank #63 of 1076. Markdown https://www.anchorterminal.com/tools/didit.md · JSON https://www.anchorterminal.com/api/v1/tools/didit.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### Alloy (D)\n\nGood for: Banks and fintechs that already run onboarding through Alloy and want an agent to submit journey applications, read decisions and work investigations.\n\nWatch for: No public prices, trial or self-serve sign-up. Access starts with a demo request\n\n### Didit (BB)\n\nGood for: A team that wants document, liveness, screening and business registry checks from one API with public prices and no sales step, and an agent that has to set itself up.\n\nAhead on:\n- Reliability, 80 against 59\n- Schema \u0026 documentation, 88 against 73\n- Agent ergonomics, 69 against 52\n- Security \u0026 auth, 76 against 49\n- Payments \u0026 pricing, 60 against 0\n- Maintenance \u0026 community, 82 against 72\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n- A hosted endpoint, with nothing to install\n- Runs on your own machine\n- Free to start without a card\n\nWatch for: Three incidents marked major on status.didit.me from 22 July to 4 September 2026, each a partial outage of the core APIs traced to the primary database\n\n\n## Score by category\n\n| Category | Weight | Alloy | Didit | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 59 | 80 | Didit +21 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 73 | 88 | Didit +15 |\n| Agent ergonomics | 13% (16.2 this run) | 52 | 69 | Didit +17 |\n| Security \u0026 auth | 14% (17.5 this run) | 49 | 76 | Didit +27 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 0 | 60 | Didit +60 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 72 | 82 | Didit +10 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 62 | 63 | Didit +1 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **52.4 · D** | **75 · BB** | |\n\n## Facts side by side\n\n| Fact | Alloy | Didit |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | First Mile Group, Inc. (Alloy) | Didit Identity Spain, S.L. |\n| Hosted endpoint | no (local only) | `https://verification.didit.me` |\n| Transports | HTTP | HTTP, Streamable HTTP, stdio |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Paid | Pay per use |\n| x402 | no | no |\n| Licence | Proprietary service under Alloy's terms of service. The @alloyidentity/web-sdk capture package is MIT | Proprietary service under Didit's Business Terms and Conditions. The MCP server in didit-protocol/mcp is MIT |\n| Tools exposed | none | 156 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | `me.didit/mcp` |\n| Last release | 2026-10-05 | 2026-10-08 |\n| Terms last updated | 2026-03-12 | 2026-09-23 |\n| Privacy policy last updated | no date given | 2026-10-07 |\n| Customer content may train models | not found in the text | yes, with an opt-out |\n| Terms restrict automated access | yes | 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 | yes | not found in the text |\n| Popularity | 21k npm/wk | 0 stars, 27k npm/wk |\n\n## Verdicts\n\n**Alloy.** Alloy's public docs cover journeys, evaluations, entities, documents, cases and investigations, with llms.txt, Markdown pages, OpenAPI fragments and rate-limit headers with retry-after. Access is sales-led with no public price or trial, credentials have no scopes, there is no idempotency key or server SDK, and inputs vary by each customer's workflow.\n\n**Didit.** A self-serve verification API with public per-check prices, key registration by API, scoped keys and a 365-day audit log. The status page shows three incidents marked major between 22 July and 4 September 2026, each a partial outage of the core APIs, and the sub-processor list isn't public.\n\n## Before you call either\n\n### Alloy\n\n1. Get the account's base URL from the customer. Defaults are api.alloy.co and sandbox.alloy.co, and some accounts have their own hosts\n2. Use unique, prefixed external IDs in sandbox. Sandbox and Production share one data store\n3. Read `alloy-ratelimit-remaining`, and on 429 or 5xx wait for `retry-after` with exponential backoff and jitter\n4. Expect `running` after about 25 seconds on journey applications and wait for the webhook instead of resubmitting\n5. Send the workflow header with account-level keys, since inputs depend on the workflow configured\n\n### Didit\n\n1. Register with `POST https://apx.didit.me/auth/v2/programmatic/register/`, then `verify-email` with the emailed 6-character code. Use a real inbox, because reserved test domains return 500.\n2. Send the key as `x-api-key` to `https://verification.didit.me/v3/`. The JWT from registration works only on `apx.didit.me`.\n3. Create a workflow before `POST /v3/session/`. `workflow_id` is the only required field, and an unfinished session with the same `vendor_data` is returned again.\n4. Read results from webhooks and use `GET /v3/session/{sessionId}/decision/` for back-fill. Every per-feature result is a plural array.\n5. The MCP server at `https://mcp.didit.me/mcp` takes OAuth sign-in only, never an API key. Approve `didit:verification` alone when the task doesn't change workflows or keys.\n\n## Questions\n\n### Which is better for AI agents, Alloy or Didit?\n\nDidit scores 75 (BB) on agent readiness against Alloy's 52.4 (D), and leads in every scored category.\n\n### Do Alloy and Didit need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Alloy and Didit without installing anything?\n\nNo hosted endpoint is listed for Alloy. Didit has a hosted endpoint at https://verification.didit.me.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/alloy-vs-didit.json, and with the fewest tokens: https://www.anchorterminal.com/compare/alloy-vs-didit.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"alloy\", \"b\": \"didit\"}`. From a terminal: `anchor compare alloy didit`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/alloy.json and https://www.anchorterminal.com/api/v1/tools/didit.json\n\n## Other comparisons with Alloy or Didit\n\n- [Alloy vs ComplyCube](https://www.anchorterminal.com/compare/alloy-vs-complycube.md)\n- [Alloy vs Entrust Identity Verification (formerly Onfido)](https://www.anchorterminal.com/compare/alloy-vs-entrust-identity-verification.md)\n- [Alloy vs Jumio](https://www.anchorterminal.com/compare/alloy-vs-jumio.md)\n- [Alloy vs Middesk](https://www.anchorterminal.com/compare/alloy-vs-middesk.md)\n- [Alloy vs Persona](https://www.anchorterminal.com/compare/alloy-vs-persona.md)\n- [Alloy vs Plaid Identity Verification](https://www.anchorterminal.com/compare/alloy-vs-plaid-identity-verification.md)\n- [Alloy vs Shufti](https://www.anchorterminal.com/compare/alloy-vs-shufti.md)\n- [Alloy vs Socure RiskOS](https://www.anchorterminal.com/compare/alloy-vs-socure-riskos.md)\n- [Alloy vs Stripe Identity](https://www.anchorterminal.com/compare/alloy-vs-stripe-identity.md)\n- [Alloy vs Sumsub](https://www.anchorterminal.com/compare/alloy-vs-sumsub.md)\n- [Alloy vs Trulioo](https://www.anchorterminal.com/compare/alloy-vs-trulioo.md)\n- [Alloy vs Veriff](https://www.anchorterminal.com/compare/alloy-vs-veriff.md)\n- [Alloy vs Vouched](https://www.anchorterminal.com/compare/alloy-vs-vouched.md)\n- [ComplyCube vs Didit](https://www.anchorterminal.com/compare/complycube-vs-didit.md)\n- [Didit vs Entrust Identity Verification (formerly Onfido)](https://www.anchorterminal.com/compare/didit-vs-entrust-identity-verification.md)\n- [Didit vs Jumio](https://www.anchorterminal.com/compare/didit-vs-jumio.md)\n- [Didit vs Middesk](https://www.anchorterminal.com/compare/didit-vs-middesk.md)\n- [Didit vs Persona](https://www.anchorterminal.com/compare/didit-vs-persona.md)\n- [Didit vs Plaid Identity Verification](https://www.anchorterminal.com/compare/didit-vs-plaid-identity-verification.md)\n- [Didit vs Shufti](https://www.anchorterminal.com/compare/didit-vs-shufti.md)\n- [Didit vs Socure RiskOS](https://www.anchorterminal.com/compare/didit-vs-socure-riskos.md)\n- [Didit vs Stripe Identity](https://www.anchorterminal.com/compare/didit-vs-stripe-identity.md)\n- [Didit vs Sumsub](https://www.anchorterminal.com/compare/didit-vs-sumsub.md)\n- [Didit vs Trulioo](https://www.anchorterminal.com/compare/didit-vs-trulioo.md)\n- [Didit vs Veriff](https://www.anchorterminal.com/compare/didit-vs-veriff.md)\n- [Didit vs Vouched](https://www.anchorterminal.com/compare/didit-vs-vouched.md)\n- [Alloy vs ComplyAdvantage](https://www.anchorterminal.com/compare/alloy-vs-complyadvantage.md)\n- [ComplyAdvantage vs Didit](https://www.anchorterminal.com/compare/complyadvantage-vs-didit.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": "Alloy vs Didit",
        "url": ""
      }
    ],
    "description": "Didit scores 75 (BB) to Alloy's 52.4 (D) for identity verification. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Alloy D 52.4",
      "Didit BB 75",
      "scores"
    ],
    "h1": "Alloy vs Didit",
    "image": "https://www.anchorterminal.com/assets/og/compare-alloy-vs-didit.png",
    "path": "/compare/alloy-vs-didit",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Alloy vs Didit for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/compare/alloy-vs-didit"
  },
  "tokens": {
    "markdown": 2550,
    "slim": 730
  },
  "version": 1
}
