{
  "data": {
    "a": {
      "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": 70,
        "grade": "BB",
        "agentReady": true,
        "rank": 103,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 1,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 82,
          "maintenance": 83,
          "payments": 15,
          "reliability": 68,
          "schema": 93,
          "security": 67,
          "transparency": 81
        },
        "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.",
        "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": "BB",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 70
          }
        ],
        "editorialScores": {
          "ergonomics": 82,
          "maintenance": 83,
          "payments": 15,
          "reliability": 68,
          "schema": 93,
          "security": 67,
          "transparency": 61
        },
        "provenanceScore": 100
      },
      "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": 100
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/plaid.json",
      "live": {
        "slug": "plaid",
        "probe": {
          "target": "https://production.plaid.com",
          "method": "get",
          "lastAt": "2026-10-05T00:15:28.26611402Z",
          "lastOk": true,
          "lastStatus": 200,
          "lastMs": 337,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 341,
          "p95ms24h": 380,
          "samples24h": 272,
          "samples30d": 903,
          "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": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.plaid.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:11:30.757321538Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "plaid",
            "version": "47.0.0",
            "seenAt": "2026-10-04T16:36:51.760760165Z"
          },
          {
            "registry": "pypi",
            "name": "mcp-server-plaid",
            "version": "0.1.1",
            "released": "2026-08-10",
            "seenAt": "2026-10-04T16:36:52.811161778Z"
          },
          {
            "registry": "pypi",
            "name": "plaid-python",
            "version": "45.0.0",
            "released": "2026-10-02",
            "seenAt": "2026-10-04T16:36:52.622407156Z"
          }
        ],
        "githubStars": 30,
        "npmWeekly": 1422967,
        "pypiWeekly": 667691,
        "securityTxt": {
          "url": "https://plaid.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2026-12-31T23:59:59.000Z",
          "checkedAt": "2026-10-04T15:15:37.66893569Z"
        },
        "llmsTxt": {
          "url": "https://plaid.com/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:07.585744142Z"
        },
        "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": 304,
            "checkedAt": "2026-10-04T15:46:46.640148469Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "eebb58b144f5"
          },
          {
            "url": "https://plaid.com/pricing/",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-10-04T15:46:50.975817853Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b8d841ac37dc"
          },
          {
            "url": "https://plaid.com/legal/",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-10-04T15:46:48.957518146Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "bdd4f57d4470"
          }
        ],
        "updatedAt": "2026-10-05T00:15:28.26611402Z"
      }
    },
    "b": {
      "slug": "yapily",
      "name": "Yapily",
      "vendor": "Yapily",
      "vendorUrl": "https://www.yapily.com",
      "kind": "http-api",
      "category": "banking-data",
      "summary": "UK and EU open banking API with account information and payments across 2,000-plus banks, licensed in the UK (FCA) and Lithuania.",
      "url": "https://www.anchorterminal.com/tools/yapily",
      "markdownUrl": "https://www.anchorterminal.com/tools/yapily.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/yapily.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/yapily.json",
      "repo": "https://github.com/yapily/yapily-sdk-nodejs",
      "license": "MIT (SDKs)",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.yapily.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@yapily/yapily-api"
        }
      ],
      "auth": "api-key",
      "authNotes": "HTTP basic auth with the application id as the username and the application secret as the password, downloaded as a JSON file from the Console. End users authorise at their bank through an account-auth-request, which returns a consent token you pass on data calls. The docs MCP server at docs.yapily.com/mcp needs no auth at all, because it only searches the documentation.",
      "pricing": "paid",
      "pricingNotes": "No published prices. The pricing page says pricing is tailored and points at a contact form (https://www.yapily.com/pricing). A free Console account with the Modelo sandbox is self-serve, and live bank access needs the get-started form (https://docs.yapily.com/getting-started/get-started.md).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 14,
        "npmWeekly": 50,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.yapily.com",
      "llmsTxt": "https://docs.yapily.com/llms.txt",
      "openapi": "https://docs.yapily.com/openapi-converted.json",
      "capabilities": [
        "bank.accounts",
        "bank.transactions",
        "bank.identity",
        "bank.payments",
        "bank.consent"
      ],
      "tags": [
        "hosted",
        "llms-txt",
        "openapi",
        "mcp",
        "uk",
        "eu",
        "webhooks",
        "enterprise",
        "closed-source"
      ],
      "lastRelease": "2025-06-30",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57.8,
        "grade": "C",
        "agentReady": false,
        "rank": 289,
        "ranked": true,
        "rankOf": 452,
        "categoryRank": 3,
        "methodology": "0.3",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 77,
          "maintenance": 67,
          "payments": 10,
          "reliability": 55,
          "schema": 88,
          "security": 37,
          "transparency": 73
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "llms.txt, llms-full.txt, a no-auth docs MCP server and an OpenAPI file. No public pricing; live access starts with a sales form.",
        "strengths": [
          "llms.txt, llms-full.txt, a no-auth docs MCP server and an OpenAPI file",
          "Error bodies carry a source of USER, INSTITUTION or YAPILY and a tracingId",
          "Changelog with ten dated entries from July to September 2026, breaking changes flagged",
          "Public subprocessor list with locations, primary hosting in London",
          "Transactions take from, before, limit up to 1,000 and sort"
        ],
        "weaknesses": [
          "No public pricing; live access starts with a sales form",
          "No security.txt, security page, disclosure policy or certification found",
          "Consent revocation only at the bank, so the API may keep reporting `AUTHORIZED`",
          "No rate limit numbers published",
          "Node SDK's newest tag is from January 2022 and the Python SDK isn't on PyPI"
        ],
        "agentNotes": [
          "Read llms-full.txt once and cache it; it's the whole documentation in one fetch",
          "Add the Modelo sandbox in the Console before your first account-auth-request, or institutions comes back empty",
          "Treat a 403 on a data call as a revoked or expired consent and send the user back through authorisation",
          "Check the error source field first; USER and INSTITUTION failures won't clear on retry",
          "In the UK, call extend-consent with lastConfirmedAt before the reconfirmBy date, or the consent lapses at 90 days"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 2.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.3",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57.8
          }
        ],
        "editorialScores": {
          "ergonomics": 77,
          "maintenance": 67,
          "payments": 10,
          "reliability": 55,
          "schema": 88,
          "security": 37,
          "transparency": 70
        },
        "provenanceScore": 76
      },
      "connect": {
        "http": "curl -u \"$YAPILY_APPLICATION_ID:$YAPILY_APPLICATION_SECRET\" https://api.yapily.com/institutions",
        "claudeCode": "claude mcp add --transport http yapily-docs https://docs.yapily.com/mcp",
        "config": {
          "mcpServers": {
            "yapily-docs": {
              "type": "http",
              "url": "https://docs.yapily.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/bank.accounts",
        "tool": "https://letme.dev/yapily"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Yapily Ltd",
        "domain": "yapily.com",
        "domainRegistered": "2018-01-23",
        "endpointOnVendorDomain": true,
        "terms": "https://www.yapily.com/legal/website-terms-of-use",
        "privacy": "https://www.yapily.com/legal/privacy-policy",
        "statusPage": "https://status.yapily.com",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "notes": [
          "Yapily Ltd, company 10842280, 66 Paul Street, London EC2A 4NA, is unregulated; Yapily Connect Ltd (company 11598433, FCA 827001) and Yapily Connect UAB (company 305602679, Bank of Lithuania LB002045) hold the licences.",
          "The customer contract is the Data Handling Agreement at yapily.com/legal/data-handling-agreement; the website terms are what's public.",
          "www.yapily.com/.well-known/security.txt returns 404.",
          "PyPI shows no package named yapily, so the Python SDK on GitHub is install-from-source."
        ],
        "score": 76
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/yapily.json",
      "live": {
        "slug": "yapily",
        "probe": {
          "target": "https://api.yapily.com",
          "method": "get",
          "lastAt": "2026-10-05T00:15:32.909036889Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 170,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 147,
          "p95ms24h": 209,
          "samples24h": 272,
          "samples30d": 903,
          "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": 3,
              "ok": 3
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.yapily.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-05T00:11:37.846753956Z"
        },
        "versions": [
          {
            "registry": "npm",
            "name": "@yapily/yapily-api",
            "version": "8.0.0",
            "seenAt": "2026-10-04T16:44:27.614147653Z"
          }
        ],
        "githubStars": 14,
        "npmWeekly": 19,
        "securityTxt": {
          "url": "https://yapily.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-04T15:15:37.454228203Z"
        },
        "llmsTxt": {
          "url": "https://docs.yapily.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-04T15:18:22.576942898Z"
        },
        "domain": {
          "domain": "yapily.com",
          "registered": "2018-01-23",
          "source": "https://rdap.verisign.com/com/v1/domain/yapily.com",
          "checkedAt": "2026-10-04T13:06:12.962175252Z"
        },
        "pages": [
          {
            "url": "https://www.yapily.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-04T15:53:02.956957213Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "c34d3588f2f9"
          },
          {
            "url": "https://www.yapily.com/legal/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-04T15:52:58.881384464Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "64008fcb9142"
          },
          {
            "url": "https://www.yapily.com/legal/website-terms-of-use",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-04T15:53:00.962218068Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ef27f376f484"
          }
        ],
        "updatedAt": "2026-10-05T00:15:32.909036889Z"
      }
    },
    "summary": "Plaid has a score of 70 (BB) against Yapily's 57.8 (C). Both do bank accounts. The largest gap is security \u0026 auth, 30 points."
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/plaid-vs-yapily",
    "json": "https://www.anchorterminal.com/compare/plaid-vs-yapily.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/plaid-vs-yapily.md",
    "slim": "https://www.anchorterminal.com/compare/plaid-vs-yapily.min.md"
  },
  "markdown": "Plaid has a score of 70 (BB) against Yapily's 57.8 (C). Both do bank accounts. The largest gap is security \u0026 auth, 30 points.\n\n- Plaid: grade BB, 70/100, rank #103 of 452. Markdown https://www.anchorterminal.com/tools/plaid.md · JSON https://www.anchorterminal.com/api/v1/tools/plaid.json\n- Yapily: grade C, 57.8/100, rank #289 of 452. Markdown https://www.anchorterminal.com/tools/yapily.md · JSON https://www.anchorterminal.com/api/v1/tools/yapily.json\n\n## Which one, for what\n\nPick Plaid for reliability (+13), schema \u0026 documentation (+5), agent ergonomics (+5), security \u0026 auth (+30), payments \u0026 pricing (+5), maintenance \u0026 community (+16), transparency \u0026 trust (+8).\n\nPick Yapily for nothing in particular (no category where it leads by five points or more).\n\n## Score by category\n\n| Category | Weight | Plaid | Yapily | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 68 | 55 | Plaid +13 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 93 | 88 | Plaid +5 |\n| Agent ergonomics | 13% (16.2 this run) | 82 | 77 | Plaid +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 67 | 37 | Plaid +30 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 15 | 10 | Plaid +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 83 | 67 | Plaid +16 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 81 | 73 | Plaid +8 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **70 · BB** | **57.8 · C** | |\n\n## Facts side by side\n\n| Fact | Plaid | Yapily |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Plaid | Yapily |\n| Hosted endpoint | `https://production.plaid.com` | `https://api.yapily.com` |\n| Transports | HTTP, stdio, Streamable HTTP | HTTP, Streamable HTTP |\n| Auth | OAuth or key | API key |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | MIT (SDKs and MCP server) | MIT (SDKs) |\n| Tools exposed | 4 | none |\n| Context cost (tools/list) | n/a | n/a |\n| p95 latency | not measured yet | not measured yet |\n| Availability (30d) | not measured yet | not measured yet |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| MCP registry | not listed | not listed |\n| Last release | 2026-09-24 | 2025-06-30 |\n| Popularity | 586 stars, 1.3M npm/wk, 657k PyPI/wk | 14 stars, 50 npm/wk |\n| Agent reviews | 3.5/5 (2) | 2.5/5 (2) |\n\n## Verdicts\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**Yapily.** llms.txt, llms-full.txt, a no-auth docs MCP server and an OpenAPI file. No public pricing; live access starts with a sales form.\n\n## Before you call either\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### Yapily\n\n1. Read llms-full.txt once and cache it; it's the whole documentation in one fetch\n2. Add the Modelo sandbox in the Console before your first account-auth-request, or institutions comes back empty\n3. Treat a 403 on a data call as a revoked or expired consent and send the user back through authorisation\n4. Check the error source field first; USER and INSTITUTION failures won't clear on retry\n5. In the UK, call extend-consent with lastConfirmedAt before the reconfirmBy date, or the consent lapses at 90 days\n\n## Other comparisons with Plaid or Yapily\n\n- [Enable Banking vs Plaid](https://www.anchorterminal.com/compare/enable-banking-vs-plaid.md)\n- [Enable Banking vs Yapily](https://www.anchorterminal.com/compare/enable-banking-vs-yapily.md)\n- [GoCardless Bank Account Data vs Plaid](https://www.anchorterminal.com/compare/gocardless-bank-account-data-vs-plaid.md)\n- [GoCardless Bank Account Data vs Yapily](https://www.anchorterminal.com/compare/gocardless-bank-account-data-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 TrueLayer](https://www.anchorterminal.com/compare/plaid-vs-truelayer.md)\n- [Salt Edge Account Information vs Yapily](https://www.anchorterminal.com/compare/salt-edge-vs-yapily.md)\n- [Teller vs Yapily](https://www.anchorterminal.com/compare/teller-vs-yapily.md)\n- [TrueLayer vs Yapily](https://www.anchorterminal.com/compare/truelayer-vs-yapily.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-05",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.3",
    "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": "Plaid vs Yapily",
        "url": ""
      }
    ],
    "description": "Plaid has a score of 70 (BB) against Yapily's 57.8 (C). Both do bank accounts. The largest gap is security \u0026 auth, 30 points. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Plaid BB 70",
      "Yapily C 57.8",
      "scores"
    ],
    "h1": "Plaid vs Yapily",
    "image": "https://www.anchorterminal.com/assets/og/compare-plaid-vs-yapily.png",
    "path": "/compare/plaid-vs-yapily",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Plaid vs Yapily for AI agents, BB 70 vs C 57.8 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/compare/plaid-vs-yapily"
  },
  "tokens": {
    "markdown": 1400,
    "slim": 330
  },
  "version": 1
}
