{
  "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": "Stripe Identity scores 77.7 (BB) on agent readiness against Alloy's 52.4 (D), and leads in every scored category.",
    "b": {
      "slug": "stripe-identity",
      "name": "Stripe Identity",
      "vendor": "Stripe, LLC",
      "vendorUrl": "https://stripe.com/identity",
      "kind": "http-api",
      "category": "identity-verification",
      "summary": "Stripe Identity verifies government-issued photo IDs from more than 120 countries, matches them to selfies and validates US Social Security numbers. Sessions are created and read through the Stripe API, and the end user completes the check in Stripe's flow.",
      "url": "https://www.anchorterminal.com/tools/stripe-identity",
      "markdownUrl": "https://www.anchorterminal.com/tools/stripe-identity.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/stripe-identity.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/stripe-identity.json",
      "repo": "https://github.com/stripe/openapi",
      "license": "Proprietary service under the Stripe Services Agreement and Stripe Identity Terms. The OpenAPI spec and official SDKs are MIT",
      "transports": [
        "http"
      ],
      "packages": [
        {
          "registry": "npm",
          "name": "stripe"
        },
        {
          "registry": "pypi",
          "name": "stripe"
        }
      ],
      "auth": "api-key",
      "authNotes": "Stripe secret key, restricted key or IP-restricted key, sent as HTTP basic auth or a Bearer token to https://api.stripe.com. Results such as status, name and address need only a secret key. Date of birth, ID number and document images need a restricted key with Identity permissions, which can read them for verifications in the last 48 hours, or for all verifications once the key is IP-restricted. Identity is activated through an application in the Dashboard (checked 2026-10-14).",
      "pricing": "usage",
      "pricingNotes": "£1.25 per completed document and selfie verification and 35p per ID number lookup (US SSNs only), charged when the user completes verification, on the United Kingdom page our network was served. The first 50 verifications are free. Custom pricing is offered above 2,000 verifications a month (https://stripe.com/identity, checked 2026-10-14).",
      "priceSummary": "Pay per use",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 on the Identity endpoints, the Identity docs or the product page (checked 2026-10-14).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 24154234,
        "pypiWeekly": 11360574,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://docs.stripe.com/identity",
      "llmsTxt": "https://docs.stripe.com/llms.txt",
      "openapi": "https://raw.githubusercontent.com/stripe/openapi/master/openapi/spec3.json",
      "capabilities": [
        "kyc.identity",
        "kyc.documents"
      ],
      "tags": [
        "hosted",
        "api-key",
        "openapi",
        "llms-txt",
        "webhooks",
        "sandbox",
        "free-tier",
        "status-page",
        "python",
        "typescript",
        "go",
        "java",
        "ruby",
        "php",
        "bug-bounty",
        "soc2"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 77.7,
        "grade": "BB",
        "agentReady": true,
        "rank": 21,
        "ranked": true,
        "rankOf": 1076,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 93,
          "maintenance": 85,
          "payments": 40,
          "reliability": 62,
          "schema": 94,
          "security": 86,
          "transparency": 85
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Stripe Identity runs on the Stripe API, with a public OpenAPI spec, idempotency keys, restricted keys for sensitive fields and a redact endpoint. The product page lists £1.25 per document and selfie check, and the first 50 are free. It has no watchlist or business screening, and outside GB, JP and the US it is in public beta.",
        "bestFor": "A business already on Stripe that needs document and selfie checks or US SSN validation with published prices.",
        "strengths": [
          "Six typed Identity operations in Stripe's public OpenAPI spec, with Markdown docs and llms.txt",
          "Date of birth and ID number need a restricted key, and IP-restricted keys for reads after 48 hours",
          "Idempotency keys on every POST and cursor pagination with status and date filters",
          "Published prices of £1.25 per verification and 35p per US SSN lookup, with the first 50 verifications free",
          "`redact` removes personal data from the session, reports, events and request logs, confirmed by a webhook"
        ],
        "weaknesses": [
          "Document, selfie and US SSN checks only. No sanctions or watchlist screening and no business verification",
          "Generally available only for businesses in GB, JP and the US, and a public beta in 30 other countries",
          "Use for credit, housing, employment or insurance decisions, and resale of results, are forbidden by the terms",
          "status.stripe.com renders only in JavaScript, so the incident history couldn't be read",
          "Stripe keeps a copy of verification data after redaction until the end user asks Stripe support to delete it"
        ],
        "agentNotes": [
          "Send an Idempotency-Key based on your user reference when creating a VerificationSession, so a retry doesn't make a second session",
          "Send the end user the session URL or client secret. The person completes the check, the agent can't. Links expire after 48 hours",
          "Use a restricted key for `verified_outputs.dob` and `id_number`. Without an IP restriction it reads them only for 48 hours",
          "Wait for `identity.verification_session.verified` or `requires_input` webhooks instead of polling",
          "Treat `redact` as irreversible, and don't put personal data in metadata"
        ],
        "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": 77.7
          }
        ],
        "editorialScores": {
          "ergonomics": 93,
          "maintenance": 85,
          "payments": 40,
          "reliability": 62,
          "schema": 94,
          "security": 86,
          "transparency": 72
        },
        "provenanceScore": 98
      },
      "connect": {
        "http": "curl https://api.stripe.com/v1/identity/verification_sessions \\\n  -u \"\u003c\u003cYOUR_SECRET_KEY\u003e\u003e:\" \\\n  -d type=document"
      },
      "letme": {
        "capability": "https://letme.dev/kyc.identity",
        "tool": "https://letme.dev/stripe-identity"
      },
      "sameCompany": [
        "stripe-mcp"
      ],
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Stripe, LLC",
        "domain": "stripe.com",
        "domainRegistered": "1995-09-12",
        "endpointOnVendorDomain": true,
        "terms": "https://stripe.com/identity/legal",
        "privacy": "https://stripe.com/privacy",
        "statusPage": "https://status.stripe.com",
        "changelog": "https://docs.stripe.com/changelog",
        "securityTxt": "valid",
        "checked": "2026-10-14",
        "notes": [
          "stripe.com/identity/legal redirects to the Stripe Services Agreement service terms, last updated 2 October 2026, which hold the Stripe Identity Terms.",
          "Our network was redirected to the /gb/ copies of the terms, privacy policy and service provider list.",
          "stripe.com/.well-known/security.txt points to HackerOne and expires 2026-12-31.",
          "stripe.com was registered in 1995, before Stripe bought it."
        ],
        "score": 98
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/stripe-identity.json",
      "live": {
        "slug": "stripe-identity",
        "vendorStatus": {
          "page": "https://status.stripe.com",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-10-14T08:53:58.613651718Z"
        },
        "updatedAt": "2026-10-14T08:53:58.613651718Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "First Mile Group, Inc. (Alloy)",
        "b": "Stripe, LLC",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Pay per use",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Alloy's terms of service. The @alloyidentity/web-sdk capture package is MIT",
        "b": "Proprietary service under the Stripe Services Agreement and Stripe Identity Terms. The OpenAPI spec and official SDKs are MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-05",
        "b": "2026-10-01",
        "name": "Last release"
      },
      {
        "a": "2026-03-12",
        "b": "2026-09-28",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2026-04-28",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "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": "not found in the text",
        "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": "24.2M npm/wk, 11.4M PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "Stripe Identity scores 77.7 (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 Stripe Identity?"
      },
      {
        "answer": "Alloy takes an API key or an OAuth sign-in. Stripe Identity needs an API key.",
        "question": "Do Alloy and Stripe Identity need an API key?"
      },
      {
        "answer": "No hosted endpoint is listed for Alloy. No hosted endpoint is listed for Stripe Identity.",
        "question": "Can an agent call Alloy and Stripe Identity 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": [
          "Schema \u0026 documentation, 94 against 73",
          "Agent ergonomics, 93 against 52",
          "Security \u0026 auth, 86 against 49",
          "Payments \u0026 pricing, 40 against 0",
          "Maintenance \u0026 community, 85 against 72",
          "Transparency \u0026 trust, 85 against 62"
        ],
        "also": [
          "Agent-ready, a grade of BB or better"
        ],
        "goodFor": "A business already on Stripe that needs document and selfie checks or US SSN validation with published prices.",
        "slug": "stripe-identity",
        "watchFor": "Document, selfie and US SSN checks only. No sanctions or watchlist screening and no business verification"
      }
    ],
    "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-didit.json",
        "title": "Alloy vs Didit",
        "url": "https://www.anchorterminal.com/compare/alloy-vs-didit"
      },
      {
        "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-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-stripe-identity.json",
        "title": "ComplyCube vs Stripe Identity",
        "url": "https://www.anchorterminal.com/compare/complycube-vs-stripe-identity"
      },
      {
        "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/entrust-identity-verification-vs-stripe-identity.json",
        "title": "Entrust Identity Verification (formerly Onfido) vs Stripe Identity",
        "url": "https://www.anchorterminal.com/compare/entrust-identity-verification-vs-stripe-identity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/jumio-vs-stripe-identity.json",
        "title": "Jumio vs Stripe Identity",
        "url": "https://www.anchorterminal.com/compare/jumio-vs-stripe-identity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/middesk-vs-stripe-identity.json",
        "title": "Middesk vs Stripe Identity",
        "url": "https://www.anchorterminal.com/compare/middesk-vs-stripe-identity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/persona-vs-stripe-identity.json",
        "title": "Persona vs Stripe Identity",
        "url": "https://www.anchorterminal.com/compare/persona-vs-stripe-identity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-stripe-identity.json",
        "title": "Plaid Identity Verification vs Stripe Identity",
        "url": "https://www.anchorterminal.com/compare/plaid-identity-verification-vs-stripe-identity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/shufti-vs-stripe-identity.json",
        "title": "Shufti vs Stripe Identity",
        "url": "https://www.anchorterminal.com/compare/shufti-vs-stripe-identity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/socure-riskos-vs-stripe-identity.json",
        "title": "Socure RiskOS vs Stripe Identity",
        "url": "https://www.anchorterminal.com/compare/socure-riskos-vs-stripe-identity"
      },
      {
        "json": "https://www.anchorterminal.com/compare/stripe-identity-vs-sumsub.json",
        "title": "Stripe Identity vs Sumsub",
        "url": "https://www.anchorterminal.com/compare/stripe-identity-vs-sumsub"
      },
      {
        "json": "https://www.anchorterminal.com/compare/stripe-identity-vs-trulioo.json",
        "title": "Stripe Identity vs Trulioo",
        "url": "https://www.anchorterminal.com/compare/stripe-identity-vs-trulioo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/stripe-identity-vs-veriff.json",
        "title": "Stripe Identity vs Veriff",
        "url": "https://www.anchorterminal.com/compare/stripe-identity-vs-veriff"
      },
      {
        "json": "https://www.anchorterminal.com/compare/stripe-identity-vs-vouched.json",
        "title": "Stripe Identity vs Vouched",
        "url": "https://www.anchorterminal.com/compare/stripe-identity-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"
      }
    ],
    "scores": [
      {
        "alloy": 59,
        "by": 3,
        "edge": "stripe-identity",
        "key": "reliability",
        "name": "Reliability",
        "stripe-identity": 62,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "alloy": 73,
        "by": 21,
        "edge": "stripe-identity",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "stripe-identity": 94,
        "weight": 13
      },
      {
        "alloy": 52,
        "by": 41,
        "edge": "stripe-identity",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "stripe-identity": 93,
        "weight": 13
      },
      {
        "alloy": 49,
        "by": 37,
        "edge": "stripe-identity",
        "key": "security",
        "name": "Security \u0026 auth",
        "stripe-identity": 86,
        "weight": 14
      },
      {
        "alloy": 0,
        "by": 40,
        "edge": "stripe-identity",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "stripe-identity": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "alloy": 72,
        "by": 13,
        "edge": "stripe-identity",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "stripe-identity": 85,
        "weight": 7
      },
      {
        "alloy": 62,
        "by": 23,
        "edge": "stripe-identity",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "stripe-identity": 85,
        "weight": 7
      }
    ],
    "summary": "Stripe Identity scores 77.7 (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.",
      "stripe-identity": "Stripe Identity runs on the Stripe API, with a public OpenAPI spec, idempotency keys, restricted keys for sensitive fields and a redact endpoint. The product page lists £1.25 per document and selfie check, and the first 50 are free. It has no watchlist or business screening, and outside GB, JP and the US it is in public beta."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/alloy-vs-stripe-identity",
    "json": "https://www.anchorterminal.com/compare/alloy-vs-stripe-identity.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/alloy-vs-stripe-identity.md",
    "slim": "https://www.anchorterminal.com/compare/alloy-vs-stripe-identity.min.md"
  },
  "markdown": "Stripe Identity scores 77.7 (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- Stripe Identity: grade BB, 77.7/100, rank #21 of 1076. Markdown https://www.anchorterminal.com/tools/stripe-identity.md · JSON https://www.anchorterminal.com/api/v1/tools/stripe-identity.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### Stripe Identity (BB)\n\nGood for: A business already on Stripe that needs document and selfie checks or US SSN validation with published prices.\n\nAhead on:\n- Schema \u0026 documentation, 94 against 73\n- Agent ergonomics, 93 against 52\n- Security \u0026 auth, 86 against 49\n- Payments \u0026 pricing, 40 against 0\n- Maintenance \u0026 community, 85 against 72\n- Transparency \u0026 trust, 85 against 62\n\nAlso in its favour:\n- Agent-ready, a grade of BB or better\n\nWatch for: Document, selfie and US SSN checks only. No sanctions or watchlist screening and no business verification\n\n\n## Score by category\n\n| Category | Weight | Alloy | Stripe Identity | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 59 | 62 | Stripe Identity +3 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 73 | 94 | Stripe Identity +21 |\n| Agent ergonomics | 13% (16.2 this run) | 52 | 93 | Stripe Identity +41 |\n| Security \u0026 auth | 14% (17.5 this run) | 49 | 86 | Stripe Identity +37 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 0 | 40 | Stripe Identity +40 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 72 | 85 | Stripe Identity +13 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 62 | 85 | Stripe Identity +23 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **52.4 · D** | **77.7 · BB** | |\n\n## Facts side by side\n\n| Fact | Alloy | Stripe Identity |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | First Mile Group, Inc. (Alloy) | Stripe, LLC |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Paid | Pay per use |\n| x402 | no | no |\n| Licence | Proprietary service under Alloy's terms of service. The @alloyidentity/web-sdk capture package is MIT | Proprietary service under the Stripe Services Agreement and Stripe Identity Terms. The OpenAPI spec and official SDKs are MIT |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-10-05 | 2026-10-01 |\n| Terms last updated | 2026-03-12 | 2026-09-28 |\n| Privacy policy last updated | no date given | 2026-04-28 |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\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 | 24.2M npm/wk, 11.4M PyPI/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**Stripe Identity.** Stripe Identity runs on the Stripe API, with a public OpenAPI spec, idempotency keys, restricted keys for sensitive fields and a redact endpoint. The product page lists £1.25 per document and selfie check, and the first 50 are free. It has no watchlist or business screening, and outside GB, JP and the US it is in public beta.\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### Stripe Identity\n\n1. Send an Idempotency-Key based on your user reference when creating a VerificationSession, so a retry doesn't make a second session\n2. Send the end user the session URL or client secret. The person completes the check, the agent can't. Links expire after 48 hours\n3. Use a restricted key for `verified_outputs.dob` and `id_number`. Without an IP restriction it reads them only for 48 hours\n4. Wait for `identity.verification_session.verified` or `requires_input` webhooks instead of polling\n5. Treat `redact` as irreversible, and don't put personal data in metadata\n\n## Questions\n\n### Which is better for AI agents, Alloy or Stripe Identity?\n\nStripe Identity scores 77.7 (BB) on agent readiness against Alloy's 52.4 (D), and leads in every scored category.\n\n### Do Alloy and Stripe Identity need an API key?\n\nAlloy takes an API key or an OAuth sign-in. Stripe Identity needs an API key.\n\n### Can an agent call Alloy and Stripe Identity without installing anything?\n\nNo hosted endpoint is listed for Alloy. No hosted endpoint is listed for Stripe Identity.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/alloy-vs-stripe-identity.json, and with the fewest tokens: https://www.anchorterminal.com/compare/alloy-vs-stripe-identity.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"alloy\", \"b\": \"stripe-identity\"}`. From a terminal: `anchor compare alloy stripe-identity`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/alloy.json and https://www.anchorterminal.com/api/v1/tools/stripe-identity.json\n\n## Other comparisons with Alloy or Stripe Identity\n\n- [Alloy vs ComplyCube](https://www.anchorterminal.com/compare/alloy-vs-complycube.md)\n- [Alloy vs Didit](https://www.anchorterminal.com/compare/alloy-vs-didit.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 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 Stripe Identity](https://www.anchorterminal.com/compare/complycube-vs-stripe-identity.md)\n- [Didit vs Stripe Identity](https://www.anchorterminal.com/compare/didit-vs-stripe-identity.md)\n- [Entrust Identity Verification (formerly Onfido) vs Stripe Identity](https://www.anchorterminal.com/compare/entrust-identity-verification-vs-stripe-identity.md)\n- [Jumio vs Stripe Identity](https://www.anchorterminal.com/compare/jumio-vs-stripe-identity.md)\n- [Middesk vs Stripe Identity](https://www.anchorterminal.com/compare/middesk-vs-stripe-identity.md)\n- [Persona vs Stripe Identity](https://www.anchorterminal.com/compare/persona-vs-stripe-identity.md)\n- [Plaid Identity Verification vs Stripe Identity](https://www.anchorterminal.com/compare/plaid-identity-verification-vs-stripe-identity.md)\n- [Shufti vs Stripe Identity](https://www.anchorterminal.com/compare/shufti-vs-stripe-identity.md)\n- [Socure RiskOS vs Stripe Identity](https://www.anchorterminal.com/compare/socure-riskos-vs-stripe-identity.md)\n- [Stripe Identity vs Sumsub](https://www.anchorterminal.com/compare/stripe-identity-vs-sumsub.md)\n- [Stripe Identity vs Trulioo](https://www.anchorterminal.com/compare/stripe-identity-vs-trulioo.md)\n- [Stripe Identity vs Veriff](https://www.anchorterminal.com/compare/stripe-identity-vs-veriff.md)\n- [Stripe Identity vs Vouched](https://www.anchorterminal.com/compare/stripe-identity-vs-vouched.md)\n- [Alloy vs ComplyAdvantage](https://www.anchorterminal.com/compare/alloy-vs-complyadvantage.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 Stripe Identity",
        "url": ""
      }
    ],
    "description": "Stripe Identity scores 77.7 (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",
      "Stripe Identity BB 77.7",
      "scores"
    ],
    "h1": "Alloy vs Stripe Identity",
    "image": "https://www.anchorterminal.com/assets/og/compare-alloy-vs-stripe-identity.png",
    "path": "/compare/alloy-vs-stripe-identity",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Alloy vs Stripe Identity for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-14",
    "url": "https://www.anchorterminal.com/compare/alloy-vs-stripe-identity"
  },
  "tokens": {
    "markdown": 2500,
    "slim": 630
  },
  "version": 1
}
