{
  "data": {
    "a": {
      "slug": "belvo",
      "name": "Belvo",
      "vendor": "Belvo",
      "vendorUrl": "https://belvo.com",
      "kind": "http-api",
      "category": "banking-data",
      "summary": "Belvo is an open finance API for Latin America. It reads bank accounts, transactions and investments in Brazil, employment records in Brazil and Mexico and tax data in Mexico, and starts Pix payments in Brazil and direct debits in Mexico.",
      "url": "https://www.anchorterminal.com/tools/belvo",
      "markdownUrl": "https://www.anchorterminal.com/tools/belvo.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/belvo.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/belvo.json",
      "license": "Proprietary service under Belvo's General Conditions of Service Usage. The belvo npm package (0.28.0) is MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.belvo.com",
      "packages": [
        {
          "registry": "npm",
          "name": "belvo"
        },
        {
          "registry": "pypi",
          "name": "belvo-python"
        }
      ],
      "auth": "api-key",
      "authNotes": "HTTP Basic with a `secretId` and `secretPassword` generated in the dashboard, one pair for each environment. The password is shown once and a lost one means resetting the keys. No scopes or read-only keys were found. Sandbox keys are self-serve after email sign-up. Production keys follow a request to Belvo, a sales meeting and a certification call. End users connect accounts in the Hosted Widget, started with a 10 minute token from POST /api/token/. The Direct Debit API in Mexico has its own keys and optional IP allowlisting set up by support.",
      "pricing": "paid",
      "pricingNotes": "The Launch plan is 1,000 USD a month and Growth is priced by sales, both through Contact Sales (https://belvo.com/plans-and-pricing/). No per-call or per-link price is published, and the terms put the price in a signed Service Order with a 12 month term. The sandbox is free, self-serve and for testing only, so an agent can start without a contract but can't reach real accounts. Changing the refresh rate of recurrent links is priced by sales.",
      "priceSummary": "$1000 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI file or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 1084,
        "pypiWeekly": 240,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developers.belvo.com/",
      "llmsTxt": "https://developers.belvo.com/llms.txt",
      "openapi": "https://developers.belvo.com/_bundle/apis/BelvoOpenApiSpec.yaml",
      "capabilities": [
        "bank.accounts",
        "bank.transactions",
        "bank.identity",
        "bank.payments",
        "bank.consent"
      ],
      "tags": [
        "hosted",
        "openapi",
        "llms-txt",
        "api-key",
        "webhooks",
        "sandbox",
        "brazil",
        "mexico",
        "latin-america",
        "sales-led",
        "status-page",
        "closed-source"
      ],
      "lastRelease": "2026-08-10",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.5,
        "grade": "B",
        "agentReady": false,
        "rank": 309,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 30,
          "payments": 20,
          "reliability": 84,
          "schema": 80,
          "security": 57,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Belvo publishes a 146-operation OpenAPI file, an llms.txt with a Markdown twin of each docs page, and list endpoints with field selection and pages of up to 1,000. Production access needs a sales meeting, a certification call and a paid plan from 1,000 USD a month, and no changelog or maintained SDK was found.",
        "bestFor": "Lenders and fintechs that need consented bank data in Brazil, employment or tax records in Mexico, or Pix and direct debit collection, and can sign a contract.",
        "strengths": [
          "Public OpenAPI 3.0.2 file, version 1.223.0, with 146 operations on 83 paths, and a separate specification for Direct Debit in Mexico",
          "llms.txt lists a Markdown twin of every docs page in English, Spanish and Portuguese",
          "List endpoints take `fields`, `omit`, `page_size` up to 1,000 and range filters on dates and amounts",
          "Retention is set per link and per call with `stale_in`, `credentials_storage` and `save_data`",
          "ISO/IEC 27001:2022 and PCI DSS Level 1 are stated on the security page"
        ],
        "weaknesses": [
          "Production keys follow a sales meeting, a certification call with a Belvo engineer and a paid plan from 1,000 USD a month",
          "One `secretId` and `secretPassword` pair per environment over HTTP Basic, with no scopes or read-only keys found",
          "No changelog was found, and the Python, Node and Ruby packages were last published in 2023 with their GitHub repositories returning 404",
          "Bank data covers Brazil only in the docs read on 8 October 2026, and Mexico has employment, fiscal and direct debit products",
          "security.txt expired on 22 March 2025",
          "General rate limits carry no published numbers, and the data webhooks have no signature, only an optional fixed authorisation header"
        ],
        "agentNotes": [
          "Send HTTP Basic with `secretId` as username and `secretPassword` as password to https://sandbox.belvo.com, and switch to https://api.belvo.com only with production keys",
          "Create links through the Hosted Widget with a token from POST /api/token/, which expires after 10 minutes",
          "Read stored data with GET list calls. Each POST retrieval in Brazil counts against monthly Open Finance limits, such as 8 a month per CPF for owners and accounts",
          "Retry 50x responses up to five times from a 3 second base with a factor of two, and don't retry 40x apart from `too_many_sessions`",
          "Send `Belvo-Idempotency-Key` with a UUID when creating a payment intent, and `X-Belvo-Request-Mode: async` on link deletion to avoid the limit of 5 deletions a minute"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "B",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 63.5
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 30,
          "payments": 20,
          "reliability": 84,
          "schema": 80,
          "security": 57,
          "transparency": 46
        },
        "provenanceScore": 81
      },
      "connect": {
        "http": "curl -X GET https://sandbox.belvo.com/api/ \\\n  -H \"Authorization: Basic $(echo -n 'YOUR_SECRET_ID:YOUR_SECRET_PASSWORD' | base64)\"",
        "claudeCode": "claude mcp add --transport http belvo-docs https://developers.belvo.com/mcp",
        "config": {
          "mcpServers": {
            "belvo-docs": {
              "type": "http",
              "url": "https://developers.belvo.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/bank.accounts",
        "tool": "https://letme.dev/belvo"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Launch plan",
          "unit": "month",
          "usd": 1000,
          "note": "Production access, through sales. Growth plan is custom"
        }
      ],
      "provenance": {
        "legalEntity": "Belvo Tecnologias Ltda.",
        "domain": "belvo.com",
        "domainRegistered": "2005-07-17",
        "endpointOnVendorDomain": true,
        "terms": "https://belvo.com/terms-service/",
        "privacy": "https://belvo.com/privacy-policy-end-users/",
        "statusPage": "https://status.belvo.com",
        "changelog": "",
        "securityTxt": "expired",
        "checked": "2026-10-08",
        "notes": [
          "The General Conditions of Service Usage, last updated 10 January 2025, define Belvo as Belvo Tecnologias Ltda., CNPJ 37.869.837/0001-81, and Belvo Instituição de Pagamento Ltda., CNPJ 43.215.815/0001-09, with affiliates. They are governed by Brazilian law with the courts of São Paulo.",
          "The legal notice also names Belvo Technologies, SAPI de CV in Mexico City (RFC BTE1912023D6) and Belvo Technologies Inc. Sucursal en España in Barcelona.",
          "The privacy link is the end-user policy, which covers data Belvo processes through its platform for clients. A separate policy for clients and site visitors at https://belvo.com/privacy-policy-clients/ was last updated 15 July 2024.",
          "security.txt is PGP-signed, gives security@belvo.com and a disclosure policy on Federacy, and expired on 22 March 2025.",
          "No changelog was found. developers.belvo.com/changelog returns 404 and llms.txt lists none.",
          "Verisign RDAP gives a registration date of 2005-07-17 for belvo.com."
        ],
        "score": 81
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/belvo.json",
      "live": {
        "slug": "belvo",
        "probe": {
          "target": "https://api.belvo.com",
          "method": "get",
          "lastAt": "2026-10-08T19:52:45.922404587Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 66,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 46,
          "p95ms24h": 188,
          "samples24h": 27,
          "samples30d": 27,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 27,
              "ok": 27
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.belvo.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T19:50:26.2285697Z"
        },
        "pages": [
          {
            "url": "https://belvo.com/plans-and-pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:15:32.924207659Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "e45bde6abe6f"
          },
          {
            "url": "https://belvo.com/privacy-policy-end-users/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:15:35.22055183Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "44ff1673e0c9"
          },
          {
            "url": "https://belvo.com/terms-service/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:15:55.309282506Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "fc9af45fbdce"
          }
        ],
        "updatedAt": "2026-10-08T19:52:45.922404587Z"
      }
    },
    "answer": "Belvo scores 63.5 (B) on agent readiness against TrueLayer's 62.1 (B), and leads in 4 of 7 scored categories. TrueLayer leads on schema \u0026 documentation, security \u0026 auth and maintenance \u0026 community.",
    "b": {
      "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.1,
        "grade": "B",
        "agentReady": false,
        "rank": 347,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 73,
          "maintenance": 38,
          "payments": 10,
          "reliability": 71,
          "schema": 89,
          "security": 66,
          "transparency": 62
        },
        "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.",
        "bestFor": "UK data and payments from one licensed vendor, with EEA coverage through the Irish entity on Data v1.",
        "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.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 62.1
          }
        ],
        "editorialScores": {
          "ergonomics": 73,
          "maintenance": 38,
          "payments": 10,
          "reliability": 71,
          "schema": 89,
          "security": 66,
          "transparency": 37
        },
        "provenanceScore": 87
      },
      "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": 87
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/truelayer.json",
      "live": {
        "slug": "truelayer",
        "probe": {
          "target": "https://api.truelayer.com",
          "method": "get",
          "lastAt": "2026-10-08T19:53:04.653065471Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 36,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 43,
          "p95ms24h": 120,
          "samples24h": 272,
          "samples30d": 1941,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 225,
              "ok": 225
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.truelayer.com",
          "indicator": "maintenance",
          "summary": "Under Maintenance",
          "checkedAt": "2026-10-08T19:51:05.943682398Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "TrueLayer/truelayer-signing",
            "version": "java-v0.3.0",
            "released": "2026-06-25",
            "seenAt": "2026-10-08T16:32:41.736309327Z"
          },
          {
            "registry": "npm",
            "name": "truelayer-signing",
            "version": "0.2.3",
            "seenAt": "2026-10-08T16:32:40.898711795Z"
          }
        ],
        "githubStars": 24,
        "npmWeekly": 12044,
        "securityTxt": {
          "url": "https://truelayer.com/.well-known/security.txt",
          "state": "expired",
          "expires": "2026-05-06T22:59:00.000Z",
          "checkedAt": "2026-10-08T15:39:02.459490683Z"
        },
        "llmsTxt": {
          "url": "https://docs.truelayer.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:57.390585006Z"
        },
        "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-08T18:19:38.899006017Z",
            "changedAt": "2026-10-07T18:05:37.433141624Z",
            "fingerprint": "4d5662dfecb4"
          },
          {
            "url": "https://truelayer.com/legal/enduser_tos/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:25:21.127188442Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "29790d7333ca"
          }
        ],
        "updatedAt": "2026-10-08T19:53:04.653065471Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Belvo",
        "b": "TrueLayer",
        "name": "Vendor"
      },
      {
        "a": "https://api.belvo.com",
        "b": "https://api.truelayer.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "API key",
        "b": "OAuth",
        "name": "Auth"
      },
      {
        "a": "Paid",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Belvo's General Conditions of Service Usage. The belvo npm package (0.28.0) is MIT",
        "b": "Apache-2.0 or MIT (signing libraries)",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-08-10",
        "b": "2026-06-25",
        "name": "Last release"
      },
      {
        "a": "2025-01-10",
        "b": "2026-05-12",
        "name": "Terms last updated"
      },
      {
        "a": "2021-02-22",
        "b": "2026-05-12",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "1.1k npm/wk, 240 PyPI/wk",
        "b": "23 stars, 17k npm/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Belvo scores 63.5 (B) on agent readiness against TrueLayer's 62.1 (B), and leads in 4 of 7 scored categories. TrueLayer leads on schema \u0026 documentation, security \u0026 auth and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Belvo or TrueLayer?"
      },
      {
        "answer": "Belvo needs an API key. TrueLayer uses an OAuth sign-in.",
        "question": "Do Belvo and TrueLayer need an API key?"
      },
      {
        "answer": "Yes. Belvo has a hosted endpoint at https://api.belvo.com and TrueLayer at https://api.truelayer.com.",
        "question": "Can an agent call Belvo and TrueLayer without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 84 against 71",
          "Agent ergonomics, 80 against 73",
          "Payments \u0026 pricing, 20 against 10"
        ],
        "also": null,
        "goodFor": "Lenders and fintechs that need consented bank data in Brazil, employment or tax records in Mexico, or Pix and direct debit collection, and can sign a contract.",
        "slug": "belvo",
        "watchFor": "Production keys follow a sales meeting, a certification call with a Belvo engineer and a paid plan from 1,000 USD a month"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 89 against 80",
          "Security \u0026 auth, 66 against 57",
          "Maintenance \u0026 community, 38 against 30"
        ],
        "also": null,
        "goodFor": "UK data and payments from one licensed vendor, with EEA coverage through the Irish entity on Data v1.",
        "slug": "truelayer",
        "watchFor": "No public pricing anywhere on the site or in the docs"
      }
    ],
    "job": {
      "capability": "bank.accounts",
      "name": "Bank accounts"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-belvo.json",
        "title": "Akoya vs Belvo",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-belvo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/akoya-vs-truelayer.json",
        "title": "Akoya vs TrueLayer",
        "url": "https://www.anchorterminal.com/compare/akoya-vs-truelayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/belvo-vs-enable-banking.json",
        "title": "Belvo vs Enable Banking",
        "url": "https://www.anchorterminal.com/compare/belvo-vs-enable-banking"
      },
      {
        "json": "https://www.anchorterminal.com/compare/belvo-vs-flinks.json",
        "title": "Belvo vs Flinks",
        "url": "https://www.anchorterminal.com/compare/belvo-vs-flinks"
      },
      {
        "json": "https://www.anchorterminal.com/compare/belvo-vs-gocardless-bank-account-data.json",
        "title": "Belvo vs GoCardless Bank Account Data",
        "url": "https://www.anchorterminal.com/compare/belvo-vs-gocardless-bank-account-data"
      },
      {
        "json": "https://www.anchorterminal.com/compare/belvo-vs-mx.json",
        "title": "Belvo vs MX Platform API",
        "url": "https://www.anchorterminal.com/compare/belvo-vs-mx"
      },
      {
        "json": "https://www.anchorterminal.com/compare/belvo-vs-plaid.json",
        "title": "Belvo vs Plaid",
        "url": "https://www.anchorterminal.com/compare/belvo-vs-plaid"
      },
      {
        "json": "https://www.anchorterminal.com/compare/belvo-vs-salt-edge.json",
        "title": "Belvo vs Salt Edge Account Information",
        "url": "https://www.anchorterminal.com/compare/belvo-vs-salt-edge"
      },
      {
        "json": "https://www.anchorterminal.com/compare/belvo-vs-teller.json",
        "title": "Belvo vs Teller",
        "url": "https://www.anchorterminal.com/compare/belvo-vs-teller"
      },
      {
        "json": "https://www.anchorterminal.com/compare/belvo-vs-tink.json",
        "title": "Belvo vs Tink",
        "url": "https://www.anchorterminal.com/compare/belvo-vs-tink"
      },
      {
        "json": "https://www.anchorterminal.com/compare/belvo-vs-yapily.json",
        "title": "Belvo vs Yapily",
        "url": "https://www.anchorterminal.com/compare/belvo-vs-yapily"
      },
      {
        "json": "https://www.anchorterminal.com/compare/enable-banking-vs-truelayer.json",
        "title": "Enable Banking vs TrueLayer",
        "url": "https://www.anchorterminal.com/compare/enable-banking-vs-truelayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/flinks-vs-truelayer.json",
        "title": "Flinks vs TrueLayer",
        "url": "https://www.anchorterminal.com/compare/flinks-vs-truelayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gocardless-bank-account-data-vs-truelayer.json",
        "title": "GoCardless Bank Account Data vs TrueLayer",
        "url": "https://www.anchorterminal.com/compare/gocardless-bank-account-data-vs-truelayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mx-vs-truelayer.json",
        "title": "MX Platform API vs TrueLayer",
        "url": "https://www.anchorterminal.com/compare/mx-vs-truelayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/plaid-vs-truelayer.json",
        "title": "Plaid vs TrueLayer",
        "url": "https://www.anchorterminal.com/compare/plaid-vs-truelayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/salt-edge-vs-truelayer.json",
        "title": "Salt Edge Account Information vs TrueLayer",
        "url": "https://www.anchorterminal.com/compare/salt-edge-vs-truelayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/teller-vs-truelayer.json",
        "title": "Teller vs TrueLayer",
        "url": "https://www.anchorterminal.com/compare/teller-vs-truelayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tink-vs-truelayer.json",
        "title": "Tink vs TrueLayer",
        "url": "https://www.anchorterminal.com/compare/tink-vs-truelayer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/truelayer-vs-yapily.json",
        "title": "TrueLayer vs Yapily",
        "url": "https://www.anchorterminal.com/compare/truelayer-vs-yapily"
      }
    ],
    "scores": [
      {
        "belvo": 84,
        "by": 13,
        "edge": "belvo",
        "key": "reliability",
        "name": "Reliability",
        "truelayer": 71,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "belvo": 80,
        "by": 9,
        "edge": "truelayer",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "truelayer": 89,
        "weight": 13
      },
      {
        "belvo": 80,
        "by": 7,
        "edge": "belvo",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "truelayer": 73,
        "weight": 13
      },
      {
        "belvo": 57,
        "by": 9,
        "edge": "truelayer",
        "key": "security",
        "name": "Security \u0026 auth",
        "truelayer": 66,
        "weight": 14
      },
      {
        "belvo": 20,
        "by": 10,
        "edge": "belvo",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "truelayer": 10,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "belvo": 30,
        "by": 8,
        "edge": "truelayer",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "truelayer": 38,
        "weight": 7
      },
      {
        "belvo": 64,
        "by": 2,
        "edge": "belvo",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "truelayer": 62,
        "weight": 7
      }
    ],
    "summary": "Belvo scores 63.5 (B) on agent readiness against TrueLayer's 62.1 (B), and leads in 4 of 7 scored categories. TrueLayer leads on schema \u0026 documentation, security \u0026 auth and maintenance \u0026 community. Both do bank accounts.",
    "verdicts": {
      "belvo": "Belvo publishes a 146-operation OpenAPI file, an llms.txt with a Markdown twin of each docs page, and list endpoints with field selection and pages of up to 1,000. Production access needs a sales meeting, a certification call and a paid plan from 1,000 USD a month, and no changelog or maintained SDK was found.",
      "truelayer": "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."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/belvo-vs-truelayer",
    "json": "https://www.anchorterminal.com/compare/belvo-vs-truelayer.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/belvo-vs-truelayer.md",
    "slim": "https://www.anchorterminal.com/compare/belvo-vs-truelayer.min.md"
  },
  "markdown": "Belvo scores 63.5 (B) on agent readiness against TrueLayer's 62.1 (B), and leads in 4 of 7 scored categories. TrueLayer leads on schema \u0026 documentation, security \u0026 auth and maintenance \u0026 community. Both do bank accounts.\n\n- Belvo: grade B, 63.5/100, rank #309 of 722. Markdown https://www.anchorterminal.com/tools/belvo.md · JSON https://www.anchorterminal.com/api/v1/tools/belvo.json\n- TrueLayer: grade B, 62.1/100, rank #347 of 722. Markdown https://www.anchorterminal.com/tools/truelayer.md · JSON https://www.anchorterminal.com/api/v1/tools/truelayer.json\n\n## Which one, for what\n\n### Belvo (B)\n\nGood for: Lenders and fintechs that need consented bank data in Brazil, employment or tax records in Mexico, or Pix and direct debit collection, and can sign a contract.\n\nAhead on:\n- Reliability, 84 against 71\n- Agent ergonomics, 80 against 73\n- Payments \u0026 pricing, 20 against 10\n\nWatch for: Production keys follow a sales meeting, a certification call with a Belvo engineer and a paid plan from 1,000 USD a month\n\n### TrueLayer (B)\n\nGood for: UK data and payments from one licensed vendor, with EEA coverage through the Irish entity on Data v1.\n\nAhead on:\n- Schema \u0026 documentation, 89 against 80\n- Security \u0026 auth, 66 against 57\n- Maintenance \u0026 community, 38 against 30\n\nWatch for: No public pricing anywhere on the site or in the docs\n\n\n## Score by category\n\n| Category | Weight | Belvo | TrueLayer | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 84 | 71 | Belvo +13 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 80 | 89 | TrueLayer +9 |\n| Agent ergonomics | 13% (16.2 this run) | 80 | 73 | Belvo +7 |\n| Security \u0026 auth | 14% (17.5 this run) | 57 | 66 | TrueLayer +9 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 20 | 10 | Belvo +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 30 | 38 | TrueLayer +8 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 64 | 62 | Belvo +2 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.5 · B** | **62.1 · B** | |\n\n## Facts side by side\n\n| Fact | Belvo | TrueLayer |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Belvo | TrueLayer |\n| Hosted endpoint | `https://api.belvo.com` | `https://api.truelayer.com` |\n| Transports | HTTP | HTTP |\n| Auth | API key | OAuth |\n| Pricing | Paid | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under Belvo's General Conditions of Service Usage. The belvo npm package (0.28.0) is MIT | Apache-2.0 or MIT (signing libraries) |\n| Read-only variant documented | no | no |\n| llms.txt | yes | yes |\n| Last release | 2026-08-10 | 2026-06-25 |\n| Terms last updated | 2025-01-10 | 2026-05-12 |\n| Privacy policy last updated | 2021-02-22 | 2026-05-12 |\n| Customer content may train models | not found in the text | yes |\n| Terms restrict automated access | not found in the text | not found in the text |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | yes | not found in the text |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 1.1k npm/wk, 240 PyPI/wk | 23 stars, 17k npm/wk |\n| Agent reviews | none | 3/5 (2) |\n\n## Verdicts\n\n**Belvo.** Belvo publishes a 146-operation OpenAPI file, an llms.txt with a Markdown twin of each docs page, and list endpoints with field selection and pages of up to 1,000. Production access needs a sales meeting, a certification call and a paid plan from 1,000 USD a month, and no changelog or maintained SDK was found.\n\n**TrueLayer.** 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## Before you call either\n\n### Belvo\n\n1. Send HTTP Basic with `secretId` as username and `secretPassword` as password to https://sandbox.belvo.com, and switch to https://api.belvo.com only with production keys\n2. Create links through the Hosted Widget with a token from POST /api/token/, which expires after 10 minutes\n3. Read stored data with GET list calls. Each POST retrieval in Brazil counts against monthly Open Finance limits, such as 8 a month per CPF for owners and accounts\n4. Retry 50x responses up to five times from a 3 second base with a factor of two, and don't retry 40x apart from `too_many_sessions`\n5. Send `Belvo-Idempotency-Key` with a UUID when creating a payment intent, and `X-Belvo-Request-Mode: async` on link deletion to avoid the limit of 5 deletions a minute\n\n### TrueLayer\n\n1. Use auth.truelayer-sandbox.com and api.truelayer-sandbox.com with a separate sandbox client; live credentials don't work there\n2. Send the user's IP when they're present, or a bank allows 4 calls a day per account\n3. Check the retry column of the Data API error table before retrying; codes marked No need the user or a config fix\n4. Set data_access_type to one_time for a single read and skip the 90-day reauthorisation\n5. Append .md to any docs URL to get the page as Markdown\n\n## Questions\n\n### Which is better for AI agents, Belvo or TrueLayer?\n\nBelvo scores 63.5 (B) on agent readiness against TrueLayer's 62.1 (B), and leads in 4 of 7 scored categories. TrueLayer leads on schema \u0026 documentation, security \u0026 auth and maintenance \u0026 community.\n\n### Do Belvo and TrueLayer need an API key?\n\nBelvo needs an API key. TrueLayer uses an OAuth sign-in.\n\n### Can an agent call Belvo and TrueLayer without installing anything?\n\nYes. Belvo has a hosted endpoint at https://api.belvo.com and TrueLayer at https://api.truelayer.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/belvo-vs-truelayer.json, and with the fewest tokens: https://www.anchorterminal.com/compare/belvo-vs-truelayer.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"belvo\", \"b\": \"truelayer\"}`. From a terminal: `anchor compare belvo truelayer`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/belvo.json and https://www.anchorterminal.com/api/v1/tools/truelayer.json\n\n## Other comparisons with Belvo or TrueLayer\n\n- [Akoya vs Belvo](https://www.anchorterminal.com/compare/akoya-vs-belvo.md)\n- [Akoya vs TrueLayer](https://www.anchorterminal.com/compare/akoya-vs-truelayer.md)\n- [Belvo vs Enable Banking](https://www.anchorterminal.com/compare/belvo-vs-enable-banking.md)\n- [Belvo vs Flinks](https://www.anchorterminal.com/compare/belvo-vs-flinks.md)\n- [Belvo vs GoCardless Bank Account Data](https://www.anchorterminal.com/compare/belvo-vs-gocardless-bank-account-data.md)\n- [Belvo vs MX Platform API](https://www.anchorterminal.com/compare/belvo-vs-mx.md)\n- [Belvo vs Plaid](https://www.anchorterminal.com/compare/belvo-vs-plaid.md)\n- [Belvo vs Salt Edge Account Information](https://www.anchorterminal.com/compare/belvo-vs-salt-edge.md)\n- [Belvo vs Teller](https://www.anchorterminal.com/compare/belvo-vs-teller.md)\n- [Belvo vs Tink](https://www.anchorterminal.com/compare/belvo-vs-tink.md)\n- [Belvo vs Yapily](https://www.anchorterminal.com/compare/belvo-vs-yapily.md)\n- [Enable Banking vs TrueLayer](https://www.anchorterminal.com/compare/enable-banking-vs-truelayer.md)\n- [Flinks vs TrueLayer](https://www.anchorterminal.com/compare/flinks-vs-truelayer.md)\n- [GoCardless Bank Account Data vs TrueLayer](https://www.anchorterminal.com/compare/gocardless-bank-account-data-vs-truelayer.md)\n- [MX Platform API vs TrueLayer](https://www.anchorterminal.com/compare/mx-vs-truelayer.md)\n- [Plaid vs TrueLayer](https://www.anchorterminal.com/compare/plaid-vs-truelayer.md)\n- [Salt Edge Account Information vs TrueLayer](https://www.anchorterminal.com/compare/salt-edge-vs-truelayer.md)\n- [Teller vs TrueLayer](https://www.anchorterminal.com/compare/teller-vs-truelayer.md)\n- [Tink vs TrueLayer](https://www.anchorterminal.com/compare/tink-vs-truelayer.md)\n- [TrueLayer vs Yapily](https://www.anchorterminal.com/compare/truelayer-vs-yapily.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Belvo vs TrueLayer",
        "url": ""
      }
    ],
    "description": "Belvo scores 63.5 (B) on agent readiness against TrueLayer's 62.1 (B), and leads in 4 of 7 scored categories. TrueLayer leads on schema \u0026 documentation, security \u0026 auth and maintenance \u0026 community. Both do bank accounts. Category scores, facts, verdicts and agent notes side by…",
    "facts": [
      "Belvo B 63.5",
      "TrueLayer B 62.1",
      "scores"
    ],
    "h1": "Belvo vs TrueLayer",
    "image": "https://www.anchorterminal.com/assets/og/compare-belvo-vs-truelayer.png",
    "path": "/compare/belvo-vs-truelayer",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Belvo vs TrueLayer for AI agents, B 63.5 vs B 62.1 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/belvo-vs-truelayer"
  },
  "tokens": {
    "markdown": 2200,
    "slim": 630
  },
  "version": 1
}
