{
  "data": {
    "a": {
      "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"
      }
    },
    "answer": "Plaid scores 69.8 (B) on agent readiness against MX Platform API's 62.5 (B), and leads in 6 of 7 scored categories.",
    "b": {
      "slug": "plaid",
      "name": "Plaid",
      "vendor": "Plaid",
      "vendorUrl": "https://plaid.com",
      "kind": "http-api",
      "category": "banking-data",
      "summary": "Bank data aggregation platform covering the US, Canada, the UK and parts of Europe.",
      "url": "https://www.anchorterminal.com/tools/plaid",
      "markdownUrl": "https://www.anchorterminal.com/tools/plaid.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/plaid.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/plaid.json",
      "repo": "https://github.com/plaid/mcp",
      "license": "MIT (SDKs and MCP server)",
      "transports": [
        "http",
        "stdio",
        "streamable-http"
      ],
      "remoteUrl": "https://production.plaid.com",
      "packages": [
        {
          "registry": "npm",
          "name": "plaid"
        },
        {
          "registry": "pypi",
          "name": "plaid-python"
        },
        {
          "registry": "pypi",
          "name": "mcp-server-plaid"
        }
      ],
      "auth": "mixed",
      "authNotes": "Every call is a POST with `client_id` and `secret` in the JSON body (or as PLAID-CLIENT-ID and PLAID-SECRET headers). Sandbox and Production have separate secrets. End-user data needs an `access_token` from the Link flow (link token, public token, exchange). The Dashboard MCP uses OAuth client_credentials with scope `mcp:dashboard` and 15-minute tokens. The sandbox MCP takes the sandbox client id and secret as flags or environment variables.",
      "pricing": "paid",
      "pricingNotes": "Sandbox is always free. Three plans, Pay as you go (month to month, card on file), Growth (12-month commitment) and Custom, with no price list on the site; you see prices when you apply for Production access (https://plaid.com/pricing/). Billing model varies by product. One-time per Item for Auth, Identity, Income and Layer, a monthly subscription per Item for Transactions, Liabilities, Investments and Recurring Transactions, and a flat fee per call for Balance, Signal and the refresh endpoints. A subscription Item keeps billing until you call /item/remove or the user revokes it (https://plaid.com/docs/account/billing/index.html.md). Teams created after 15 April 2026 in the US and Canada get a Trial plan with 10 free Production Items, replacing the older Limited Production of 200 calls per product (https://plaid.com/docs/changelog/).",
      "priceSummary": "Paid",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": 4,
      "popularity": {
        "githubStars": 586,
        "npmWeekly": 1292229,
        "pypiWeekly": 656730,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://plaid.com/docs/",
      "llmsTxt": "https://plaid.com/docs/llms.txt",
      "openapi": "https://raw.githubusercontent.com/plaid/plaid-openapi/master/2020-09-14.yml",
      "capabilities": [
        "bank.accounts",
        "bank.transactions",
        "bank.identity",
        "bank.payments",
        "bank.consent"
      ],
      "tags": [
        "hosted",
        "mcp",
        "llms-txt",
        "openapi",
        "typescript",
        "python",
        "webhooks",
        "card-required",
        "enterprise",
        "open-source"
      ],
      "lastRelease": "2026-09-24",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 69.8,
        "grade": "B",
        "agentReady": false,
        "rank": 147,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 1,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 82,
          "maintenance": 83,
          "payments": 15,
          "reliability": 68,
          "schema": 93,
          "security": 67,
          "transparency": 79
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "high",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Public OpenAPI file, llms.txt with about 250 entries and a Markdown twin of every docs page. No prices before a Production application, and Transactions, Liabilities and Investments bill per Item each month until removed.",
        "bestFor": "US and Canadian account, transaction, identity and income data, with Transfer for payments.",
        "strengths": [
          "Public OpenAPI file, llms.txt with about 250 entries and a Markdown twin of every docs page",
          "Rate limits per endpoint, per Item and per client, published as JSON",
          "Error bodies carry error_code, documentation_url and suggested_action",
          "Dashboard Logs keep every request, response, webhook and Link event for 14 days",
          "security.txt valid to 31 December 2026 and a HackerOne programme"
        ],
        "weaknesses": [
          "No prices before a Production application, and Transactions, Liabilities and Investments bill per Item each month until removed",
          "Four plaid-node major versions between 23 July and 1 September 2026, each with breaking changes",
          "No Retry-After on 429 and no list of which error codes are safe to retry",
          "Six incidents marked major on the status page since 10 July 2026, five of them single banks",
          "One team secret reaches every product, Transfer included; there's no read-only key"
        ],
        "agentNotes": [
          "Point calls at https://sandbox.plaid.com until you hold a Production secret; request shapes are the same",
          "Create a sandbox Item with /sandbox/public_token/create and ins_109508, then /item/public_token/exchange, no Link UI needed",
          "Use /transactions/sync with its cursor and back off on 429 RATE_LIMIT_EXCEEDED yourself, since no Retry-After comes back",
          "Call /item/remove when the user is done, or subscription products keep billing",
          "Send an idempotency_key on `/transfer/authorization/create` so a retried request can't authorise twice"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "high",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 69.8
          }
        ],
        "editorialScores": {
          "ergonomics": 82,
          "maintenance": 83,
          "payments": 15,
          "reliability": 68,
          "schema": 93,
          "security": 67,
          "transparency": 61
        },
        "provenanceScore": 97
      },
      "connect": {
        "http": "curl -X POST https://sandbox.plaid.com/sandbox/public_token/create -H \"Content-Type: application/json\" \\\n  -d '{\"client_id\":\"'\"$PLAID_CLIENT_ID\"'\",\"secret\":\"'\"$PLAID_SECRET\"'\",\"institution_id\":\"ins_109508\",\"initial_products\":[\"transactions\"]}'",
        "claudeCode": "claude mcp add plaid -e PLAID_CLIENT_ID=$PLAID_CLIENT_ID -e PLAID_SECRET=$PLAID_SECRET -- uvx mcp-server-plaid",
        "config": {
          "mcpServers": {
            "plaid": {
              "args": [
                "mcp-server-plaid"
              ],
              "command": "uvx",
              "env": {
                "PLAID_CLIENT_ID": "${PLAID_CLIENT_ID}",
                "PLAID_SECRET": "${PLAID_SECRET}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/bank.accounts",
        "tool": "https://letme.dev/plaid"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Plaid Inc.",
        "domain": "plaid.com",
        "domainRegistered": "1995-08-16",
        "domainNote": "plaid.com was registered in 1995, long before Plaid was founded, so the domain was bought later.",
        "endpointOnVendorDomain": true,
        "terms": "https://plaid.com/legal/#developer-policy",
        "privacy": "https://plaid.com/legal/#privacy-statement",
        "statusPage": "https://status.plaid.com",
        "changelog": "https://plaid.com/docs/changelog/",
        "securityTxt": "valid",
        "checked": "2026-09-30",
        "notes": [
          "Plaid Inc. (San Francisco) contracts US customers; Plaid Financial Ltd. (London) and Plaid, B.V. (Amsterdam) cover the UK and the EEA.",
          "security.txt lists HackerOne and security@plaid.com and expires 2026-12-31.",
          "rdap.org returned 403 for the domain; the registration date comes from Verisign's RDAP server."
        ],
        "score": 97
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/plaid.json",
      "live": {
        "slug": "plaid",
        "probe": {
          "target": "https://production.plaid.com",
          "method": "get",
          "lastAt": "2026-10-08T21:12:18.665062409Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 337,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 344,
          "p95ms24h": 402,
          "samples24h": 271,
          "samples30d": 1955,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 239,
              "ok": 239
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.plaid.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:06:22.376482337Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "plaid",
            "version": "48.0.0",
            "seenAt": "2026-10-08T16:25:30.345209662Z"
          },
          {
            "registry": "pypi",
            "name": "mcp-server-plaid",
            "version": "0.1.1",
            "released": "2026-08-10",
            "seenAt": "2026-10-08T16:25:31.323577766Z"
          },
          {
            "registry": "pypi",
            "name": "plaid-python",
            "version": "45.0.0",
            "released": "2026-10-02",
            "seenAt": "2026-10-08T16:25:31.132908141Z"
          }
        ],
        "githubStars": 30,
        "npmWeekly": 1469361,
        "pypiWeekly": 688974,
        "securityTxt": {
          "url": "https://plaid.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2026-12-31T23:59:59.000Z",
          "checkedAt": "2026-10-08T15:39:02.201293131Z"
        },
        "llmsTxt": {
          "url": "https://plaid.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:45.906696009Z"
        },
        "domain": {
          "domain": "plaid.com",
          "registered": "1995-08-16",
          "source": "https://rdap.verisign.com/com/v1/domain/plaid.com",
          "checkedAt": "2026-10-04T13:09:13.710656054Z"
        },
        "pages": [
          {
            "url": "https://plaid.com/docs/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:23:02.586422213Z",
            "changedAt": "2026-10-08T18:23:02.586422213Z",
            "fingerprint": "3e9653eec20a"
          },
          {
            "url": "https://plaid.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:23:07.48587411Z",
            "changedAt": "2026-10-06T16:11:29.459778327Z",
            "fingerprint": "15a9f4a4d8fd"
          },
          {
            "url": "https://plaid.com/legal/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:23:05.247201174Z",
            "changedAt": "2026-10-06T16:11:26.544421142Z",
            "fingerprint": "ecb1a91718b4"
          }
        ],
        "updatedAt": "2026-10-08T21:12:18.665062409Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "MX Technologies, Inc.",
        "b": "Plaid",
        "name": "Vendor"
      },
      {
        "a": "https://api.mx.com",
        "b": "https://production.plaid.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP, stdio, Streamable HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service. The SDKs and the OpenAPI files on GitHub are MIT",
        "b": "MIT (SDKs and MCP server)",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "4",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-29",
        "b": "2026-09-24",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2025-12-01",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2025-12-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "9 stars, 2.6k npm/wk, 2k PyPI/wk",
        "b": "586 stars, 1.3M npm/wk, 657k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Plaid scores 69.8 (B) on agent readiness against MX Platform API's 62.5 (B), and leads in 6 of 7 scored categories.",
        "question": "Which is better for AI agents, MX Platform API or Plaid?"
      },
      {
        "answer": "MX Platform API needs an API key. Plaid takes an API key or an OAuth sign-in.",
        "question": "Do MX Platform API and Plaid need an API key?"
      },
      {
        "answer": "Yes. MX Platform API has a hosted endpoint at https://api.mx.com and Plaid at https://production.plaid.com.",
        "question": "Can an agent call MX Platform API and Plaid without installing anything?"
      },
      {
        "answer": "No open-source release is listed for MX Platform API. Plaid is open source (MIT (SDKs and MCP server)).",
        "question": "Are MX Platform API and Plaid open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": null,
        "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"
      },
      {
        "aheadOn": [
          "Reliability, 68 against 63",
          "Schema \u0026 documentation, 93 against 85",
          "Agent ergonomics, 82 against 74",
          "Security \u0026 auth, 67 against 60",
          "Maintenance \u0026 community, 83 against 71",
          "Transparency \u0026 trust, 79 against 63"
        ],
        "also": [
          "Runs on your own machine",
          "Open source"
        ],
        "goodFor": "US and Canadian account, transaction, identity and income data, with Transfer for payments.",
        "slug": "plaid",
        "watchFor": "No prices before a Production application, and Transactions, Liabilities and Investments bill per Item each month until removed"
      }
    ],
    "job": {
      "capability": "bank.accounts",
      "name": "Bank accounts"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-mx.json",
        "title": "Akoya vs MX Platform API",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-mx"
      },
      {
        "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/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/belvo-vs-plaid.json",
        "title": "Belvo vs Plaid",
        "url": "https://www.anchorterminal.com/compare/belvo-vs-plaid"
      },
      {
        "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/enable-banking-vs-plaid.json",
        "title": "Enable Banking vs Plaid",
        "url": "https://www.anchorterminal.com/compare/enable-banking-vs-plaid"
      },
      {
        "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/flinks-vs-plaid.json",
        "title": "Flinks vs Plaid",
        "url": "https://www.anchorterminal.com/compare/flinks-vs-plaid"
      },
      {
        "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/gocardless-bank-account-data-vs-plaid.json",
        "title": "GoCardless Bank Account Data vs Plaid",
        "url": "https://www.anchorterminal.com/compare/gocardless-bank-account-data-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"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plaid-vs-salt-edge.json",
        "title": "Plaid vs Salt Edge Account Information",
        "url": "https://www.anchorterminal.com/compare/plaid-vs-salt-edge"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plaid-vs-teller.json",
        "title": "Plaid vs Teller",
        "url": "https://www.anchorterminal.com/compare/plaid-vs-teller"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plaid-vs-tink.json",
        "title": "Plaid vs Tink",
        "url": "https://www.anchorterminal.com/compare/plaid-vs-tink"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plaid-vs-truelayer.json",
        "title": "Plaid vs TrueLayer",
        "url": "https://www.anchorterminal.com/compare/plaid-vs-truelayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plaid-vs-yapily.json",
        "title": "Plaid vs Yapily",
        "url": "https://www.anchorterminal.com/compare/plaid-vs-yapily"
      }
    ],
    "scores": [
      {
        "by": 5,
        "edge": "plaid",
        "key": "reliability",
        "mx": 63,
        "name": "Reliability",
        "plaid": 68,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 8,
        "edge": "plaid",
        "key": "schema",
        "mx": 85,
        "name": "Schema \u0026 documentation",
        "plaid": 93,
        "weight": 13
      },
      {
        "by": 8,
        "edge": "plaid",
        "key": "ergonomics",
        "mx": 74,
        "name": "Agent ergonomics",
        "plaid": 82,
        "weight": 13
      },
      {
        "by": 7,
        "edge": "plaid",
        "key": "security",
        "mx": 60,
        "name": "Security \u0026 auth",
        "plaid": 67,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "key": "payments",
        "mx": 15,
        "name": "Payments \u0026 pricing",
        "plaid": 15,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 12,
        "edge": "plaid",
        "key": "maintenance",
        "mx": 71,
        "name": "Maintenance \u0026 community",
        "plaid": 83,
        "weight": 7
      },
      {
        "by": 16,
        "edge": "plaid",
        "key": "transparency",
        "mx": 63,
        "name": "Transparency \u0026 trust",
        "plaid": 79,
        "weight": 7
      }
    ],
    "summary": "Plaid scores 69.8 (B) on agent readiness against MX Platform API's 62.5 (B), and leads in 6 of 7 scored categories. Both do bank accounts.",
    "verdicts": {
      "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.",
      "plaid": "Public OpenAPI file, llms.txt with about 250 entries and a Markdown twin of every docs page. No prices before a Production application, and Transactions, Liabilities and Investments bill per Item each month until removed."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/mx-vs-plaid",
    "json": "https://www.anchorterminal.com/compare/mx-vs-plaid.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/mx-vs-plaid.md",
    "slim": "https://www.anchorterminal.com/compare/mx-vs-plaid.min.md"
  },
  "markdown": "Plaid scores 69.8 (B) on agent readiness against MX Platform API's 62.5 (B), and leads in 6 of 7 scored categories. Both do bank accounts.\n\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- Plaid: grade B, 69.8/100, rank #147 of 722. Markdown https://www.anchorterminal.com/tools/plaid.md · JSON https://www.anchorterminal.com/api/v1/tools/plaid.json\n\n## Which one, for what\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\nWatch for: No public price, SLA or client agreement. Production keys are requested from MX in the Client Dashboard\n\n### Plaid (B)\n\nGood for: US and Canadian account, transaction, identity and income data, with Transfer for payments.\n\nAhead on:\n- Reliability, 68 against 63\n- Schema \u0026 documentation, 93 against 85\n- Agent ergonomics, 82 against 74\n- Security \u0026 auth, 67 against 60\n- Maintenance \u0026 community, 83 against 71\n- Transparency \u0026 trust, 79 against 63\n\nAlso in its favour:\n- Runs on your own machine\n- Open source\n\nWatch for: No prices before a Production application, and Transactions, Liabilities and Investments bill per Item each month until removed\n\n\n## Score by category\n\n| Category | Weight | MX Platform API | Plaid | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 63 | 68 | Plaid +5 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 85 | 93 | Plaid +8 |\n| Agent ergonomics | 13% (16.2 this run) | 74 | 82 | Plaid +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 60 | 67 | Plaid +7 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 15 | 15 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 71 | 83 | Plaid +12 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 79 | Plaid +16 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **62.5 · B** | **69.8 · B** | |\n\n## Facts side by side\n\n| Fact | MX Platform API | Plaid |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | MX Technologies, Inc. | Plaid |\n| Hosted endpoint | `https://api.mx.com` | `https://production.plaid.com` |\n| Transports | HTTP | HTTP, stdio, Streamable HTTP |\n| Auth | API key | OAuth or key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service. The SDKs and the OpenAPI files on GitHub are MIT | MIT (SDKs and MCP server) |\n| Tools exposed | none | 4 |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-09-29 | 2026-09-24 |\n| Terms last updated | no document linked | 2025-12-01 |\n| Privacy policy last updated | no document linked | 2025-12-01 |\n| Customer content may train models |  | not found in the text |\n| Terms restrict automated access |  | not found in the text |\n| Terms restrict benchmarking |  | yes |\n| Terms or service can change without notice |  | not found in the text |\n| Arbitration or class-action waiver |  | not found in the text |\n| Popularity | 9 stars, 2.6k npm/wk, 2k PyPI/wk | 586 stars, 1.3M npm/wk, 657k PyPI/wk |\n| Agent reviews | none | 3.5/5 (2) |\n\n## Verdicts\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**Plaid.** Public OpenAPI file, llms.txt with about 250 entries and a Markdown twin of every docs page. No prices before a Production application, and Transactions, Liabilities and Investments bill per Item each month until removed.\n\n## Before you call either\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### Plaid\n\n1. Point calls at https://sandbox.plaid.com until you hold a Production secret; request shapes are the same\n2. Create a sandbox Item with /sandbox/public_token/create and ins_109508, then /item/public_token/exchange, no Link UI needed\n3. Use /transactions/sync with its cursor and back off on 429 RATE_LIMIT_EXCEEDED yourself, since no Retry-After comes back\n4. Call /item/remove when the user is done, or subscription products keep billing\n5. Send an idempotency_key on `/transfer/authorization/create` so a retried request can't authorise twice\n\n## Questions\n\n### Which is better for AI agents, MX Platform API or Plaid?\n\nPlaid scores 69.8 (B) on agent readiness against MX Platform API's 62.5 (B), and leads in 6 of 7 scored categories.\n\n### Do MX Platform API and Plaid need an API key?\n\nMX Platform API needs an API key. Plaid takes an API key or an OAuth sign-in.\n\n### Can an agent call MX Platform API and Plaid without installing anything?\n\nYes. MX Platform API has a hosted endpoint at https://api.mx.com and Plaid at https://production.plaid.com.\n\n### Are MX Platform API and Plaid open source?\n\nNo open-source release is listed for MX Platform API. Plaid is open source (MIT (SDKs and MCP server)).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/mx-vs-plaid.json, and with the fewest tokens: https://www.anchorterminal.com/compare/mx-vs-plaid.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"mx\", \"b\": \"plaid\"}`. From a terminal: `anchor compare mx plaid`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/mx.json and https://www.anchorterminal.com/api/v1/tools/plaid.json\n\n## Other comparisons with MX Platform API or Plaid\n\n- [Akoya vs MX Platform API](https://www.anchorterminal.com/compare/akoya-vs-mx.md)\n- [Akoya vs Plaid](https://www.anchorterminal.com/compare/akoya-vs-plaid.md)\n- [Belvo vs MX Platform API](https://www.anchorterminal.com/compare/belvo-vs-mx.md)\n- [Belvo vs Plaid](https://www.anchorterminal.com/compare/belvo-vs-plaid.md)\n- [Enable Banking vs MX Platform API](https://www.anchorterminal.com/compare/enable-banking-vs-mx.md)\n- [Enable Banking vs Plaid](https://www.anchorterminal.com/compare/enable-banking-vs-plaid.md)\n- [Flinks vs MX Platform API](https://www.anchorterminal.com/compare/flinks-vs-mx.md)\n- [Flinks vs Plaid](https://www.anchorterminal.com/compare/flinks-vs-plaid.md)\n- [GoCardless Bank Account Data vs MX Platform API](https://www.anchorterminal.com/compare/gocardless-bank-account-data-vs-mx.md)\n- [GoCardless Bank Account Data vs Plaid](https://www.anchorterminal.com/compare/gocardless-bank-account-data-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- [Plaid vs Salt Edge Account Information](https://www.anchorterminal.com/compare/plaid-vs-salt-edge.md)\n- [Plaid vs Teller](https://www.anchorterminal.com/compare/plaid-vs-teller.md)\n- [Plaid vs Tink](https://www.anchorterminal.com/compare/plaid-vs-tink.md)\n- [Plaid vs TrueLayer](https://www.anchorterminal.com/compare/plaid-vs-truelayer.md)\n- [Plaid vs Yapily](https://www.anchorterminal.com/compare/plaid-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": "MX Platform API vs Plaid",
        "url": ""
      }
    ],
    "description": "Plaid scores 69.8 (B) on agent readiness against MX Platform API's 62.5 (B), and leads in 6 of 7 scored categories. Both do bank accounts. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "MX Platform API B 62.5",
      "Plaid B 69.8",
      "scores"
    ],
    "h1": "MX Platform API vs Plaid",
    "image": "https://www.anchorterminal.com/assets/og/compare-mx-vs-plaid.png",
    "path": "/compare/mx-vs-plaid",
    "published": "2026-10-01",
    "section": "tools",
    "title": "MX Platform API vs Plaid for AI agents, B 62.5 vs B 69.8",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/mx-vs-plaid"
  },
  "tokens": {
    "markdown": 2300,
    "slim": 680
  },
  "version": 1
}
