{
  "data": {
    "category": {
      "area": "domain-data",
      "capabilities": [
        "bank.accounts",
        "bank.transactions",
        "bank.identity",
        "bank.payments",
        "bank.consent"
      ],
      "description": "APIs that connect to a person's bank accounts with their consent to read balances and transactions, check identity and income, and start payments. Compared on country coverage, the consent flow, data freshness and price per connection.",
      "indexed": [
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cz-agents-adis.json",
          "kind": "mcp",
          "name": "adis",
          "slug": "cz-agents-adis",
          "url": "https://www.anchorterminal.com/tools/cz-agents-adis"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/bankstatementsheet-bank-statement-sheet-mcp.json",
          "kind": "mcp",
          "name": "Bank Statement Sheet",
          "slug": "bankstatementsheet-bank-statement-sheet-mcp",
          "url": "https://www.anchorterminal.com/tools/bankstatementsheet-bank-statement-sheet-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/banksync-mcp.json",
          "kind": "mcp",
          "name": "BankSync",
          "slug": "banksync-mcp",
          "url": "https://www.anchorterminal.com/tools/banksync-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/deepledger-mcp.json",
          "kind": "mcp",
          "name": "DeepLedger — AI staff accountant for QuickBooks",
          "slug": "deepledger-mcp",
          "url": "https://www.anchorterminal.com/tools/deepledger-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/lovie-company-formation.json",
          "kind": "mcp",
          "name": "Lovie Company Formation",
          "slug": "lovie-company-formation",
          "url": "https://www.anchorterminal.com/tools/lovie-company-formation"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/rightcard-mcp.json",
          "kind": "mcp",
          "name": "RightCard",
          "slug": "rightcard-mcp",
          "url": "https://www.anchorterminal.com/tools/rightcard-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/shareseer-mcp.json",
          "kind": "mcp",
          "name": "ShareSEER",
          "slug": "shareseer-mcp",
          "url": "https://www.anchorterminal.com/tools/shareseer-mcp"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/p-e-agent-transaction-guard.json",
          "kind": "mcp",
          "name": "Tollary Agent Transaction Guard",
          "slug": "p-e-agent-transaction-guard",
          "url": "https://www.anchorterminal.com/tools/p-e-agent-transaction-guard"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/traql-mcp-server.json",
          "kind": "mcp",
          "name": "traql",
          "slug": "traql-mcp-server",
          "url": "https://www.anchorterminal.com/tools/traql-mcp-server"
        },
        {
          "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/voyager-mcp.json",
          "kind": "mcp",
          "name": "Voyager Starknet Explorer",
          "slug": "voyager-mcp",
          "url": "https://www.anchorterminal.com/tools/voyager-mcp"
        }
      ],
      "indexedCount": 10,
      "json": "https://www.anchorterminal.com/categories/banking-data.json",
      "name": "Bank data \u0026 open banking",
      "slug": "banking-data",
      "test": "A sandbox user connects an account, the agent reads balances and categorised transactions, and the consent is revoked. We check coverage, the consent flow, data quality and what revocation does.",
      "title": "Open banking and bank data APIs for AI agents",
      "toolCount": 7,
      "tools": [
        "plaid",
        "truelayer",
        "yapily",
        "enable-banking",
        "salt-edge",
        "teller",
        "gocardless-bank-account-data"
      ],
      "url": "https://www.anchorterminal.com/categories/banking-data"
    },
    "tools": [
      {
        "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:57:26.085437319Z",
            "lastOk": true,
            "lastStatus": 200,
            "lastMs": 330,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 341,
            "p95ms24h": 380,
            "samples24h": 272,
            "samples30d": 911,
            "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": 11,
                "ok": 11
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.plaid.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-05T00:54:01.935276979Z"
          },
          "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:57:26.085437319Z"
        }
      },
      {
        "slug": "truelayer",
        "name": "TrueLayer",
        "vendor": "TrueLayer",
        "vendorUrl": "https://truelayer.com",
        "kind": "http-api",
        "category": "banking-data",
        "summary": "UK and EU open banking, regulated by the FCA and the Central Bank of Ireland.",
        "url": "https://www.anchorterminal.com/tools/truelayer",
        "markdownUrl": "https://www.anchorterminal.com/tools/truelayer.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/truelayer.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/truelayer.json",
        "repo": "https://github.com/TrueLayer/truelayer-signing",
        "license": "Apache-2.0 or MIT (signing libraries)",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://api.truelayer.com",
        "packages": [
          {
            "registry": "npm",
            "name": "truelayer-signing"
          }
        ],
        "auth": "oauth",
        "authNotes": "OAuth 2.0 from the Console's client id and secret. Data API v3 takes a client_credentials token with scope `data` from https://auth.truelayer.com/connect/token (auth.truelayer-sandbox.com in sandbox); the end user then authorises on a TrueLayer-hosted page. Data API v1 uses the authorisation code flow with refresh tokens. Payments API v3 also needs every request signed with an EC secp521r1 private key (Tl-Signature header) whose public half is uploaded to the Console.",
        "pricing": "paid",
        "pricingNotes": "No price list on the site (truelayer.com/pricing returns 404, checked 2026-09-30) and none in the docs or llms.txt (https://docs.truelayer.com/llms.txt). Sign-up in the Console is self-serve and the sandbox is free (https://docs.truelayer.com/docs/quickstart-make-a-payment). Live data and payments are priced by contract.",
        "priceSummary": "Paid",
        "where": "hosted",
        "x402": {
          "level": "no",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": 23,
          "npmWeekly": 16811,
          "pypiWeekly": null,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.truelayer.com",
        "llmsTxt": "https://docs.truelayer.com/llms.txt",
        "openapi": "https://docs.truelayer.com/openapi/",
        "capabilities": [
          "bank.accounts",
          "bank.transactions",
          "bank.identity",
          "bank.payments",
          "bank.consent"
        ],
        "tags": [
          "hosted",
          "llms-txt",
          "openapi",
          "oauth",
          "webhooks",
          "uk",
          "eu",
          "enterprise",
          "closed-source"
        ],
        "lastRelease": "2026-06-25",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 62.4,
          "grade": "B",
          "agentReady": false,
          "rank": 217,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 2,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 73,
            "maintenance": 38,
            "payments": 10,
            "reliability": 71,
            "schema": 89,
            "security": 66,
            "transparency": 66
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "FCA and Central Bank of Ireland authorised, holding the AISP and PISP licences itself. No public pricing anywhere on the site or in the docs.",
          "strengths": [
            "FCA and Central Bank of Ireland authorised, holding the AISP and PISP licences itself",
            "Data API errors list 23 codes, each marked retryable or not",
            "Markdown twin of every docs page, llms.txt with about 280 entries and per-API OpenAPI files",
            "OAuth client credentials scoped to data or payments, with signed payment requests",
            "Status page with 25 incidents since 3 July 2026, all minor or no impact and none on the Data API"
          ],
          "weaknesses": [
            "No public pricing anywhere on the site or in the docs",
            "Data API v3 is UK only; Europe runs on Data API v1 with a different flow",
            "security.txt expired on 6 May 2026 and hadn't been renewed by 1 October",
            "No changelog entry since 23 April 2026 and no SDK release since 25 June 2026",
            "TrueLayer's own rate limits aren't published, only the banks' 4-a-day cap"
          ],
          "agentNotes": [
            "Use auth.truelayer-sandbox.com and api.truelayer-sandbox.com with a separate sandbox client; live credentials don't work there",
            "Send the user's IP when they're present, or a bank allows 4 calls a day per account",
            "Check the retry column of the Data API error table before retrying; codes marked No need the user or a config fix",
            "Set data_access_type to one_time for a single read and skip the 90-day reauthorisation",
            "Append .md to any docs URL to get the page as Markdown"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "B",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 62.4
            }
          ],
          "editorialScores": {
            "ergonomics": 73,
            "maintenance": 38,
            "payments": 10,
            "reliability": 71,
            "schema": 89,
            "security": 66,
            "transparency": 37
          },
          "provenanceScore": 95
        },
        "connect": {
          "http": "curl -X POST https://auth.truelayer-sandbox.com/connect/token \\\n  -d \"grant_type=client_credentials\u0026client_id=$TRUELAYER_CLIENT_ID\u0026client_secret=$TRUELAYER_CLIENT_SECRET\u0026scope=data\""
        },
        "letme": {
          "capability": "https://letme.dev/bank.accounts",
          "tool": "https://letme.dev/truelayer"
        },
        "area": "domain-data",
        "provenance": {
          "legalEntity": "TrueLayer Limited",
          "domain": "truelayer.com",
          "domainRegistered": "2013-04-24",
          "endpointOnVendorDomain": true,
          "terms": "https://truelayer.com/legal/enduser_tos/",
          "privacy": "https://truelayer.com/legal/enduser_tos/#consumer-privacy-notice",
          "statusPage": "https://status.truelayer.com",
          "changelog": "https://docs.truelayer.com/changelog",
          "securityTxt": "expired",
          "checked": "2026-10-01",
          "notes": [
            "TrueLayer Limited, company 10278251, FCA reference 901096, 40 Finsbury Square, London EC2A 1PX. TrueLayer (Ireland) Limited, company 671615, Central Bank of Ireland C433487, covers the EEA.",
            "The public legal page carries end-user terms updated 12 May 2026; the developer contract is agreed in the Console and isn't published.",
            "security.txt expired 2026-05-06 and was still expired on 2026-10-01; it points to a disclosure programme and a bug bounty on Intigriti.",
            "The docs changelog is monthly, newest entry 23 April 2026.",
            "rdap.org returned 403; the registration date is from Verisign's RDAP server."
          ],
          "score": 95
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/truelayer.json",
        "live": {
          "slug": "truelayer",
          "probe": {
            "target": "https://api.truelayer.com",
            "method": "get",
            "lastAt": "2026-10-05T00:57:29.674172767Z",
            "lastOk": true,
            "lastStatus": 401,
            "lastMs": 32,
            "lastNote": "asks for credentials",
            "authRequired": true,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 36,
            "p95ms24h": 112,
            "samples24h": 272,
            "samples30d": 911,
            "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": 11,
                "ok": 11
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.truelayer.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-05T00:54:07.361648476Z"
          },
          "versions": [
            {
              "registry": "github",
              "name": "TrueLayer/truelayer-signing",
              "version": "java-v0.3.0",
              "released": "2026-06-25",
              "seenAt": "2026-10-04T16:42:18.908461182Z"
            },
            {
              "registry": "npm",
              "name": "truelayer-signing",
              "version": "0.2.3",
              "seenAt": "2026-10-04T16:42:18.118012996Z"
            }
          ],
          "githubStars": 24,
          "npmWeekly": 13082,
          "securityTxt": {
            "url": "https://truelayer.com/.well-known/security.txt",
            "state": "expired",
            "expires": "2026-05-06T22:59:00.000Z",
            "checkedAt": "2026-10-04T15:15:47.212328885Z"
          },
          "llmsTxt": {
            "url": "https://docs.truelayer.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:18:18.56065131Z"
          },
          "domain": {
            "domain": "truelayer.com",
            "registered": "2013-04-24",
            "source": "https://rdap.verisign.com/com/v1/domain/truelayer.com",
            "checkedAt": "2026-10-04T13:04:41.916298803Z"
          },
          "pages": [
            {
              "url": "https://docs.truelayer.com/changelog",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-04T15:44:09.902710707Z",
              "changedAt": "2026-10-04T15:44:09.902710707Z",
              "fingerprint": "93f31b6cb9db"
            },
            {
              "url": "https://truelayer.com/legal/enduser_tos/",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:48:31.488091298Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "29790d7333ca"
            }
          ],
          "updatedAt": "2026-10-05T00:57:29.674172767Z"
        }
      },
      {
        "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:57:31.217300771Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 139,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 147,
            "p95ms24h": 209,
            "samples24h": 272,
            "samples30d": 911,
            "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": 11,
                "ok": 11
              }
            ]
          },
          "vendorStatus": {
            "page": "https://status.yapily.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-05T00:54:08.674728588Z"
          },
          "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:57:31.217300771Z"
        }
      },
      {
        "slug": "enable-banking",
        "name": "Enable Banking",
        "vendor": "Enable Banking",
        "vendorUrl": "https://enablebanking.com",
        "kind": "http-api",
        "category": "banking-data",
        "summary": "Finnish open banking API (FIN-FSA registered AISP) covering 2,700-plus banks in about 30 European countries, with account information and payment initiation under Enable Banking's licence or your own eIDAS certificates.",
        "url": "https://www.anchorterminal.com/tools/enable-banking",
        "markdownUrl": "https://www.anchorterminal.com/tools/enable-banking.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/enable-banking.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/enable-banking.json",
        "repo": "https://github.com/enablebanking/enablebanking-api-samples",
        "license": "Apache-2.0 (code samples)",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://api.enablebanking.com",
        "packages": [],
        "auth": "mixed",
        "authNotes": "Mint an RS256 JWT with the application's private key (kid is the application id, iss enablebanking.com, aud api.enablebanking.com, at most 24 hours) and send it as a Bearer token. The end user authorises at the bank through POST /auth, and the returned code becomes a session with POST /sessions. No client secret: the private key is the credential, so keep it in a secret store.",
        "pricing": "paid",
        "pricingNotes": "Volume-based on the number of accounts accessed and payments made a month, with a minimum monthly invoice that includes a quota of accounts and payments; figures on request from info@enablebanking.com (https://enablebanking.com/docs/faq/). You can create an account and use both the sandbox and production before signing a contract; a production application stays pending until the contract is done or you whitelist your own accounts, which activates it in restricted mode for those accounts only (https://enablebanking.com/docs/api/). Payment initiation in production is only switched on for companies holding a PISP licence.",
        "priceSummary": "Paid",
        "where": "hosted",
        "x402": {
          "level": "no",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": null,
          "npmWeekly": null,
          "pypiWeekly": null,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://enablebanking.com/docs/api/reference/",
        "capabilities": [
          "bank.accounts",
          "bank.transactions",
          "bank.payments",
          "bank.consent"
        ],
        "tags": [
          "hosted",
          "eu",
          "closed-source",
          "enterprise"
        ],
        "lastRelease": "2026-09-09",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 47.3,
          "grade": "D",
          "agentReady": false,
          "rank": 384,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 4,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 67,
            "maintenance": 67,
            "payments": 20,
            "reliability": 33,
            "schema": 54,
            "security": 47,
            "transparency": 51
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "Restricted mode gives live data for your own whitelisted accounts before any contract. No public prices and a minimum monthly invoice.",
          "strengths": [
            "Restricted mode gives live data for your own whitelisted accounts before any contract",
            "Private-key JWT auth, at most 24 hours, with no shared secret on the wire",
            "continuation_key pagination with date and status filters on transactions",
            "DELETE /sessions closes the bank consent where the bank allows",
            "Monthly changelog posts, the newest on 9 September 2026"
          ],
          "weaknesses": [
            "No public prices and a minimum monthly invoice",
            "No public status page; bank disruptions sit behind the Control Panel login",
            "No OpenAPI file, llms.txt or official SDK, only samples",
            "No public terms, security.txt, disclosure policy or certification found",
            "No idempotency guidance for payments"
          ],
          "agentNotes": [
            "Mint one JWT per run with exp under 24 hours; don't reuse a long-lived token across sessions",
            "Test against the Mock ASPSP first; bank sandboxes fail for reasons that aren't yours",
            "Pass the bank's maximum_consent_validity as valid_until, usually 180 days, or you'll be back at the bank sooner",
            "On 429 ASPSP_RATE_LIMIT_EXCEEDED stop until tomorrow; it's the bank's 4-a-day cap",
            "Follow continuation_key until it's absent to get every transaction"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 3,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "D",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 47.3
            }
          ],
          "editorialScores": {
            "ergonomics": 67,
            "maintenance": 67,
            "payments": 20,
            "reliability": 33,
            "schema": 54,
            "security": 47,
            "transparency": 35
          },
          "provenanceScore": 66
        },
        "connect": {
          "http": "curl \"https://api.enablebanking.com/aspsps?country=FI\" -H \"Authorization: Bearer $ENABLE_BANKING_JWT\""
        },
        "letme": {
          "capability": "https://letme.dev/bank.accounts",
          "tool": "https://letme.dev/enable-banking"
        },
        "area": "domain-data",
        "provenance": {
          "legalEntity": "Enable Banking",
          "domain": "enablebanking.com",
          "domainRegistered": "2018-04-23",
          "endpointOnVendorDomain": true,
          "terms": "",
          "privacy": "https://enablebanking.com/privacy-policy",
          "statusPage": "",
          "changelog": "https://enablebanking.com/blog",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "notes": [
            "The home page describes the company as a registered Account Information Service Provider regulated by the Finnish Financial Supervisory Authority (FIN-FSA). The privacy policy page renders only with JavaScript, so we couldn't read the registered company name or business ID from it.",
            "No terms of service page was found; the FAQ refers to a contract agreed by email.",
            "The blog carries monthly changelog posts; there's no status page we could find.",
            "rdap.org returned 403; the registration date is from Verisign's RDAP server."
          ],
          "score": 66
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/enable-banking.json",
        "live": {
          "slug": "enable-banking",
          "probe": {
            "target": "https://api.enablebanking.com",
            "method": "get",
            "lastAt": "2026-10-05T00:57:19.873768848Z",
            "lastOk": true,
            "lastStatus": 200,
            "lastMs": 375,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 399,
            "p95ms24h": 741,
            "samples24h": 272,
            "samples30d": 911,
            "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": 11,
                "ok": 11
              }
            ]
          },
          "githubStars": 68,
          "securityTxt": {
            "url": "https://enablebanking.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:55.325774876Z"
          },
          "domain": {
            "domain": "enablebanking.com",
            "registered": "2018-04-23",
            "source": "https://rdap.verisign.com/com/v1/domain/enablebanking.com",
            "checkedAt": "2026-10-04T13:08:31.314512732Z"
          },
          "pages": [
            {
              "url": "https://enablebanking.com/blog",
              "kind": "changelog",
              "status": 200,
              "checkedAt": "2026-10-04T15:44:28.095932355Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "04abb839753e"
            },
            {
              "url": "https://enablebanking.com/privacy-policy",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:44:30.341971538Z",
              "changedAt": "2026-10-04T15:44:30.341971538Z",
              "fingerprint": "b89c0791c950"
            }
          ],
          "updatedAt": "2026-10-05T00:57:19.873768848Z"
        }
      },
      {
        "slug": "salt-edge",
        "name": "Salt Edge Account Information",
        "vendor": "Salt Edge",
        "vendorUrl": "https://www.saltedge.com",
        "kind": "http-api",
        "category": "banking-data",
        "summary": "Open banking aggregator for account data and payments across international banks.",
        "url": "https://www.anchorterminal.com/tools/salt-edge",
        "markdownUrl": "https://www.anchorterminal.com/tools/salt-edge.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/salt-edge.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/salt-edge.json",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://www.saltedge.com/api/v6",
        "packages": [],
        "auth": "api-key",
        "authNotes": "Every request carries App-id and Secret headers from the dashboard. Live applications must also sign requests, with an Expires-at header (UNIX time, at most an hour ahead) and a Signature header, the base64 SHA256 signature of `Expires-at|method|url|body` made with your private key. Test and Pending applications can skip signing. End users authorise through the Connect widget at a connect_url you create per customer.",
        "pricing": "paid",
        "pricingNotes": "No price list. The pricing page returns 404 and the product page points at the dashboard sign-up and a sales form (https://www.saltedge.com/products/account_information). A new dashboard application is in Test status and can only connect to Fake providers and bank sandboxes; moving to Live needs approval, after which rate limits for parallel connections are agreed with a project manager (https://docs.saltedge.com/v6/api_reference).",
        "priceSummary": "Paid",
        "where": "hosted",
        "x402": {
          "level": "no",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": null,
          "npmWeekly": null,
          "pypiWeekly": null,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.saltedge.com/v6/",
        "capabilities": [
          "bank.accounts",
          "bank.transactions",
          "bank.identity",
          "bank.payments",
          "bank.consent"
        ],
        "tags": [
          "hosted",
          "uk",
          "eu",
          "closed-source",
          "enterprise",
          "webhooks"
        ],
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 46.9,
          "grade": "D",
          "agentReady": false,
          "rank": 393,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 5,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 67,
            "maintenance": 13,
            "payments": 10,
            "reliability": 52,
            "schema": 52,
            "security": 46,
            "transparency": 77
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "5,000-plus banks in more than 50 countries, by Salt Edge's own count. Rate limit exceeded returns HTTP 406 RateLimitExceeded, not 429.",
          "strengths": [
            "5,000-plus banks in more than 50 countries, by Salt Edge's own count",
            "per_page up to 1,000, from_id cursors and filters on account, dates and pending",
            "Consent scopes and period_days, with PUT /consents/{id}/revoke to end one",
            "Fake providers for password, OAuth and SMS flows, plus your own CSV data",
            "Privacy policy names its processors and countries and keeps EU data in the EU"
          ],
          "weaknesses": [
            "Rate limit exceeded returns HTTP 406 RateLimitExceeded, not 429",
            "No public pricing; parallel connection limits are negotiated",
            "No official SDKs, OpenAPI file, llms.txt or changelog",
            "No security.txt, security page, disclosure policy or certification found",
            "Status history readable only for the last fortnight; the JSON feed is blocked by robots.txt"
          ],
          "agentNotes": [
            "Treat HTTP 406 with error_class RateLimitExceeded as a rate limit and back off; it isn't a content-negotiation error",
            "Start with fakebank_simple_xf in country XF; it needs no bank sandbox",
            "Sign requests from the start even in Test, so the move to Live doesn't change your client",
            "Follow next_page from the meta block rather than building from_id URLs yourself",
            "Revoke with PUT /api/v6/consents/{consent_id}/revoke when the user is done"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 2.5,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "D",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 46.9
            }
          ],
          "editorialScores": {
            "ergonomics": 67,
            "maintenance": 13,
            "payments": 10,
            "reliability": 52,
            "schema": 52,
            "security": 46,
            "transparency": 73
          },
          "provenanceScore": 80
        },
        "connect": {
          "http": "curl https://www.saltedge.com/api/v6/countries -H \"App-id: $SALTEDGE_APP_ID\" -H \"Secret: $SALTEDGE_SECRET\" -H \"Accept: application/json\""
        },
        "letme": {
          "capability": "https://letme.dev/bank.accounts",
          "tool": "https://letme.dev/salt-edge"
        },
        "area": "domain-data",
        "provenance": {
          "legalEntity": "Salt Edge Limited",
          "domain": "saltedge.com",
          "domainRegistered": "2013-12-16",
          "endpointOnVendorDomain": true,
          "terms": "https://www.saltedge.com/legal/terms_of_service",
          "privacy": "https://www.saltedge.com/legal/privacy_policy",
          "statusPage": "https://www.saltedgestatus.com/",
          "changelog": "",
          "securityTxt": "none",
          "checked": "2026-10-01",
          "notes": [
            "Salt Edge Limited, registered in England and Wales, company 11178811, FCA 822499, is a subsidiary of Salt Edge Inc., which the privacy policy places in Canada, with offices in Canada, the UK and Moldova.",
            "The privacy policy was last updated 14 September 2023.",
            "The domain's registration expires 2026-12-16 per Verisign's RDAP record in the 30 September check; rdap.org returned 403.",
            "www.saltedge.com/.well-known/security.txt returned 404 in the 30 September check, and www.saltedge.com/security returns 404.",
            "No changelog found; product news appears on blog.saltedge.com."
          ],
          "score": 80
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/salt-edge.json",
        "live": {
          "slug": "salt-edge",
          "probe": {
            "target": "https://www.saltedge.com/api/v6",
            "method": "get",
            "lastAt": "2026-10-05T00:57:27.748284436Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 178,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 117,
            "p95ms24h": 196,
            "samples24h": 272,
            "samples30d": 911,
            "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": 11,
                "ok": 11
              }
            ]
          },
          "vendorStatus": {
            "page": "https://www.saltedgestatus.com",
            "indicator": "none",
            "summary": "All Systems Operational",
            "checkedAt": "2026-10-05T00:54:04.352719138Z"
          },
          "securityTxt": {
            "url": "https://saltedge.com/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:50.514458459Z"
          },
          "domain": {
            "domain": "saltedge.com",
            "registered": "2013-12-16",
            "source": "https://rdap.verisign.com/com/v1/domain/saltedge.com",
            "checkedAt": "2026-10-04T13:05:42.743352908Z"
          },
          "pages": [
            {
              "url": "https://www.saltedge.com/legal/privacy_policy",
              "kind": "privacy",
              "status": 200,
              "checkedAt": "2026-10-04T15:52:03.768552244Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "98095fe138d1"
            },
            {
              "url": "https://www.saltedge.com/legal/terms_of_service",
              "kind": "terms",
              "status": 200,
              "checkedAt": "2026-10-04T15:52:05.993380052Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "d4d5435c5ee6"
            }
          ],
          "updatedAt": "2026-10-05T00:57:27.748284436Z"
        }
      },
      {
        "slug": "teller",
        "name": "Teller",
        "vendor": "Teller",
        "vendorUrl": "https://teller.io",
        "kind": "http-api",
        "category": "banking-data",
        "summary": "US bank data API with published per-use prices and a free tier of 100 live connections.",
        "url": "https://www.anchorterminal.com/tools/teller",
        "markdownUrl": "https://www.anchorterminal.com/tools/teller.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/teller.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/teller.json",
        "repo": "https://github.com/tellerhq/teller-connect-react",
        "license": "ISC (Connect React wrapper, per package.json)",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://api.teller.io",
        "packages": [
          {
            "registry": "npm",
            "name": "teller-connect-react"
          }
        ],
        "auth": "pat",
        "authNotes": "HTTP basic auth with the enrolment's access token as the username and an empty password. Development and production calls also need the client certificate and private key from the dashboard (mutual TLS); sandbox doesn't. Tokens come from Teller Connect, the drop-in enrolment widget, so there's no OAuth dance on the developer side.",
        "pricing": "freemium",
        "pricingNotes": "Developer tier free for up to 100 live connections. Production is per use. Verify $1.50 per account, Balance $0.10 per API call, Transactions $0.30 per enrolment per month, Identity $1.75 per API call. Enterprise is custom volume pricing (https://teller.io/). Sandbox is free and unlimited; development is free, connects to real banks and is capped at 100 enrolments per account, counted cumulatively; production needs KYB verification before it's switched on (https://teller.io/docs/guides/environments).",
        "priceSummary": "$0.10 / call",
        "where": "hosted",
        "x402": {
          "level": "no",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": 10,
          "npmWeekly": null,
          "pypiWeekly": null,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://teller.io/docs",
        "capabilities": [
          "bank.accounts",
          "bank.transactions",
          "bank.identity",
          "bank.payments",
          "bank.consent"
        ],
        "tags": [
          "hosted",
          "freemium",
          "free-tier",
          "usage-priced",
          "webhooks",
          "closed-source"
        ],
        "lastRelease": "2025-03-18",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 43,
          "grade": "E",
          "agentReady": false,
          "rank": 410,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 6,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 80,
            "maintenance": 8,
            "payments": 40,
            "reliability": 23,
            "schema": 44,
            "security": 49,
            "transparency": 45
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "Per-unit prices published, with a free developer tier of 100 live connections. US only.",
          "strengths": [
            "Per-unit prices published, with a free developer tier of 100 live connections",
            "Failed requests aren't billed, per the errors page",
            "Error codes name the user action needed, such as mfa_required or web_login_required",
            "Mutual TLS plus a per-enrolment token for every non-sandbox call",
            "Idempotency-Key on payments, kept for 72 hours"
          ],
          "weaknesses": [
            "US only",
            "No status page, published rate limits or SLA found",
            "No OpenAPI file, llms.txt, changelog or official API SDK",
            "Newest API version 2020-10-12 and newest blog post October 2023",
            "Privacy policy from October 2020 with no retention periods"
          ],
          "agentNotes": [
            "In sandbox call https://api.teller.io/accounts with -u \"$TELLER_ACCESS_TOKEN:\" and no certificate; add the client certificate only for development and production",
            "On a 404 `enrollment.disconnected.*` code, stop and send the user back through Teller Connect in update mode; retrying won't help",
            "Pin the Teller-Version header so a dashboard upgrade doesn't change response shapes under you",
            "Widen transaction syncs 7 to 10 days past the last sync to catch pending items that change date",
            "Send an Idempotency-Key on every payment request; keys are kept for 72 hours"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 2,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 43
            }
          ],
          "editorialScores": {
            "ergonomics": 80,
            "maintenance": 8,
            "payments": 40,
            "reliability": 23,
            "schema": 44,
            "security": 49,
            "transparency": 35
          },
          "provenanceScore": 55
        },
        "connect": {
          "http": "curl https://api.teller.io/accounts -u \"$TELLER_ACCESS_TOKEN:\""
        },
        "letme": {
          "capability": "https://letme.dev/bank.accounts",
          "tool": "https://letme.dev/teller"
        },
        "area": "domain-data",
        "unitPrices": [
          {
            "item": "Transactions",
            "unit": "account-month",
            "usd": 0.3,
            "note": "Per enrolment per month"
          },
          {
            "item": "Balance",
            "unit": "call",
            "usd": 0.1
          },
          {
            "item": "Identity",
            "unit": "call",
            "usd": 1.75
          },
          {
            "item": "Verify",
            "unit": "record",
            "usd": 1.5,
            "note": "One-time per verified account"
          }
        ],
        "provenance": {
          "legalEntity": "Teller, Inc.",
          "domain": "teller.io",
          "domainRegistered": "",
          "endpointOnVendorDomain": true,
          "terms": "https://teller.io/legal/developer/terms",
          "privacy": "https://teller.io/legal/developer/privacy",
          "statusPage": "",
          "changelog": "",
          "securityTxt": "none",
          "checked": "2026-09-30",
          "notes": [
            "Teller, Inc. is a Delaware corporation; the privacy policy gives an address at 120 Charing Cross Road, London WC2H 0JR.",
            "The legal index was last revised 16 February 2021.",
            "status.teller.io doesn't resolve, and we found no other status page.",
            "The .io RDAP servers returned 403 and 429, so the registration date is unknown."
          ],
          "score": 55
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/teller.json",
        "live": {
          "slug": "teller",
          "probe": {
            "target": "https://api.teller.io",
            "method": "get",
            "lastAt": "2026-10-05T00:57:29.151482144Z",
            "lastOk": true,
            "lastStatus": 200,
            "lastMs": 444,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 454,
            "p95ms24h": 529,
            "samples24h": 272,
            "samples30d": 911,
            "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": 11,
                "ok": 11
              }
            ]
          },
          "versions": [
            {
              "registry": "npm",
              "name": "teller-connect-react",
              "version": "0.2.3",
              "seenAt": "2026-10-04T16:41:23.140344876Z"
            }
          ],
          "githubStars": 10,
          "npmWeekly": 1316,
          "securityTxt": {
            "url": "https://teller.io/.well-known/security.txt",
            "state": "none",
            "checkedAt": "2026-10-04T15:15:49.945127696Z"
          },
          "domain": {
            "domain": "teller.io",
            "checkedAt": "2026-10-04T13:09:09.691296487Z"
          },
          "pages": [
            {
              "url": "https://teller.io/legal/developer/privacy",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:48:19.113417347Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "10ac794a00cf"
            },
            {
              "url": "https://teller.io/legal/developer/terms",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-04T15:48:21.263765203Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "99084d856dfa"
            }
          ],
          "updatedAt": "2026-10-05T00:57:29.151482144Z"
        }
      },
      {
        "slug": "gocardless-bank-account-data",
        "name": "GoCardless Bank Account Data",
        "vendor": "GoCardless",
        "vendorUrl": "https://gocardless.com/bank-account-data/",
        "kind": "http-api",
        "category": "banking-data",
        "summary": "The former Nordigen account information API, now sold by GoCardless.",
        "url": "https://www.anchorterminal.com/tools/gocardless-bank-account-data",
        "markdownUrl": "https://www.anchorterminal.com/tools/gocardless-bank-account-data.md",
        "slimMarkdownUrl": "https://www.anchorterminal.com/tools/gocardless-bank-account-data.min.md",
        "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/gocardless-bank-account-data.json",
        "repo": "https://github.com/nordigen/nordigen-python",
        "license": "MIT (client libraries, unmaintained)",
        "transports": [
          "http"
        ],
        "remoteUrl": "https://bankaccountdata.gocardless.com/api/v2",
        "packages": [
          {
            "registry": "npm",
            "name": "nordigen-node"
          },
          {
            "registry": "pypi",
            "name": "nordigen"
          }
        ],
        "auth": "api-key",
        "authNotes": "POST /api/v2/token/new/ with a secret_id and secret_key from the Bank Account Data portal returns a JWT pair, an access token good for 24 hours and a refresh token for 30 days. Send the access token as a Bearer header. End users authorise at their bank through a requisition link; there's no OAuth on the developer side.",
        "pricing": "paid",
        "pricingNotes": "No price list on gocardless.com. The pricing page covers Direct Debit only, and the Bank Account Data pages link to a contact form and the general GoCardless sign-up (https://gocardless.com/pricing/). The quickstart sends new users to a sandbox account at https://manage-sandbox.gocardless.com/sign-up, and the overview says new accounts start as non-verified, with verification on a paid plan (https://docs.gocardless.com/docs/bank-account-data). A Bank Account Data Service Terms PDF dated January 2026 is linked from the merchant terms (https://gocardless.com/legal/merchants/). The Nordigen-era free plan isn't mentioned anywhere on the current site.",
        "priceSummary": "Paid",
        "where": "hosted",
        "x402": {
          "level": "no",
          "endpoints": []
        },
        "toolCount": null,
        "popularity": {
          "githubStars": 88,
          "npmWeekly": 28608,
          "pypiWeekly": 4262,
          "asOf": "2026-09-30"
        },
        "docsUrl": "https://docs.gocardless.com/docs/bank-account-data",
        "llmsTxt": "https://docs.gocardless.com/llms.txt",
        "capabilities": [
          "bank.accounts",
          "bank.transactions",
          "bank.consent"
        ],
        "tags": [
          "hosted",
          "eu",
          "uk",
          "closed-source",
          "enterprise"
        ],
        "lastRelease": "2025-04-07",
        "graded": true,
        "anchor": {
          "graded": true,
          "score": 41.9,
          "grade": "E",
          "agentReady": false,
          "rank": 416,
          "ranked": true,
          "rankOf": 452,
          "categoryRank": 7,
          "methodology": "0.3",
          "run": "2026-10-01",
          "scores": {
            "ergonomics": 57,
            "maintenance": 3,
            "payments": 10,
            "reliability": 44,
            "schema": 54,
            "security": 50,
            "transparency": 55
          },
          "pending": [
            "performance",
            "tasks"
          ],
          "assessment": {
            "confidence": "medium",
            "date": "2026-10-01"
          },
          "negative": 0,
          "verdict": "UK plus every PSD2 country, up to 24 months of history, one API shape for all of them. No public price and no confirmed free plan.",
          "strengths": [
            "UK plus every PSD2 country, up to 24 months of history, one API shape for all of them",
            "Rate limit headers on every response, per client and per account, with reset times",
            "Read-only by design, with access_scope and history limits per end user agreement",
            "Free sandbox bank SANDBOXFINANCE_SFIN0000",
            "Error codes listed by HTTP status with a summary and detail body"
          ],
          "weaknesses": [
            "No public price and no confirmed free plan",
            "Official SDKs unmaintained since April 2025, and no changelog",
            "No public OpenAPI file for this API; the portal's Swagger UI blocks crawlers",
            "The GoCardless status page has no Bank Account Data component and no incidents for it since February 2025",
            "Product service terms PDF returned 404 and no subprocessor list was found"
          ],
          "agentNotes": [
            "Cache the access token for its 24 hours and use /api/v2/token/refresh/ rather than minting a new pair each run",
            "Create the end user agreement before the requisition when you need other than 90 days of history or access",
            "Read the per-account rate limit headers; on 429 wait for the account reset time, since some banks allow 4 calls a day",
            "Poll /api/v2/accounts/{id}/ until status is READY before asking for transactions",
            "Call the REST endpoints directly; the Nordigen SDKs still install but get no fixes"
          ],
          "metrics": {
            "kind": "remote",
            "measured": false
          },
          "reviewCount": 2,
          "avgRating": 2,
          "history": [
            {
              "basis": "public evidence",
              "confidence": "medium",
              "grade": "E",
              "methodology": "0.3",
              "pending": [
                "performance",
                "tasks"
              ],
              "run": "2026-10-01",
              "runLabel": "October 2026 research run",
              "score": 41.9
            }
          ],
          "editorialScores": {
            "ergonomics": 57,
            "maintenance": 3,
            "payments": 10,
            "reliability": 44,
            "schema": 54,
            "security": 50,
            "transparency": 30
          },
          "provenanceScore": 80
        },
        "connect": {
          "http": "curl -X POST https://bankaccountdata.gocardless.com/api/v2/token/new/ -H \"Content-Type: application/json\" \\\n  -d '{\"secret_id\":\"'\"$GOCARDLESS_BAD_SECRET_ID\"'\",\"secret_key\":\"'\"$GOCARDLESS_BAD_SECRET_KEY\"'\"}'"
        },
        "letme": {
          "capability": "https://letme.dev/bank.accounts",
          "tool": "https://letme.dev/gocardless-bank-account-data"
        },
        "area": "domain-data",
        "provenance": {
          "legalEntity": "GoCardless Ltd",
          "domain": "gocardless.com",
          "domainRegistered": "1999-04-14",
          "domainNote": "gocardless.com was registered in 1999, before the company was founded, so the domain was bought later.",
          "endpointOnVendorDomain": true,
          "terms": "https://gocardless.com/legal/merchants/",
          "privacy": "https://gocardless.com/privacy/",
          "statusPage": "https://www.gocardless-status.com",
          "changelog": "",
          "securityTxt": "unknown",
          "checked": "2026-09-30",
          "notes": [
            "GoCardless Ltd, company 07495895, Sutton Yard, 65 Goswell Road, London EC1V 7EN, FCA registration 597190. The client library licences name SIA Nordigen Solutions (Riga), the company GoCardless bought in 2022.",
            "The Bank Account Data Service Terms are a PDF on a Contentful CDN linked from the merchant terms; it returned 404 when we fetched it on 2026-09-30.",
            "gocardless.com/.well-known/security.txt returns a contact (vuln-disc@gocardless.com) and a policy link but no Expires field, and our fetch saw it rendered as HTML.",
            "bankaccountdata.gocardless.com disallows crawlers in robots.txt, so the portal, its sign-up page and its Swagger UI couldn't be checked.",
            "rdap.org returned 403; the registration date is from Verisign's RDAP server."
          ],
          "score": 80
        },
        "pageJsonUrl": "https://www.anchorterminal.com/tools/gocardless-bank-account-data.json",
        "live": {
          "slug": "gocardless-bank-account-data",
          "probe": {
            "target": "https://bankaccountdata.gocardless.com/api/v2",
            "method": "get",
            "lastAt": "2026-10-05T00:57:20.850680084Z",
            "lastOk": true,
            "lastStatus": 404,
            "lastMs": 67,
            "authRequired": false,
            "uptime24h": 100,
            "uptime30d": 100,
            "p50ms24h": 70,
            "p95ms24h": 109,
            "samples24h": 272,
            "samples30d": 911,
            "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": 11,
                "ok": 11
              }
            ]
          },
          "vendorStatus": {
            "page": "https://www.gocardless-status.com",
            "indicator": "minor",
            "summary": "Partial System Degradation",
            "checkedAt": "2026-10-05T00:53:52.139623231Z"
          },
          "versions": [
            {
              "registry": "npm",
              "name": "nordigen-node",
              "version": "1.4.1",
              "seenAt": "2026-10-04T16:28:16.49190031Z"
            },
            {
              "registry": "pypi",
              "name": "nordigen",
              "version": "1.4.2",
              "released": "2025-04-07",
              "seenAt": "2026-10-04T16:28:17.396381442Z"
            }
          ],
          "githubStars": 88,
          "npmWeekly": 29151,
          "pypiWeekly": 4894,
          "securityTxt": {
            "url": "https://gocardless.com/.well-known/security.txt",
            "state": "valid",
            "checkedAt": "2026-10-04T15:15:53.883949778Z"
          },
          "llmsTxt": {
            "url": "https://docs.gocardless.com/llms.txt",
            "ok": true,
            "status": 200,
            "checkedAt": "2026-10-04T15:17:48.722646667Z"
          },
          "domain": {
            "domain": "gocardless.com",
            "registered": "1999-04-14",
            "source": "https://rdap.verisign.com/com/v1/domain/gocardless.com",
            "checkedAt": "2026-10-04T13:08:59.501357749Z"
          },
          "pages": [
            {
              "url": "https://gocardless.com/pricing/",
              "kind": "pricing",
              "status": 200,
              "checkedAt": "2026-10-04T15:44:58.016429927Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "bd4abfc6ae10"
            },
            {
              "url": "https://gocardless.com/privacy/",
              "kind": "privacy",
              "status": 304,
              "checkedAt": "2026-10-04T15:45:00.213131436Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "3971f898cf20"
            },
            {
              "url": "https://gocardless.com/legal/merchants/",
              "kind": "terms",
              "status": 304,
              "checkedAt": "2026-10-04T15:44:55.901537284Z",
              "changedAt": "0001-01-01T00:00:00Z",
              "fingerprint": "2114da0a1a71"
            }
          ],
          "updatedAt": "2026-10-05T00:57:20.850680084Z"
        }
      }
    ]
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/categories/banking-data",
    "json": "https://www.anchorterminal.com/categories/banking-data.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/categories/banking-data.md",
    "slim": "https://www.anchorterminal.com/categories/banking-data.min.md"
  },
  "markdown": "APIs that connect to a person's bank accounts with their consent to read balances and transactions, check identity and income, and start payments. Compared on country coverage, the consent flow, data freshness and price per connection.\n\n- Tools ranked: 7 · agent-ready (BB or better): 1 · accept x402: 0 · hosted endpoints: 7 · desk reviews by the panel: 14\n- JSON: https://www.anchorterminal.com/api/v1/tools.json (list) · https://www.anchorterminal.com/api/v1/rankings.json (ranked) · https://www.anchorterminal.com/api/v1/x402.json (payable) · https://www.anchorterminal.com/api/v1/capabilities.json (by capability)\n- Grades run AA, A, BB, B, C, D, E, F · methodology: https://www.anchorterminal.com/benchmark/\n\n- Capabilities in this category: bank.accounts, bank.transactions, bank.identity, bank.payments, bank.consent\n- https://letme.dev/bank.accounts picks the top-graded tool in this list and says how to call it direct; calling through letme comes later (https://www.anchorterminal.com/letme/index.md)\n\n## Ranking\n\n| # | Tool | Vendor | Kind | Category | Grade | Score | Confidence | x402 | Auth | Where | Reviews | Page |\n| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| 103 | Plaid | Plaid | HTTP API | Bank data | BB | 70 | high | no | OAuth or key | hosted + local | 3.5/5 (2) | https://www.anchorterminal.com/tools/plaid.md |\n| 217 | TrueLayer | TrueLayer | HTTP API | Bank data | B | 62.4 | medium | no | OAuth | hosted | 3/5 (2) | https://www.anchorterminal.com/tools/truelayer.md |\n| 289 | Yapily | Yapily | HTTP API | Bank data | C | 57.8 | medium | no | API key | hosted | 2.5/5 (2) | https://www.anchorterminal.com/tools/yapily.md |\n| 384 | Enable Banking | Enable Banking | HTTP API | Bank data | D | 47.3 | medium | no | OAuth or key | hosted | 3/5 (2) | https://www.anchorterminal.com/tools/enable-banking.md |\n| 393 | Salt Edge Account Information | Salt Edge | HTTP API | Bank data | D | 46.9 | medium | no | API key | hosted | 2.5/5 (2) | https://www.anchorterminal.com/tools/salt-edge.md |\n| 410 | Teller | Teller | HTTP API | Bank data | E | 43 | medium | no | Token | hosted | 2/5 (2) | https://www.anchorterminal.com/tools/teller.md |\n| 416 | GoCardless Bank Account Data | GoCardless | HTTP API | Bank data | E | 41.9 | medium | no | API key | hosted | 2/5 (2) | https://www.anchorterminal.com/tools/gocardless-bank-account-data.md |\n\nScores are from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/), with Performance and Task success pending. p95 latency and context cost come from our probes, which haven't run yet.\n\n## Summaries\n\n### 103. Plaid, BB (70)\n\nBank data aggregation platform covering the US, Canada, the UK and parts of Europe. 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- Page: https://www.anchorterminal.com/tools/plaid · Markdown: https://www.anchorterminal.com/tools/plaid.md · JSON: https://www.anchorterminal.com/api/v1/tools/plaid.json\n- Capabilities: bank.accounts, bank.transactions, bank.identity, bank.payments, bank.consent · endpoint: `https://production.plaid.com`\n\n### 217. TrueLayer, B (62.4)\n\nUK and EU open banking, regulated by the FCA and the Central Bank of Ireland. FCA and Central Bank of Ireland authorised, holding the AISP and PISP licences itself. No public pricing anywhere on the site or in the docs.\n\n- Page: https://www.anchorterminal.com/tools/truelayer · Markdown: https://www.anchorterminal.com/tools/truelayer.md · JSON: https://www.anchorterminal.com/api/v1/tools/truelayer.json\n- Capabilities: bank.accounts, bank.transactions, bank.identity, bank.payments, bank.consent · endpoint: `https://api.truelayer.com`\n\n### 289. Yapily, C (57.8)\n\nUK and EU open banking API with account information and payments across 2,000-plus banks, licensed in the UK (FCA) and Lithuania. 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- Page: https://www.anchorterminal.com/tools/yapily · Markdown: https://www.anchorterminal.com/tools/yapily.md · JSON: https://www.anchorterminal.com/api/v1/tools/yapily.json\n- Capabilities: bank.accounts, bank.transactions, bank.identity, bank.payments, bank.consent · endpoint: `https://api.yapily.com`\n\n### 384. Enable Banking, D (47.3)\n\nFinnish open banking API (FIN-FSA registered AISP) covering 2,700-plus banks in about 30 European countries, with account information and payment initiation under Enable Banking's licence or your own eIDAS certificates. Restricted mode gives live data for your own whitelisted accounts before any contract. No public prices and a minimum monthly invoice.\n\n- Page: https://www.anchorterminal.com/tools/enable-banking · Markdown: https://www.anchorterminal.com/tools/enable-banking.md · JSON: https://www.anchorterminal.com/api/v1/tools/enable-banking.json\n- Capabilities: bank.accounts, bank.transactions, bank.payments, bank.consent · endpoint: `https://api.enablebanking.com`\n\n### 393. Salt Edge Account Information, D (46.9)\n\nOpen banking aggregator for account data and payments across international banks. 5,000-plus banks in more than 50 countries, by Salt Edge's own count. Rate limit exceeded returns HTTP 406 RateLimitExceeded, not 429.\n\n- Page: https://www.anchorterminal.com/tools/salt-edge · Markdown: https://www.anchorterminal.com/tools/salt-edge.md · JSON: https://www.anchorterminal.com/api/v1/tools/salt-edge.json\n- Capabilities: bank.accounts, bank.transactions, bank.identity, bank.payments, bank.consent · endpoint: `https://www.saltedge.com/api/v6`\n\n### 410. Teller, E (43)\n\nUS bank data API with published per-use prices and a free tier of 100 live connections. Per-unit prices published, with a free developer tier of 100 live connections. US only.\n\n- Page: https://www.anchorterminal.com/tools/teller · Markdown: https://www.anchorterminal.com/tools/teller.md · JSON: https://www.anchorterminal.com/api/v1/tools/teller.json\n- Capabilities: bank.accounts, bank.transactions, bank.identity, bank.payments, bank.consent · endpoint: `https://api.teller.io`\n\n### 416. GoCardless Bank Account Data, E (41.9)\n\nThe former Nordigen account information API, now sold by GoCardless. UK plus every PSD2 country, up to 24 months of history, one API shape for all of them. No public price and no confirmed free plan.\n\n- Page: https://www.anchorterminal.com/tools/gocardless-bank-account-data · Markdown: https://www.anchorterminal.com/tools/gocardless-bank-account-data.md · JSON: https://www.anchorterminal.com/api/v1/tools/gocardless-bank-account-data.json\n- Capabilities: bank.accounts, bank.transactions, bank.consent · endpoint: `https://bankaccountdata.gocardless.com/api/v2`\n\n## How we test this category\n\nA sandbox user connects an account, the agent reads balances and categorised transactions, and the consent is revoked. We check coverage, the consent flow, data quality and what revocation does. This test hasn't run yet, so Task success is pending and the grades here come from the categories assessed from public evidence.\n\n## Indexed, not reviewed (10)\n\nSorted into this category from public catalogues, with facts and our own checks but no score, grade or rank (https://www.anchorterminal.com/indexed/index.md).\n\n| Listing | Kind | What it does | Why it's here |\n| --- | --- | --- | --- |\n| [adis](https://www.anchorterminal.com/tools/cz-agents-adis.md) | MCP server | Czech VAT-payer reliability (ADIS / nespolehlivý plátce DPH) + registered bank accounts by DIČ. | vendor's own |\n| [Bank Statement Sheet](https://www.anchorterminal.com/tools/bankstatementsheet-bank-statement-sheet-mcp.md) | MCP server | Convert PDF bank statements into transactions that arrive with a pass/fail reconciliation verdict. | vendor's own |\n| [BankSync](https://www.anchorterminal.com/tools/banksync-mcp.md) | MCP server | Connect AI agents to bank accounts, transactions, balances, and investments. | vendor's own |\n| [DeepLedger — AI staff accountant for QuickBooks](https://www.anchorterminal.com/tools/deepledger-mcp.md) | MCP server | AI staff accountant for QuickBooks: transactions, reports, receivables, payables, month-end close | vendor's own |\n| [Lovie Company Formation](https://www.anchorterminal.com/tools/lovie-company-formation.md) | MCP server | Form companies, manage bank accounts, cards, invoices and more — directly from your AI coding tools. | vendor's own |\n| [RightCard](https://www.anchorterminal.com/tools/rightcard-mcp.md) | MCP server | Which of your credit cards to use at any store, from verified bank data. No bank login. | vendor's own |\n| [ShareSEER](https://www.anchorterminal.com/tools/shareseer-mcp.md) | MCP server | Access SEC filings, insider transactions, and financial data via the ShareSEER API. | vendor's own |\n| [Tollary Agent Transaction Guard](https://www.anchorterminal.com/tools/p-e-agent-transaction-guard.md) | MCP server | Local fit-check and safe integration guidance for non-custodial Base USDC agent transactions. | vendor's own |\n| [traql](https://www.anchorterminal.com/tools/traql-mcp-server.md) | MCP server | AML risk scoring for crypto addresses and transactions on Ethereum, BSC, TRON, TON, Bitcoin | vendor's own |\n| [Voyager Starknet Explorer](https://www.anchorterminal.com/tools/voyager-mcp.md) | MCP server | Live Starknet explorer data: transactions, contracts, tokens, NFTs, staking | vendor's own |\n\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": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Bank data \u0026 open banking",
        "url": ""
      }
    ],
    "description": "7 bank data \u0026 open banking listings ranked by the Anchor benchmark. Leader Plaid (BB). APIs that connect to a person's bank accounts with their consent to read balances and transactions, check identity and income, and start payments. Compared on country coverage, the consent flow, data freshness and price per connection.",
    "facts": [
      "Plaid BB",
      "TrueLayer B",
      "Yapily C"
    ],
    "h1": "Open banking and bank data APIs for AI agents",
    "image": "https://www.anchorterminal.com/assets/og/categories-banking-data.png",
    "path": "/categories/banking-data",
    "published": "",
    "section": "tools",
    "title": "Open banking and bank data APIs for AI agents, ranked",
    "toc": null,
    "updated": "2026-10-05",
    "url": "https://www.anchorterminal.com/categories/banking-data"
  },
  "tokens": {
    "markdown": 2550,
    "slim": 430
  },
  "version": 1
}
