{
  "data": {
    "a": {
      "slug": "akoya",
      "name": "Akoya",
      "vendor": "Akoya LLC",
      "vendorUrl": "https://akoya.com",
      "kind": "http-api",
      "category": "banking-data",
      "summary": "Akoya runs a US data access network through which consumers permit apps to read their bank and brokerage accounts. Data recipients call FDX-based REST APIs for accounts, balances, transactions, customer details, statements and consent, after an OAuth consent flow.",
      "url": "https://www.anchorterminal.com/tools/akoya",
      "markdownUrl": "https://www.anchorterminal.com/tools/akoya.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/akoya.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/akoya.json",
      "license": "Proprietary service under the Akoya Terms of Use and a signed data access agreement",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://products.ddp.akoya.com",
      "packages": [],
      "auth": "oauth",
      "authNotes": "OAuth 2.0 authorisation code grant with OpenID Connect. A person requests a Data Recipient Hub account (MFA is mandatory), registers an app and receives a client ID and secret. The consumer signs in at their own institution, picks the accounts to share, and the app exchanges the code at `/token` for an ID token and a refresh token. The ID token is the bearer token for data calls. The only scopes are `openid profile offline_access`, and what an app can read is set by its product subscriptions and the consumer's account selection. The service APIs take a 24-hour service token from separate credentials. Sandbox access is self-service. Production needs a questionnaire, a security review and a signed agreement.",
      "pricing": "paid",
      "pricingNotes": "No price is published. The pricing page names Standard (fewer than 10,000 monthly connections, self-service onboarding) and Enterprise (10,000 or more, custom pricing) without figures, and its FAQ says a set-up or implementation fee may apply. The sandbox is free and self-service with test data, so an agent's owner can start without a contract. Live data needs production approval (https://akoya.com/pricing, checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the OpenAPI specifications or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.akoya.com",
      "openapi": "https://docs.akoya.com/guides/akoya-apis-3-0-0-spec",
      "capabilities": [
        "bank.accounts",
        "bank.transactions",
        "bank.identity",
        "bank.consent"
      ],
      "tags": [
        "hosted",
        "oauth",
        "openapi",
        "fdx",
        "us-only",
        "sandbox",
        "webhooks",
        "sales-led",
        "closed-source",
        "soc2"
      ],
      "lastRelease": "2026-08-05",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 48.3,
        "grade": "D",
        "agentReady": false,
        "rank": 623,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 8,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 67,
          "maintenance": 33,
          "payments": 10,
          "reliability": 28,
          "schema": 70,
          "security": 64,
          "transparency": 58
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Six OpenAPI 3.1 specifications, a free self-service sandbox and read-only data endpoints behind per-consumer OAuth tokens make the API straightforward to test. Production needs a security review and a signed agreement, no price is published, and no public status page, SLA, SDK or `llms.txt` was found.",
        "bestFor": "A US fintech that wants consumer-permissioned data over direct institution APIs in FDX format and can pass a security review.",
        "strengths": [
          "Data APIs are read-only GET endpoints, and each token covers one consumer, one app and the accounts that consumer selected",
          "OpenAPI 3.1 specifications are published for the Token, Service Token, data, Apps Management, Notifications and Consent APIs",
          "Free self-service sandbox with a test institution (`mikomo`), scripted test users and a public Postman workspace",
          "Written version policy. Breaking changes only in major versions, with a six-month sunset after deprecation",
          "Webhooks report consent revocation, consent updates and planned or unplanned outages, with three delivery attempts"
        ],
        "weaknesses": [
          "No price is published. Standard (under 10,000 monthly connections) and Enterprise are named without figures, and a set-up fee may apply",
          "Production access needs an onboarding questionnaire, a security review (SOC 2 report or questionnaire) and an agreement signed by Docusign",
          "No public status page, SLA or numeric rate limit for the data APIs was found. Availability figures sit inside the Data Recipient Hub",
          "The Terms of Use forbid using any automated system to access the network and allow changes and termination without prior notice",
          "No SDK, `llms.txt` or Markdown docs. The OpenAPI files are code blocks to copy from docs pages, not downloadable files"
        ],
        "agentNotes": [
          "Send `x-akoya-interaction-type` (USER or BATCH) and `x-akoya-last-access` on every v3 data call, plus `x-akoya-intent-type` if the app subscribes to Payments",
          "Use the `id_token` as the bearer token. The `/token` response has no `access_token` field, so generic OAuth libraries need adjusting",
          "Treat ID tokens as valid for 15 minutes, refresh on error 602, and store the new refresh token returned by every refresh",
          "Page transactions by following `links.next.href` unchanged. Set `limit`, `startTime` and `endTime` on the first call only",
          "On 429 with code 1207 slow the request rate. On 5xx retry up to three times with exponential backoff"
        ],
        "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": 48.3
          }
        ],
        "editorialScores": {
          "ergonomics": 67,
          "maintenance": 33,
          "payments": 10,
          "reliability": 28,
          "schema": 70,
          "security": 64,
          "transparency": 44
        },
        "provenanceScore": 72
      },
      "connect": {
        "http": "curl --request GET --url 'https://sandbox-products.ddp.akoya.com/accounts-info/v3/mikomo' --header 'x-akoya-interaction-type: USER' --header 'x-akoya-last-access: 2025-11-24T00:00:00Z' --header 'accept: application/json' --header 'authorization: Bearer {{id_token}}'"
      },
      "letme": {
        "capability": "https://letme.dev/bank.accounts",
        "tool": "https://letme.dev/akoya"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Akoya LLC",
        "domain": "akoya.com",
        "domainRegistered": "1998-06-24",
        "endpointOnVendorDomain": true,
        "terms": "https://akoya.com/terms-of-use",
        "privacy": "https://akoya.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://docs.akoya.com/akoya/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Terms of Use (last updated 20 December 2024) name Akoya LLC and govern use of the Akoya Data Access Network and akoya.com. Production use also runs under a data access agreement signed through Docusign, which is not published.",
          "The privacy policy (last updated 9 June 2025) covers the website and Akoya's products and services, and gives the address 6 Liberty Square #2381, Boston, MA 02109.",
          "The OpenAPI files name https://recipient.ddp.akoya.com/terms-of-use as their licence. That address returned a 755-byte script shell to our reader.",
          "akoya.com/.well-known/security.txt and docs.akoya.com/.well-known/security.txt both returned 404.",
          "No public status page was found. status.akoya.com did not connect, and the docs place network availability and outages inside the Data Recipient Hub, behind a login.",
          "RDAP (Verisign) gives a registration date of 1998-06-24 for akoya.com."
        ],
        "score": 72
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/akoya.json",
      "live": {
        "slug": "akoya",
        "probe": {
          "target": "https://products.ddp.akoya.com",
          "method": "get",
          "lastAt": "2026-10-08T21:12:03.241288067Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 322,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 333,
          "p95ms24h": 384,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "updatedAt": "2026-10-08T21:12:03.241288067Z"
      }
    },
    "answer": "MX Platform API scores 62.5 (B) on agent readiness against Akoya's 48.3 (D), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "mx",
      "name": "MX Platform API",
      "vendor": "MX Technologies, Inc.",
      "vendorUrl": "https://www.mx.com",
      "kind": "http-api",
      "category": "banking-data",
      "summary": "MX Technologies' Platform API connects US and Canadian bank accounts for account aggregation, balance checks, account and owner verification and up to 24 months of categorised transactions, through REST endpoints or the embedded Connect Widget.",
      "url": "https://www.anchorterminal.com/tools/mx",
      "markdownUrl": "https://www.anchorterminal.com/tools/mx.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mx.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mx.json",
      "repo": "https://github.com/mxenabled/openapi",
      "license": "Proprietary service. The SDKs and the OpenAPI files on GitHub are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.mx.com",
      "packages": [
        {
          "registry": "npm",
          "name": "mx-platform-node"
        },
        {
          "registry": "pypi",
          "name": "mx-platform-python"
        },
        {
          "registry": "npm",
          "name": "@mxenabled/web-widget-sdk"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve for development, MX approval for production. Every request sends Basic auth of `client_id:api_key` from the Client Dashboard, plus `Accept-Version`. Development and production keys are separate, and a rotated key stays valid for 30 days. All calling IP addresses must be allowlisted in the dashboard, and MX reviews addresses outside the US. Mutual TLS is optional. Four processor endpoints take a Bearer token exchanged from an authorisation code. OAuth institutions appear only after MX registers the client with them.",
      "pricing": "paid",
      "pricingNotes": "No public price. www.mx.com/pricing/ returns 404 and the product pages ask for a demo. Developer API keys are free and reach the integration environment (`https://int-api.mx.com`) with up to 100 users and a subset of institutions, so an agent's owner can test without a contract. Production keys are requested from MX in the Client Dashboard (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs index, the OpenAPI file or mx.com (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 9,
        "npmWeekly": 2631,
        "pypiWeekly": 1997,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.mx.com/",
      "llmsTxt": "https://docs.mx.com/llms.txt",
      "openapi": "https://docs.mx.com/openapi/platform-api/v20260929.yaml",
      "capabilities": [
        "bank.accounts",
        "bank.transactions",
        "bank.identity",
        "bank.consent"
      ],
      "tags": [
        "hosted",
        "openapi",
        "llms-txt",
        "typescript",
        "python",
        "ruby",
        "java",
        "csharp",
        "webhooks",
        "sales-led",
        "enterprise",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-09-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.5,
        "grade": "B",
        "agentReady": false,
        "rank": 336,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 3,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 74,
          "maintenance": 71,
          "payments": 15,
          "reliability": 63,
          "schema": 85,
          "security": 60,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Three public OpenAPI files, llms.txt, Markdown docs and a written version policy with 18 months of support and `Deprecation` and `Sunset` response headers. No price, client agreement or SLA is published, production keys need MX's approval, every calling IP address must be allowlisted, and the status page records three platform-wide error incidents since 10 July 2026.",
        "bestFor": "A US or Canadian bank, credit union or fintech with a signed MX contract that wants aggregation, verification and categorised transactions plus embeddable finance widgets.",
        "strengths": [
          "OpenAPI files for all three Platform API versions, an llms.txt index and a Markdown twin of every docs page",
          "Each version is supported for at least 18 months, then deprecated for 12, and deprecated endpoints send `Deprecation`, `Sunset` and `Link` headers",
          "Rate limits are published per method, 2,000 GET and 750 POST requests a second in production",
          "Free developer keys reach the integration environment with up to 100 users and the `mxbank` test institution",
          "API keys rotate with a 30-day overlap, every calling IP must be allowlisted, and mutual TLS and JWE-encrypted responses are available"
        ],
        "weaknesses": [
          "No public price, SLA or client agreement. Production keys are requested from MX in the Client Dashboard",
          "Three platform-wide incidents of elevated errors since 10 July 2026 (42, 89 and 37 minutes), marked critical or major",
          "One `client_id` and `api_key` pair reaches every endpoint, with no scopes and no read-only key",
          "No SDK targets v20260929. The newest SDK releases date from January and February 2026 and cover v20250224 and v20111101",
          "A 429 carries no `Retry-After`, and the API has no idempotency key",
          "The privacy statement excludes data MX processes for clients, and no DPA or sub-processor list is public"
        ],
        "agentNotes": [
          "Send `Accept: application/json`, `Accept-Version: v20260929` and Basic auth of `client_id:api_key` on every call. A missing version returns 406",
          "Ask the owner to allowlist the calling machine's static IP in the Client Dashboard first. Other addresses get 403, and some failed authentication returns 404",
          "Test against `https://int-api.mx.com` with institution `mxbank`, username `mxuser` and any password. It has no aggregation throttle",
          "Set your own `id` when creating users and members. A repeat returns 409, which makes a retried create safe",
          "Expect 202 without an error when a standard aggregation is throttled (three hours by default). Balance checks stop at 5 per member every 2 hours with 429",
          "Pass `includes[]=merchant` or `includes[]=category` as an array on transaction lists. A comma-separated string returns 400"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.5
          }
        ],
        "editorialScores": {
          "ergonomics": 74,
          "maintenance": 71,
          "payments": 15,
          "reliability": 63,
          "schema": 85,
          "security": 60,
          "transparency": 46
        },
        "provenanceScore": 80
      },
      "connect": {
        "install": "npm install mx-platform-node@^3",
        "http": "curl -X GET 'https://int-api.mx.com/users' \\\n  -H 'Accept: application/json' \\\n  -H 'Accept-Version: v20260929' \\\n  -H 'Authorization: Basic BASE_64_ENCODING_OF{client_id:api_key}'"
      },
      "letme": {
        "capability": "https://letme.dev/bank.accounts",
        "tool": "https://letme.dev/mx"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "MX Technologies, Inc.",
        "domain": "mx.com",
        "domainRegistered": "1994-04-28",
        "endpointOnVendorDomain": true,
        "terms": "",
        "privacy": "",
        "statusPage": "https://status.mx.com",
        "changelog": "https://docs.mx.com/resources/changelog/",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The privacy statement and the terms name MX Technologies, Inc., 3401 North Thanksgiving Way, Suite 500, Lehi, Utah 84043.",
          "`terms` is left out. The only terms on mx.com are an end-user and website Terms of Use dated 15 January 2020 (https://www.mx.com/terms/). No client or developer agreement for the Platform API is published.",
          "`privacy` is left out. The privacy statement at https://www.mx.com/privacy/ (30 September 2025) says it does not apply to personal data MX processes as a processor on behalf of its clients, which is the data the API handles.",
          "The API answers at api.mx.com and int-api.mx.com.",
          "security.txt at https://www.mx.com/.well-known/security.txt is PGP-signed, gives vulns@mx.com and expires 2030-12-31. Its Policy link redirects to the trust page.",
          "Verisign's RDAP server gives a registration date of 1994-04-28 and GoDaddy.com, LLC as registrar."
        ],
        "score": 80
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/mx.json",
      "live": {
        "slug": "mx",
        "probe": {
          "target": "https://api.mx.com",
          "method": "get",
          "lastAt": "2026-10-08T21:12:16.259214321Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 675,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 726,
          "p95ms24h": 827,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.mx.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:06:13.020289952Z"
        },
        "updatedAt": "2026-10-08T21:12:16.259214321Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Akoya LLC",
        "b": "MX Technologies, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://products.ddp.akoya.com",
        "b": "https://api.mx.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the Akoya Terms of Use and a signed data access agreement",
        "b": "Proprietary service. The SDKs and the OpenAPI files on GitHub are MIT",
        "name": "Licence"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-08-05",
        "b": "2026-09-29",
        "name": "Last release"
      },
      {
        "a": "2024-12-20",
        "b": "no document linked",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "no document linked",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "9 stars, 2.6k npm/wk, 2k PyPI/wk",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "MX Platform API scores 62.5 (B) on agent readiness against Akoya's 48.3 (D), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, Akoya or MX Platform API?"
      },
      {
        "answer": "Akoya uses an OAuth sign-in. MX Platform API needs an API key.",
        "question": "Do Akoya and MX Platform API need an API key?"
      },
      {
        "answer": "Yes. Akoya has a hosted endpoint at https://products.ddp.akoya.com and MX Platform API at https://api.mx.com.",
        "question": "Can an agent call Akoya and MX Platform API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "also": null,
        "goodFor": "A US fintech that wants consumer-permissioned data over direct institution APIs in FDX format and can pass a security review.",
        "slug": "akoya",
        "watchFor": "No price is published. Standard (under 10,000 monthly connections) and Enterprise are named without figures, and a set-up fee may apply"
      },
      {
        "aheadOn": [
          "Reliability, 63 against 28",
          "Schema \u0026 documentation, 85 against 70",
          "Agent ergonomics, 74 against 67",
          "Payments \u0026 pricing, 15 against 10",
          "Maintenance \u0026 community, 71 against 33",
          "Transparency \u0026 trust, 63 against 58"
        ],
        "also": null,
        "goodFor": "A US or Canadian bank, credit union or fintech with a signed MX contract that wants aggregation, verification and categorised transactions plus embeddable finance widgets.",
        "slug": "mx",
        "watchFor": "No public price, SLA or client agreement. Production keys are requested from MX in the Client Dashboard"
      }
    ],
    "job": {
      "capability": "bank.accounts",
      "name": "Bank accounts"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-belvo.json",
        "title": "Akoya vs Belvo",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-belvo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-enable-banking.json",
        "title": "Akoya vs Enable Banking",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-enable-banking"
      },
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-flinks.json",
        "title": "Akoya vs Flinks",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-flinks"
      },
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-gocardless-bank-account-data.json",
        "title": "Akoya vs GoCardless Bank Account Data",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-gocardless-bank-account-data"
      },
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-plaid.json",
        "title": "Akoya vs Plaid",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-plaid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-salt-edge.json",
        "title": "Akoya vs Salt Edge Account Information",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-salt-edge"
      },
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-teller.json",
        "title": "Akoya vs Teller",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-teller"
      },
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-tink.json",
        "title": "Akoya vs Tink",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-tink"
      },
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-truelayer.json",
        "title": "Akoya vs TrueLayer",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-truelayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-yapily.json",
        "title": "Akoya vs Yapily",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-yapily"
      },
      {
        "json": "https://www.anchorterminal.com/compare/belvo-vs-mx.json",
        "title": "Belvo vs MX Platform API",
        "url": "https://www.anchorterminal.com/compare/belvo-vs-mx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/enable-banking-vs-mx.json",
        "title": "Enable Banking vs MX Platform API",
        "url": "https://www.anchorterminal.com/compare/enable-banking-vs-mx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flinks-vs-mx.json",
        "title": "Flinks vs MX Platform API",
        "url": "https://www.anchorterminal.com/compare/flinks-vs-mx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gocardless-bank-account-data-vs-mx.json",
        "title": "GoCardless Bank Account Data vs MX Platform API",
        "url": "https://www.anchorterminal.com/compare/gocardless-bank-account-data-vs-mx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mx-vs-plaid.json",
        "title": "MX Platform API vs Plaid",
        "url": "https://www.anchorterminal.com/compare/mx-vs-plaid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mx-vs-salt-edge.json",
        "title": "MX Platform API vs Salt Edge Account Information",
        "url": "https://www.anchorterminal.com/compare/mx-vs-salt-edge"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mx-vs-teller.json",
        "title": "MX Platform API vs Teller",
        "url": "https://www.anchorterminal.com/compare/mx-vs-teller"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mx-vs-tink.json",
        "title": "MX Platform API vs Tink",
        "url": "https://www.anchorterminal.com/compare/mx-vs-tink"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mx-vs-truelayer.json",
        "title": "MX Platform API vs TrueLayer",
        "url": "https://www.anchorterminal.com/compare/mx-vs-truelayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mx-vs-yapily.json",
        "title": "MX Platform API vs Yapily",
        "url": "https://www.anchorterminal.com/compare/mx-vs-yapily"
      }
    ],
    "scores": [
      {
        "akoya": 28,
        "by": 35,
        "edge": "mx",
        "key": "reliability",
        "mx": 63,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "akoya": 70,
        "by": 15,
        "edge": "mx",
        "key": "schema",
        "mx": 85,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "akoya": 67,
        "by": 7,
        "edge": "mx",
        "key": "ergonomics",
        "mx": 74,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "akoya": 64,
        "by": 4,
        "edge": "akoya",
        "key": "security",
        "mx": 60,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "akoya": 10,
        "by": 5,
        "edge": "mx",
        "key": "payments",
        "mx": 15,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "akoya": 33,
        "by": 38,
        "edge": "mx",
        "key": "maintenance",
        "mx": 71,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "akoya": 58,
        "by": 5,
        "edge": "mx",
        "key": "transparency",
        "mx": 63,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "MX Platform API scores 62.5 (B) on agent readiness against Akoya's 48.3 (D), and leads in 6 of 7 scored categories. Both do bank accounts.",
    "verdicts": {
      "akoya": "Six OpenAPI 3.1 specifications, a free self-service sandbox and read-only data endpoints behind per-consumer OAuth tokens make the API straightforward to test. Production needs a security review and a signed agreement, no price is published, and no public status page, SLA, SDK or `llms.txt` was found.",
      "mx": "Three public OpenAPI files, llms.txt, Markdown docs and a written version policy with 18 months of support and `Deprecation` and `Sunset` response headers. No price, client agreement or SLA is published, production keys need MX's approval, every calling IP address must be allowlisted, and the status page records three platform-wide error incidents since 10 July 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/akoya-vs-mx",
    "json": "https://www.anchorterminal.com/compare/akoya-vs-mx.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/akoya-vs-mx.md",
    "slim": "https://www.anchorterminal.com/compare/akoya-vs-mx.min.md"
  },
  "markdown": "MX Platform API scores 62.5 (B) on agent readiness against Akoya's 48.3 (D), and leads in 6 of 7 scored categories. Both do bank accounts.\n\n- Akoya: grade D, 48.3/100, rank #623 of 722. Markdown https://www.anchorterminal.com/tools/akoya.md · JSON https://www.anchorterminal.com/api/v1/tools/akoya.json\n- MX Platform API: grade B, 62.5/100, rank #336 of 722. Markdown https://www.anchorterminal.com/tools/mx.md · JSON https://www.anchorterminal.com/api/v1/tools/mx.json\n\n## Which one, for what\n\n### Akoya (D)\n\nGood for: A US fintech that wants consumer-permissioned data over direct institution APIs in FDX format and can pass a security review.\n\nWatch for: No price is published. Standard (under 10,000 monthly connections) and Enterprise are named without figures, and a set-up fee may apply\n\n### MX Platform API (B)\n\nGood for: A US or Canadian bank, credit union or fintech with a signed MX contract that wants aggregation, verification and categorised transactions plus embeddable finance widgets.\n\nAhead on:\n- Reliability, 63 against 28\n- Schema \u0026 documentation, 85 against 70\n- Agent ergonomics, 74 against 67\n- Payments \u0026 pricing, 15 against 10\n- Maintenance \u0026 community, 71 against 33\n- Transparency \u0026 trust, 63 against 58\n\nWatch for: No public price, SLA or client agreement. Production keys are requested from MX in the Client Dashboard\n\n\n## Score by category\n\n| Category | Weight | Akoya | MX Platform API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 28 | 63 | MX Platform API +35 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 70 | 85 | MX Platform API +15 |\n| Agent ergonomics | 13% (16.2 this run) | 67 | 74 | MX Platform API +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 64 | 60 | Akoya +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 10 | 15 | MX Platform API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 33 | 71 | MX Platform API +38 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 58 | 63 | MX Platform API +5 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **48.3 · D** | **62.5 · B** | |\n\n## Facts side by side\n\n| Fact | Akoya | MX Platform API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Akoya LLC | MX Technologies, Inc. |\n| Hosted endpoint | `https://products.ddp.akoya.com` | `https://api.mx.com` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth | API key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under the Akoya Terms of Use and a signed data access agreement | Proprietary service. The SDKs and the OpenAPI files on GitHub are MIT |\n| Read-only variant documented | yes | no |\n| llms.txt | no | yes |\n| Last release | 2026-08-05 | 2026-09-29 |\n| Terms last updated | 2024-12-20 | no document linked |\n| Privacy policy last updated | no date given | no document linked |\n| Customer content may train models | not found in the text |  |\n| Terms restrict automated access | yes |  |\n| Terms restrict benchmarking | not found in the text |  |\n| Terms or service can change without notice | yes |  |\n| Arbitration or class-action waiver | not found in the text |  |\n| Popularity | none | 9 stars, 2.6k npm/wk, 2k PyPI/wk |\n\n## Verdicts\n\n**Akoya.** Six OpenAPI 3.1 specifications, a free self-service sandbox and read-only data endpoints behind per-consumer OAuth tokens make the API straightforward to test. Production needs a security review and a signed agreement, no price is published, and no public status page, SLA, SDK or `llms.txt` was found.\n\n**MX Platform API.** Three public OpenAPI files, llms.txt, Markdown docs and a written version policy with 18 months of support and `Deprecation` and `Sunset` response headers. No price, client agreement or SLA is published, production keys need MX's approval, every calling IP address must be allowlisted, and the status page records three platform-wide error incidents since 10 July 2026.\n\n## Before you call either\n\n### Akoya\n\n1. Send `x-akoya-interaction-type` (USER or BATCH) and `x-akoya-last-access` on every v3 data call, plus `x-akoya-intent-type` if the app subscribes to Payments\n2. Use the `id_token` as the bearer token. The `/token` response has no `access_token` field, so generic OAuth libraries need adjusting\n3. Treat ID tokens as valid for 15 minutes, refresh on error 602, and store the new refresh token returned by every refresh\n4. Page transactions by following `links.next.href` unchanged. Set `limit`, `startTime` and `endTime` on the first call only\n5. On 429 with code 1207 slow the request rate. On 5xx retry up to three times with exponential backoff\n\n### MX Platform API\n\n1. Send `Accept: application/json`, `Accept-Version: v20260929` and Basic auth of `client_id:api_key` on every call. A missing version returns 406\n2. Ask the owner to allowlist the calling machine's static IP in the Client Dashboard first. Other addresses get 403, and some failed authentication returns 404\n3. Test against `https://int-api.mx.com` with institution `mxbank`, username `mxuser` and any password. It has no aggregation throttle\n4. Set your own `id` when creating users and members. A repeat returns 409, which makes a retried create safe\n5. Expect 202 without an error when a standard aggregation is throttled (three hours by default). Balance checks stop at 5 per member every 2 hours with 429\n6. Pass `includes[]=merchant` or `includes[]=category` as an array on transaction lists. A comma-separated string returns 400\n\n## Questions\n\n### Which is better for AI agents, Akoya or MX Platform API?\n\nMX Platform API scores 62.5 (B) on agent readiness against Akoya's 48.3 (D), and leads in 6 of 7 scored categories.\n\n### Do Akoya and MX Platform API need an API key?\n\nAkoya uses an OAuth sign-in. MX Platform API needs an API key.\n\n### Can an agent call Akoya and MX Platform API without installing anything?\n\nYes. Akoya has a hosted endpoint at https://products.ddp.akoya.com and MX Platform API at https://api.mx.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/akoya-vs-mx.json, and with the fewest tokens: https://www.anchorterminal.com/compare/akoya-vs-mx.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"akoya\", \"b\": \"mx\"}`. From a terminal: `anchor compare akoya mx`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/akoya.json and https://www.anchorterminal.com/api/v1/tools/mx.json\n\n## Other comparisons with Akoya or MX Platform API\n\n- [Akoya vs Belvo](https://www.anchorterminal.com/compare/akoya-vs-belvo.md)\n- [Akoya vs Enable Banking](https://www.anchorterminal.com/compare/akoya-vs-enable-banking.md)\n- [Akoya vs Flinks](https://www.anchorterminal.com/compare/akoya-vs-flinks.md)\n- [Akoya vs GoCardless Bank Account Data](https://www.anchorterminal.com/compare/akoya-vs-gocardless-bank-account-data.md)\n- [Akoya vs Plaid](https://www.anchorterminal.com/compare/akoya-vs-plaid.md)\n- [Akoya vs Salt Edge Account Information](https://www.anchorterminal.com/compare/akoya-vs-salt-edge.md)\n- [Akoya vs Teller](https://www.anchorterminal.com/compare/akoya-vs-teller.md)\n- [Akoya vs Tink](https://www.anchorterminal.com/compare/akoya-vs-tink.md)\n- [Akoya vs TrueLayer](https://www.anchorterminal.com/compare/akoya-vs-truelayer.md)\n- [Akoya vs Yapily](https://www.anchorterminal.com/compare/akoya-vs-yapily.md)\n- [Belvo vs MX Platform API](https://www.anchorterminal.com/compare/belvo-vs-mx.md)\n- [Enable Banking vs MX Platform API](https://www.anchorterminal.com/compare/enable-banking-vs-mx.md)\n- [Flinks vs MX Platform API](https://www.anchorterminal.com/compare/flinks-vs-mx.md)\n- [GoCardless Bank Account Data vs MX Platform API](https://www.anchorterminal.com/compare/gocardless-bank-account-data-vs-mx.md)\n- [MX Platform API vs Plaid](https://www.anchorterminal.com/compare/mx-vs-plaid.md)\n- [MX Platform API vs Salt Edge Account Information](https://www.anchorterminal.com/compare/mx-vs-salt-edge.md)\n- [MX Platform API vs Teller](https://www.anchorterminal.com/compare/mx-vs-teller.md)\n- [MX Platform API vs Tink](https://www.anchorterminal.com/compare/mx-vs-tink.md)\n- [MX Platform API vs TrueLayer](https://www.anchorterminal.com/compare/mx-vs-truelayer.md)\n- [MX Platform API vs Yapily](https://www.anchorterminal.com/compare/mx-vs-yapily.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Akoya vs MX Platform API",
        "url": ""
      }
    ],
    "description": "MX Platform API scores 62.5 (B) on agent readiness against Akoya's 48.3 (D), and leads in 6 of 7 scored categories. Both do bank accounts. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Akoya D 48.3",
      "MX Platform API B 62.5",
      "scores"
    ],
    "h1": "Akoya vs MX Platform API",
    "image": "https://www.anchorterminal.com/assets/og/compare-akoya-vs-mx.png",
    "path": "/compare/akoya-vs-mx",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Akoya vs MX Platform API for AI agents, D 48.3 vs B 62.5",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/akoya-vs-mx"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 680
  },
  "version": 1
}
