{
  "data": {
    "a": {
      "slug": "bill",
      "name": "BILL",
      "vendor": "BILL Holdings, Inc.",
      "vendorUrl": "https://www.bill.com",
      "kind": "http-api",
      "category": "spend-management",
      "summary": "BILL is a US financial operations platform for accounts payable, accounts receivable and company card spend. Its v3 REST API reads and writes bills, payments, invoices, budgets, cards, transactions and reimbursements, and an MCP server in beta gives read-only access.",
      "url": "https://www.anchorterminal.com/tools/bill",
      "markdownUrl": "https://www.anchorterminal.com/tools/bill.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/bill.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/bill.json",
      "license": "Proprietary service under the BILL Developer Terms and the BILL General Terms of Service",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://gateway.prod.bill.com/connect",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Access is self-serve. A person signs up for a sandbox or production account in a browser and generates a developer key under Settings \u003e Sync \u0026 Integrations \u003e Manage Developer Keys after accepting the Developer Terms. The AP and AR API signs in with `POST /v3/login` using a username, password, organisation ID and `devKey`, and returns a `sessionId` that expires after 35 minutes idle and carries the user's role, with no scopes. Payments and bank account changes need a session trusted by multi-factor authentication. The Spend \u0026 Expense API takes an `apiToken` header that an ADMIN user generates, with no login. App partners request their developer key by email and use customer sync tokens that can't make payments. The MCP server uses OAuth through auth.bill.com with PKCE, and clients other than Claude and ChatGPT need approval by email.",
      "pricing": "freemium",
      "pricingNotes": "No separate API fee is published. bill.com/product/pricing lists API access on every plan. AP and AR plans are Essentials at $49, Team at $65 and Corporate at $89 per user per month, with Enterprise on request, and Spend \u0026 Expense at $0 per user per month, which needs an approved credit application. Payment types such as cheques, ACH and international transfers carry per-transaction fees. The sandbox is self-serve and free, and production has a 30-day trial. The Developer Terms mention API licence and development fees set on the developer site or an order form (checked 2026-10-08).",
      "priceSummary": "$49 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI files or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developer.bill.com/docs/home",
      "llmsTxt": "https://developer.bill.com/llms.txt",
      "openapi": "https://developer.bill.com/openapi/bill-v3-api.json",
      "capabilities": [
        "spend.transactions",
        "spend.expenses",
        "spend.cards",
        "spend.bills",
        "accounting.invoices"
      ],
      "tags": [
        "hosted",
        "freemium",
        "api-key",
        "oauth",
        "mcp",
        "openapi",
        "llms-txt",
        "webhooks",
        "sandbox",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-05-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.9,
        "grade": "C",
        "agentReady": false,
        "rank": 380,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 5,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 32,
          "payments": 25,
          "reliability": 81,
          "schema": 83,
          "security": 56,
          "transparency": 66
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "A public OpenAPI 3.0.1 spec covers 326 operations, a self-serve sandbox moves no money, and payments need a session trusted by multi-factor authentication. The AP and AR API signs in with a user's password and has no scopes, no idempotency key protects payment calls, and no official SDK was found.",
        "bestFor": "A US company already on BILL that wants an agent to create and read bills, run approvals, schedule vendor payments, raise invoices and manage budgets, vendor cards, card transactions and reimbursements.",
        "strengths": [
          "Two public OpenAPI 3.0.1 files cover 326 operations, with llms.txt, a Markdown copy of every docs page and a docs MCP server at `https://developer.bill.com/mcp`",
          "Creating a payment, adding a funding bank account and enabling vendor auto-pay need an API session trusted by multi-factor authentication",
          "The sandbox is self-serve through a sign-up form, charges no subscription fee and moves no real money",
          "www.billcomstatus.com lists an API Servers component and shows no incident after 15 April 2026",
          "The Developer Terms commit BILL to commercially reasonable efforts at 30 days' notice of deprecations and breaking changes"
        ],
        "weaknesses": [
          "`POST /v3/login` takes a user's username and password with a developer key, and the session carries that user's role with no scopes",
          "No idempotency key is accepted on the 203 write operations of the v3 API, payments included. `X-Idempotent-Key` exists only on two webhook subscription calls",
          "The MCP server is beta, read-only and limited to US organisations, and MCP clients other than Claude and ChatGPT need BILL's approval by email",
          "The changelog's latest entry is dated 21 May 2026, and the MCP server has no entry there",
          "No official SDK, sub-processor list, data processing agreement or security.txt was found, and the audit trail endpoint covers vendors only"
        ],
        "agentNotes": [
          "Sign in with `POST /v3/login` and send `sessionId` and `devKey` as headers on every AP and AR call. The session expires after 35 minutes idle",
          "Send the `apiToken` header alone on `/v3/spend/` paths. Spend \u0026 Expense calls need no login and are limited to 60 a minute per token",
          "Complete the MFA challenge before `POST /v3/payments`. An untrusted session fails with `BDC_1361`",
          "Read back payments before retrying a failed `POST /v3/payments`. No idempotency key is accepted, so a blind retry can pay twice",
          "Keep to three concurrent requests per developer key per organisation and 20,000 an hour. After `BDC_1144`, wait for the next hour"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.9
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 32,
          "payments": 25,
          "reliability": 81,
          "schema": 83,
          "security": 56,
          "transparency": 44
        },
        "provenanceScore": 88
      },
      "connect": {
        "http": "curl --request POST \\\n--url 'https://gateway.stage.bill.com/connect/v3/login' \\\n--header 'content-type: application/json' \\\n--data '{\n  \"username\": \"{username}\", \n  \"password\": \"{password}\",\n  \"organizationId\": \"{organization_id}\", \n  \"devKey\": \"{developer_key}\"\n}'"
      },
      "letme": {
        "capability": "https://letme.dev/spend.transactions",
        "tool": "https://letme.dev/bill"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Spend \u0026 Expense",
          "unit": "seat-month",
          "usd": 0,
          "note": "API access listed. Needs an approved credit application"
        },
        {
          "item": "AP and AR Essentials",
          "unit": "seat-month",
          "usd": 49,
          "note": "API access listed. Per-transaction payment fees apply"
        },
        {
          "item": "AP and AR Team",
          "unit": "seat-month",
          "usd": 65,
          "note": "API access listed"
        },
        {
          "item": "AP and AR Corporate",
          "unit": "seat-month",
          "usd": 89,
          "note": "Enterprise is priced on request"
        }
      ],
      "provenance": {
        "legalEntity": "Bill.com, LLC",
        "domain": "bill.com",
        "domainRegistered": "1994-11-03",
        "endpointOnVendorDomain": true,
        "terms": "https://developer.bill.com/docs/bill-developer-terms",
        "privacy": "https://www.bill.com/privacy",
        "statusPage": "https://www.billcomstatus.com",
        "changelog": "https://developer.bill.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Developer Terms (effective 3 March 2026) are between the developer and Bill.com, LLC and its affiliates, and are accepted when a developer key is generated. The parent company named in the privacy notice is BILL Holdings, Inc.",
          "The BILL Privacy Notice (effective 30 January 2026) names BILL Holdings, Inc. and its subsidiaries Bill.com, LLC, DivvyPay, LLC and Invoice2go, LLC, of San Jose, California.",
          "The API answers at gateway.prod.bill.com and gateway.stage.bill.com, and OAuth for the MCP server at auth.bill.com. The docs send card number decoding to api.divvy.co, a second domain of the vendor's.",
          "The status page is on a separate domain, www.billcomstatus.com, linked from the developer docs. status.bill.com and trust.bill.com didn't answer.",
          "www.bill.com/.well-known/security.txt and www.bill.com/security.txt return 404. The security page sends reports to a HackerOne vulnerability disclosure programme.",
          "The BILL General Terms of Service (last updated 10 February 2025) and separate Spend \u0026 Expense terms govern a customer's account. No data processing agreement or sub-processor list was found on the legal index.",
          "RDAP for bill.com gives a registration date of 1994-11-03 and GoDaddy Corporate Domains, LLC as registrar."
        ],
        "score": 88
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/bill.json",
      "live": {
        "slug": "bill",
        "probe": {
          "target": "https://gateway.prod.bill.com/connect",
          "method": "get",
          "lastAt": "2026-10-08T21:12:05.582437227Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 464,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 440,
          "p95ms24h": 521,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.billcomstatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:05:52.445436869Z"
        },
        "updatedAt": "2026-10-08T21:12:05.582437227Z"
      }
    },
    "answer": "Mercury API scores 63.8 (B) on agent readiness against BILL's 60.9 (C), and leads in 4 of 7 scored categories. BILL leads on reliability and schema \u0026 documentation.",
    "b": {
      "slug": "mercury",
      "name": "Mercury API",
      "vendor": "Mercury Technologies, Inc.",
      "vendorUrl": "https://mercury.com",
      "kind": "http-api",
      "category": "spend-management",
      "summary": "Mercury is a US business banking service with accounts, debit and credit cards, payments and invoicing. Its REST API reads transactions, issues virtual cards with spend limits and sends payments, and a hosted MCP server is in beta.",
      "url": "https://www.anchorterminal.com/tools/mercury",
      "markdownUrl": "https://www.anchorterminal.com/tools/mercury.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/mercury.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/mercury.json",
      "repo": "https://github.com/MercuryTechnologies/mercury-cli",
      "license": "Proprietary service under Mercury's Terms of Use. The Mercury CLI on GitHub is Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.mercury.com/api/v1",
      "packages": [
        {
          "registry": "go",
          "name": "github.com/MercuryTechnologies/mercury-cli"
        },
        {
          "registry": "go",
          "name": "github.com/MercuryTechnologies/mercury-go"
        }
      ],
      "auth": "mixed",
      "authNotes": "Access is self-serve for a Mercury customer. A user with permission creates an API token under Settings, Tokens, choosing read-only, read and write, or custom scopes. The token is sent as a Bearer header or as the basic-auth username, is shown once, can be revoked and is deleted after 45 days unused. Tokens with write scopes need an IP allowlist, except the `RequestSendMoney` scope, which queues payments for dashboard approval. The MCP server takes OAuth 2.0 with dynamic client registration and PKCE, where a person signs in and grants `read` and any of five write scopes. OAuth2 clients for integrations that serve other Mercury customers need Mercury's approval through a form.",
      "pricing": "freemium",
      "pricingNotes": "No separate API fee was found. A Mercury business account is $0 a month, Plus is $35 and Pro $350 on monthly billing ($29.90 and $299 billed annually). The pricing FAQ says mass payments on the API may incur fees and gives no amount, and mercury.com/api says 100 free ACH transfers a month come with every account. A free sandbox with self-serve signup lets an agent's owner start without a business account or a card. Production access needs an approved Mercury business account (checked 2026-10-08).",
      "priceSummary": "$35 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the API docs, the embedded OpenAPI definitions, the API product page or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 35,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.mercury.com",
      "llmsTxt": "https://docs.mercury.com/llms.txt",
      "capabilities": [
        "spend.transactions",
        "spend.cards",
        "spend.expenses"
      ],
      "tags": [
        "hosted",
        "freemium",
        "api-key",
        "oauth",
        "mcp",
        "openapi",
        "llms-txt",
        "webhooks",
        "sandbox",
        "cli",
        "status-page",
        "soc2"
      ],
      "lastRelease": "2026-08-12",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 63.8,
        "grade": "B",
        "agentReady": false,
        "rank": 293,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 2,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 68,
          "maintenance": 64,
          "payments": 30,
          "reliability": 59,
          "schema": 72,
          "security": 82,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Custom tokens take per-endpoint scopes, write tokens need an IP allowlist, and payments can be queued for approval in the dashboard through `POST /account/{accountId}/request-send-money`. No rate limits, error catalogue or SLA were found in the reviewed documentation, the changelog carries no dates, and the MCP server is beta.",
        "bestFor": "A company that banks with Mercury and wants an agent to read balances and transactions, set notes and categories, upload receipts, issue virtual cards with spend limits and queue payments for human approval.",
        "strengths": [
          "Three token tiers (read-only, read and write, custom scopes), with an IP allowlist required for write scopes and unused permissions removed after 45 days",
          "`POST /account/{accountId}/request-send-money` always queues a payment for approval in the dashboard, and MCP payment tools can only create such requests",
          "`idempotencyKey` is required on send-money calls, and a repeat returns 409 with the original transaction",
          "A free sandbox at `https://api-sandbox.mercury.com/api/v1/` with self-serve signup and preloaded test data",
          "The MCP server uses OAuth 2.0 with dynamic client registration, PKCE S256 and a separate scope for each of its five write tools"
        ],
        "weaknesses": [
          "No rate limits with numbers and no 429 handling were found in the reviewed documentation",
          "Reference pages document only 400 and 404 errors with one-line descriptions, and no error body schema or code list was found",
          "The changelog lists ten entries with no dates, and no deprecation policy was found",
          "The MCP server is labelled beta and can't create recipients, issue or manage cards, or create invoices",
          "No SLA. The Terms of Use supply the services as is and cap liability at $1,000"
        ],
        "agentNotes": [
          "Ask for a Custom token with only the scopes the task needs. Scopes can't be edited later, and a token unused for 45 days is deleted.",
          "Without a fixed IP address, send payments through `POST /account/{accountId}/request-send-money`. Direct sends through `POST /account/{accountId}/transactions` need an allowlisted IP.",
          "Send a stored `idempotencyKey` with every payment. The same recipient, account, amount and method within 24 hours returns 400 even with a new key.",
          "Set `limit` on list calls. `GET /transactions` returns up to 1,000 rows by default.",
          "Test against `https://api-sandbox.mercury.com/api/v1/` with a sandbox token. Webhooks aren't available in the sandbox."
        ],
        "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.8
          }
        ],
        "editorialScores": {
          "ergonomics": 68,
          "maintenance": 64,
          "payments": 30,
          "reliability": 59,
          "schema": 72,
          "security": 82,
          "transparency": 42
        },
        "provenanceScore": 84
      },
      "connect": {
        "install": "curl -sSf https://cli.mercury.com/install.sh | sh",
        "http": "curl https://api.mercury.com/api/v1/accounts --header 'accept: application/json' --header \"Authorization: Bearer TOKEN\"",
        "claudeCode": "claude mcp add --transport http -s user mercury https://mcp.mercury.com/mcp"
      },
      "letme": {
        "capability": "https://letme.dev/spend.transactions",
        "tool": "https://letme.dev/mercury"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Mercury business account",
          "unit": "month",
          "usd": 0,
          "note": "API tokens are created in account settings. ACH, domestic wires and real-time payments are free per the pricing FAQ"
        },
        {
          "item": "Mercury Plus",
          "unit": "month",
          "usd": 35,
          "note": "$29.90 a month billed annually"
        },
        {
          "item": "Mercury Pro",
          "unit": "month",
          "usd": 350,
          "note": "$299 a month billed annually"
        }
      ],
      "provenance": {
        "legalEntity": "Mercury Technologies, Inc.",
        "domain": "mercury.com",
        "domainRegistered": "1990-11-30",
        "endpointOnVendorDomain": true,
        "terms": "https://mercury.com/legal/terms",
        "privacy": "https://mercury.com/legal/privacy",
        "statusPage": "https://status.mercury.com",
        "changelog": "https://docs.mercury.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Terms of Use (last updated 5 October 2026) name Mercury Technologies, Inc. and its affiliates and cover the site, the app and the services, including AI connections made through an API or connector in section 3.2. No separate API or developer agreement was found on the legal index.",
          "The privacy policy (effective 27 August 2026) names Mercury Technologies, Inc. and applies to Mercury's websites, mobile apps and financial products.",
          "Mercury states it is a fintech company and not an FDIC-insured bank. Accounts are held under separate agreements with Choice Financial Group and Column N.A., linked from mercury.com/legal.",
          "The API answers at api.mercury.com, the Vault API at vault-api.mercury.com, the sandbox at api-sandbox.mercury.com and the MCP server at mcp.mercury.com, all mercury.com subdomains.",
          "mercury.com/.well-known/security.txt returns 404. The security page sends vulnerability reports to security@mercury.com.",
          "RDAP for mercury.com gives a registration date of 1990-11-30."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/mercury.json",
      "live": {
        "slug": "mercury",
        "probe": {
          "target": "https://api.mercury.com/api/v1",
          "method": "get",
          "lastAt": "2026-10-08T21:12:15.175705812Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 300,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 301,
          "p95ms24h": 359,
          "samples24h": 21,
          "samples30d": 21,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 21,
              "ok": 21
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.mercury.com",
          "indicator": "minor",
          "summary": "Partial System Degradation",
          "checkedAt": "2026-10-08T21:06:12.336155671Z"
        },
        "updatedAt": "2026-10-08T21:12:15.175705812Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "BILL Holdings, Inc.",
        "b": "Mercury Technologies, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://gateway.prod.bill.com/connect",
        "b": "https://api.mercury.com/api/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under the BILL Developer Terms and the BILL General Terms of Service",
        "b": "Proprietary service under Mercury's Terms of Use. The Mercury CLI on GitHub is Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "35",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-05-21",
        "b": "2026-08-12",
        "name": "Last release"
      },
      {
        "a": "2026-03-03",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-01-30",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "Mercury API scores 63.8 (B) on agent readiness against BILL's 60.9 (C), and leads in 4 of 7 scored categories. BILL leads on reliability and schema \u0026 documentation.",
        "question": "Which is better for AI agents, BILL or Mercury API?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do BILL and Mercury API need an API key?"
      },
      {
        "answer": "Yes. BILL has a hosted endpoint at https://gateway.prod.bill.com/connect and Mercury API at https://api.mercury.com/api/v1.",
        "question": "Can an agent call BILL and Mercury API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 81 against 59",
          "Schema \u0026 documentation, 83 against 72"
        ],
        "also": null,
        "goodFor": "A US company already on BILL that wants an agent to create and read bills, run approvals, schedule vendor payments, raise invoices and manage budgets, vendor cards, card transactions and reimbursements.",
        "slug": "bill",
        "watchFor": "`POST /v3/login` takes a user's username and password with a developer key, and the session carries that user's role with no scopes"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 68 against 60",
          "Security \u0026 auth, 82 against 56",
          "Payments \u0026 pricing, 30 against 25",
          "Maintenance \u0026 community, 64 against 32"
        ],
        "also": null,
        "goodFor": "A company that banks with Mercury and wants an agent to read balances and transactions, set notes and categories, upload receipts, issue virtual cards with spend limits and queue payments for human approval.",
        "slug": "mercury",
        "watchFor": "No rate limits with numbers and no 429 handling were found in the reviewed documentation"
      }
    ],
    "job": {
      "capability": "spend.transactions",
      "name": "Spend transactions"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/airwallex-vs-bill.json",
        "title": "Airwallex Spend and Issuing vs BILL",
        "url": "https://www.anchorterminal.com/compare/airwallex-vs-bill"
      },
      {
        "json": "https://www.anchorterminal.com/compare/airwallex-vs-mercury.json",
        "title": "Airwallex Spend and Issuing vs Mercury API",
        "url": "https://www.anchorterminal.com/compare/airwallex-vs-mercury"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bill-vs-brex.json",
        "title": "BILL vs Brex",
        "url": "https://www.anchorterminal.com/compare/bill-vs-brex"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bill-vs-expensify.json",
        "title": "BILL vs Expensify",
        "url": "https://www.anchorterminal.com/compare/bill-vs-expensify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bill-vs-pleo.json",
        "title": "BILL vs Pleo API + MCP",
        "url": "https://www.anchorterminal.com/compare/bill-vs-pleo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bill-vs-ramp.json",
        "title": "BILL vs Ramp",
        "url": "https://www.anchorterminal.com/compare/bill-vs-ramp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bill-vs-spendesk.json",
        "title": "BILL vs Spendesk API + MCP",
        "url": "https://www.anchorterminal.com/compare/bill-vs-spendesk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brex-vs-mercury.json",
        "title": "Brex vs Mercury API",
        "url": "https://www.anchorterminal.com/compare/brex-vs-mercury"
      },
      {
        "json": "https://www.anchorterminal.com/compare/expensify-vs-mercury.json",
        "title": "Expensify vs Mercury API",
        "url": "https://www.anchorterminal.com/compare/expensify-vs-mercury"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mercury-vs-pleo.json",
        "title": "Mercury API vs Pleo API + MCP",
        "url": "https://www.anchorterminal.com/compare/mercury-vs-pleo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mercury-vs-ramp.json",
        "title": "Mercury API vs Ramp",
        "url": "https://www.anchorterminal.com/compare/mercury-vs-ramp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mercury-vs-spendesk.json",
        "title": "Mercury API vs Spendesk API + MCP",
        "url": "https://www.anchorterminal.com/compare/mercury-vs-spendesk"
      }
    ],
    "scores": [
      {
        "bill": 81,
        "by": 22,
        "edge": "bill",
        "key": "reliability",
        "mercury": 59,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "bill": 83,
        "by": 11,
        "edge": "bill",
        "key": "schema",
        "mercury": 72,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "bill": 60,
        "by": 8,
        "edge": "mercury",
        "key": "ergonomics",
        "mercury": 68,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "bill": 56,
        "by": 26,
        "edge": "mercury",
        "key": "security",
        "mercury": 82,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "bill": 25,
        "by": 5,
        "edge": "mercury",
        "key": "payments",
        "mercury": 30,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "bill": 32,
        "by": 32,
        "edge": "mercury",
        "key": "maintenance",
        "mercury": 64,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "bill": 66,
        "by": 3,
        "edge": "bill",
        "key": "transparency",
        "mercury": 63,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Mercury API scores 63.8 (B) on agent readiness against BILL's 60.9 (C), and leads in 4 of 7 scored categories. BILL leads on reliability and schema \u0026 documentation. Both do spend transactions.",
    "verdicts": {
      "bill": "A public OpenAPI 3.0.1 spec covers 326 operations, a self-serve sandbox moves no money, and payments need a session trusted by multi-factor authentication. The AP and AR API signs in with a user's password and has no scopes, no idempotency key protects payment calls, and no official SDK was found.",
      "mercury": "Custom tokens take per-endpoint scopes, write tokens need an IP allowlist, and payments can be queued for approval in the dashboard through `POST /account/{accountId}/request-send-money`. No rate limits, error catalogue or SLA were found in the reviewed documentation, the changelog carries no dates, and the MCP server is beta."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/bill-vs-mercury",
    "json": "https://www.anchorterminal.com/compare/bill-vs-mercury.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/bill-vs-mercury.md",
    "slim": "https://www.anchorterminal.com/compare/bill-vs-mercury.min.md"
  },
  "markdown": "Mercury API scores 63.8 (B) on agent readiness against BILL's 60.9 (C), and leads in 4 of 7 scored categories. BILL leads on reliability and schema \u0026 documentation. Both do spend transactions.\n\n- BILL: grade C, 60.9/100, rank #380 of 722. Markdown https://www.anchorterminal.com/tools/bill.md · JSON https://www.anchorterminal.com/api/v1/tools/bill.json\n- Mercury API: grade B, 63.8/100, rank #293 of 722. Markdown https://www.anchorterminal.com/tools/mercury.md · JSON https://www.anchorterminal.com/api/v1/tools/mercury.json\n\n## Which one, for what\n\n### BILL (C)\n\nGood for: A US company already on BILL that wants an agent to create and read bills, run approvals, schedule vendor payments, raise invoices and manage budgets, vendor cards, card transactions and reimbursements.\n\nAhead on:\n- Reliability, 81 against 59\n- Schema \u0026 documentation, 83 against 72\n\nWatch for: `POST /v3/login` takes a user's username and password with a developer key, and the session carries that user's role with no scopes\n\n### Mercury API (B)\n\nGood for: A company that banks with Mercury and wants an agent to read balances and transactions, set notes and categories, upload receipts, issue virtual cards with spend limits and queue payments for human approval.\n\nAhead on:\n- Agent ergonomics, 68 against 60\n- Security \u0026 auth, 82 against 56\n- Payments \u0026 pricing, 30 against 25\n- Maintenance \u0026 community, 64 against 32\n\nWatch for: No rate limits with numbers and no 429 handling were found in the reviewed documentation\n\n\n## Score by category\n\n| Category | Weight | BILL | Mercury API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 81 | 59 | BILL +22 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 83 | 72 | BILL +11 |\n| Agent ergonomics | 13% (16.2 this run) | 60 | 68 | Mercury API +8 |\n| Security \u0026 auth | 14% (17.5 this run) | 56 | 82 | Mercury API +26 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 30 | Mercury API +5 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 32 | 64 | Mercury API +32 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 66 | 63 | BILL +3 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **60.9 · C** | **63.8 · B** | |\n\n## Facts side by side\n\n| Fact | BILL | Mercury API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | BILL Holdings, Inc. | Mercury Technologies, Inc. |\n| Hosted endpoint | `https://gateway.prod.bill.com/connect` | `https://api.mercury.com/api/v1` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Proprietary service under the BILL Developer Terms and the BILL General Terms of Service | Proprietary service under Mercury's Terms of Use. The Mercury CLI on GitHub is Apache-2.0 |\n| Tools exposed | none | 35 |\n| Read-only variant documented | no | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-05-21 | 2026-08-12 |\n| Terms last updated | 2026-03-03 | no date given |\n| Privacy policy last updated | 2026-01-30 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | not found in the text | yes |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | yes |\n\n## Verdicts\n\n**BILL.** A public OpenAPI 3.0.1 spec covers 326 operations, a self-serve sandbox moves no money, and payments need a session trusted by multi-factor authentication. The AP and AR API signs in with a user's password and has no scopes, no idempotency key protects payment calls, and no official SDK was found.\n\n**Mercury API.** Custom tokens take per-endpoint scopes, write tokens need an IP allowlist, and payments can be queued for approval in the dashboard through `POST /account/{accountId}/request-send-money`. No rate limits, error catalogue or SLA were found in the reviewed documentation, the changelog carries no dates, and the MCP server is beta.\n\n## Before you call either\n\n### BILL\n\n1. Sign in with `POST /v3/login` and send `sessionId` and `devKey` as headers on every AP and AR call. The session expires after 35 minutes idle\n2. Send the `apiToken` header alone on `/v3/spend/` paths. Spend \u0026 Expense calls need no login and are limited to 60 a minute per token\n3. Complete the MFA challenge before `POST /v3/payments`. An untrusted session fails with `BDC_1361`\n4. Read back payments before retrying a failed `POST /v3/payments`. No idempotency key is accepted, so a blind retry can pay twice\n5. Keep to three concurrent requests per developer key per organisation and 20,000 an hour. After `BDC_1144`, wait for the next hour\n\n### Mercury API\n\n1. Ask for a Custom token with only the scopes the task needs. Scopes can't be edited later, and a token unused for 45 days is deleted.\n2. Without a fixed IP address, send payments through `POST /account/{accountId}/request-send-money`. Direct sends through `POST /account/{accountId}/transactions` need an allowlisted IP.\n3. Send a stored `idempotencyKey` with every payment. The same recipient, account, amount and method within 24 hours returns 400 even with a new key.\n4. Set `limit` on list calls. `GET /transactions` returns up to 1,000 rows by default.\n5. Test against `https://api-sandbox.mercury.com/api/v1/` with a sandbox token. Webhooks aren't available in the sandbox.\n\n## Questions\n\n### Which is better for AI agents, BILL or Mercury API?\n\nMercury API scores 63.8 (B) on agent readiness against BILL's 60.9 (C), and leads in 4 of 7 scored categories. BILL leads on reliability and schema \u0026 documentation.\n\n### Do BILL and Mercury API need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call BILL and Mercury API without installing anything?\n\nYes. BILL has a hosted endpoint at https://gateway.prod.bill.com/connect and Mercury API at https://api.mercury.com/api/v1.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/bill-vs-mercury.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bill-vs-mercury.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"bill\", \"b\": \"mercury\"}`. From a terminal: `anchor compare bill mercury`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/bill.json and https://www.anchorterminal.com/api/v1/tools/mercury.json\n\n## Other comparisons with BILL or Mercury API\n\n- [Airwallex Spend and Issuing vs BILL](https://www.anchorterminal.com/compare/airwallex-vs-bill.md)\n- [Airwallex Spend and Issuing vs Mercury API](https://www.anchorterminal.com/compare/airwallex-vs-mercury.md)\n- [BILL vs Brex](https://www.anchorterminal.com/compare/bill-vs-brex.md)\n- [BILL vs Expensify](https://www.anchorterminal.com/compare/bill-vs-expensify.md)\n- [BILL vs Pleo API + MCP](https://www.anchorterminal.com/compare/bill-vs-pleo.md)\n- [BILL vs Ramp](https://www.anchorterminal.com/compare/bill-vs-ramp.md)\n- [BILL vs Spendesk API + MCP](https://www.anchorterminal.com/compare/bill-vs-spendesk.md)\n- [Brex vs Mercury API](https://www.anchorterminal.com/compare/brex-vs-mercury.md)\n- [Expensify vs Mercury API](https://www.anchorterminal.com/compare/expensify-vs-mercury.md)\n- [Mercury API vs Pleo API + MCP](https://www.anchorterminal.com/compare/mercury-vs-pleo.md)\n- [Mercury API vs Ramp](https://www.anchorterminal.com/compare/mercury-vs-ramp.md)\n- [Mercury API vs Spendesk API + MCP](https://www.anchorterminal.com/compare/mercury-vs-spendesk.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": "BILL vs Mercury API",
        "url": ""
      }
    ],
    "description": "Mercury API scores 63.8 (B) on agent readiness against BILL's 60.9 (C), and leads in 4 of 7 scored categories. BILL leads on reliability and schema \u0026 documentation. Both do spend transactions. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "BILL C 60.9",
      "Mercury API B 63.8",
      "scores"
    ],
    "h1": "BILL vs Mercury API",
    "image": "https://www.anchorterminal.com/assets/og/compare-bill-vs-mercury.png",
    "path": "/compare/bill-vs-mercury",
    "published": "2026-10-01",
    "section": "tools",
    "title": "BILL vs Mercury API for AI agents, C 60.9 vs B 63.8 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/bill-vs-mercury"
  },
  "tokens": {
    "markdown": 2100,
    "slim": 680
  },
  "version": 1
}
