{
  "data": {
    "a": {
      "slug": "brex",
      "name": "Brex",
      "vendor": "Brex LLC",
      "vendorUrl": "https://www.brex.com",
      "kind": "http-api",
      "category": "spend-management",
      "summary": "Brex is a spend platform with corporate cards, expense management, bill pay, travel and business accounts. Its REST Developer API reads and writes cards, expenses, spend limits, vendors and transfers, and a hosted MCP server is in beta.",
      "url": "https://www.anchorterminal.com/tools/brex",
      "markdownUrl": "https://www.anchorterminal.com/tools/brex.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/brex.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/brex.json",
      "license": "Proprietary service under the Brex Platform Agreement and the Brex Access Agreement",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.brex.com",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Access is self-serve for a Brex customer. An account admin or card admin accepts the Developer API agreement in the dashboard, then creates a user token with chosen scopes at Settings \u003e Developer. The token is sent as a Bearer header, is shown once, can be revoked, and expires after 90 days without a call. Partners acting for other Brex accounts apply to Brex for a client ID and secret and use the OAuth 2.0 authorisation code grant, with one-hour access tokens and refresh tokens. The MCP server takes OAuth with dynamic client registration, where each employee signs in with their own permissions, or an admin's user token.",
      "pricing": "freemium",
      "pricingNotes": "No separate API fee. brex.com/pricing lists Brex API access under Essentials at $0 per user per month, with Premium at $12 per user per month and Enterprise priced on request. Access needs an approved Brex business account, so an agent can't start without one. There is no customer sandbox, and the staging server is for approved partners only. The Access Agreement lets Brex introduce API fees on 30 days' notice (checked 2026-10-08).",
      "priceSummary": "$12 / seat-mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI specs or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 43,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developer.brex.com",
      "llmsTxt": "https://developer.brex.com/llms.txt",
      "openapi": "https://developer.brex.com/_bundle/openapi/team_api.yaml",
      "capabilities": [
        "spend.transactions",
        "spend.expenses",
        "spend.cards",
        "spend.bills"
      ],
      "tags": [
        "hosted",
        "freemium",
        "api-key",
        "oauth",
        "mcp",
        "openapi",
        "llms-txt",
        "webhooks",
        "status-page",
        "soc2",
        "pci-dss"
      ],
      "lastRelease": "2026-10-01",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.7,
        "grade": "C",
        "agentReady": false,
        "rank": 391,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 70,
          "maintenance": 66,
          "payments": 25,
          "reliability": 60,
          "schema": 80,
          "security": 72,
          "transparency": 67
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-02 and 2026-09. The changelog records the List expenses maximum `limit` cut from 1,000 to 100 in February 2026, and `GET /v2/users/{id}/limit` removed from the Team API in September 2026 without a deprecated label in the entry. The Team API is at version 1.0, and the launch-stages page says breaking changes to generally available APIs come as new versions with deprecation timelines. Both changes are documented in the month they shipped, and notice by email couldn't be checked, so the smallest deduction applies (https://developer.brex.com/changelog)."
        ],
        "verdict": "User tokens carry per-resource scopes with read-only variants, every POST and PUT accepts an `Idempotency-Key`, and ten OpenAPI specs are public. The Expenses API changes only an expense's memo, there is no customer sandbox or official SDK, and the status page logs API errors lasting over four hours on 4 August 2026.",
        "bestFor": "A finance team already on Brex that wants an agent to read expenses and transactions, issue and lock cards, set spend limits, upload receipts and pay vendors.",
        "strengths": [
          "Ten public OpenAPI 3 specs covering 115 operations, plus llms.txt and a Markdown twin of every docs page",
          "User tokens take scopes chosen at creation, most with a read-only variant, and card numbers need the separate `cards.pan` scope",
          "Every POST and PUT accepts an `Idempotency-Key`, and Create transfer and Create card require one",
          "API access is listed on the Essentials plan at $0 per user per month",
          "The hosted MCP server uses OAuth with dynamic client registration and each employee's own Brex permissions"
        ],
        "weaknesses": [
          "The Expenses API update endpoint accepts only `memo`, so an outside agent can't set a category or custom field on an expense through it",
          "No customer sandbox. The docs say staging isn't a sandbox and won't accept customer tokens",
          "No official SDK. The docs list three community libraries that Brex doesn't support",
          "status.brex.com logs API request errors from 16:01 to 20:34 UTC on 4 August 2026 and invalidated developer tokens on 21 September 2026",
          "The MCP server is beta with 43 tools, and approvals and card management aren't available through it"
        ],
        "agentNotes": [
          "Ask an account admin or card admin for a user token with only the scopes the task needs, and prefer the `.readonly` variants. A token unused for 90 days expires.",
          "Send a stored `Idempotency-Key` on every POST and PUT. Create transfer and Create card reject requests without one.",
          "Only settled transactions are returned. Poll card and cash transactions with `posted_at_start` and a lookback of at least one day.",
          "Keep under 1,000 requests in 60 seconds per client and account, and back off exponentially with jitter on 429.",
          "Send only ASCII in free-text fields, and quote the `X-Brex-Trace-Id` response header when reporting an error."
        ],
        "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.7
          }
        ],
        "editorialScores": {
          "ergonomics": 70,
          "maintenance": 66,
          "payments": 25,
          "reliability": 60,
          "schema": 80,
          "security": 72,
          "transparency": 47
        },
        "provenanceScore": 86
      },
      "connect": {
        "http": "curl -i -X GET \\\n  https://api.brex.com/v2/users/me \\\n  -H 'Authorization: Bearer \u003cYOUR_TOKEN_FROM_STEP_1_HERE\u003e'",
        "claudeCode": "claude mcp add --transport http brex https://api.brex.com/mcp",
        "config": {
          "mcpServers": {
            "brex": {
              "headers": {
                "Authorization": "Bearer YOUR_BREX_ACCESS_TOKEN"
              },
              "type": "http",
              "url": "https://api.brex.com/mcp"
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/spend.transactions",
        "tool": "https://letme.dev/brex"
      },
      "area": "domain-data",
      "unitPrices": [
        {
          "item": "Essentials plan",
          "unit": "seat-month",
          "usd": 0,
          "note": "Brex API access listed on this plan"
        },
        {
          "item": "Premium plan",
          "unit": "seat-month",
          "usd": 12,
          "note": "Enterprise is priced on request"
        }
      ],
      "provenance": {
        "legalEntity": "Brex LLC",
        "domain": "brex.com",
        "domainRegistered": "1998-10-22",
        "endpointOnVendorDomain": true,
        "terms": "https://www.brex.com/legal/platform-agreement",
        "privacy": "https://www.brex.com/legal/privacy",
        "statusPage": "https://status.brex.com",
        "changelog": "https://developer.brex.com/changelog",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Platform Agreement defines Brex as Brex LLC, a wholly owned subsidiary of Capital One, N.A., and the pricing page footer gives addresses in San Francisco and Salt Lake City.",
          "API use is also governed by the Brex Access Agreement at https://www.brex.com/legal/developer-portal, which an admin accepts in the dashboard before creating a token.",
          "The API and the MCP server answer at api.brex.com and the authorisation server at accounts-api.brex.com, both brex.com subdomains. The former host platform.brexapis.com still works per the docs.",
          "www.brex.com/.well-known/security.txt returns 404. brex.com/trust/responsible-disclosure has a disclosure policy and a form run with Bugcrowd.",
          "RDAP for brex.com gives a registration date of 1998-10-22."
        ],
        "score": 86
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/brex.json",
      "live": {
        "slug": "brex",
        "probe": {
          "target": "https://api.brex.com",
          "method": "get",
          "lastAt": "2026-10-08T21:12:06.349462051Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 334,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 435,
          "p95ms24h": 523,
          "samples24h": 64,
          "samples30d": 64,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 64,
              "ok": 64
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.brex.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T21:05:53.059070799Z"
        },
        "securityTxt": {
          "url": "https://brex.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:43.637271768Z"
        },
        "pages": [
          {
            "url": "https://developer.brex.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:07.265606865Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "953aa59e7531"
          },
          {
            "url": "https://www.brex.com/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:26:48.465771046Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "b6066f1a37fc"
          },
          {
            "url": "https://www.brex.com/legal/platform-agreement",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:26:45.950905207Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "86931ef51c0f"
          }
        ],
        "updatedAt": "2026-10-08T21:12:06.349462051Z"
      }
    },
    "answer": "Mercury API scores 63.8 (B) on agent readiness against Brex's 60.7 (C), and leads in 2 of 7 scored categories. Brex leads on 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": "Brex LLC",
        "b": "Mercury Technologies, Inc.",
        "name": "Vendor"
      },
      {
        "a": "https://api.brex.com",
        "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 Brex Platform Agreement and the Brex Access Agreement",
        "b": "Proprietary service under Mercury's Terms of Use. The Mercury CLI on GitHub is Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "43",
        "b": "35",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-01",
        "b": "2026-08-12",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "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": "yes",
        "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": "yes",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "Mercury API scores 63.8 (B) on agent readiness against Brex's 60.7 (C), and leads in 2 of 7 scored categories. Brex leads on schema \u0026 documentation.",
        "question": "Which is better for AI agents, Brex or Mercury API?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Brex and Mercury API need an API key?"
      },
      {
        "answer": "Yes. Brex has a hosted endpoint at https://api.brex.com and Mercury API at https://api.mercury.com/api/v1.",
        "question": "Can an agent call Brex and Mercury API without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Schema \u0026 documentation, 80 against 72"
        ],
        "also": null,
        "goodFor": "A finance team already on Brex that wants an agent to read expenses and transactions, issue and lock cards, set spend limits, upload receipts and pay vendors.",
        "slug": "brex",
        "watchFor": "The Expenses API update endpoint accepts only `memo`, so an outside agent can't set a category or custom field on an expense through it"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 82 against 72",
          "Payments \u0026 pricing, 30 against 25"
        ],
        "also": [
          "No incidents deducted, where Brex loses 3 points for them"
        ],
        "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-brex.json",
        "title": "Airwallex Spend and Issuing vs Brex",
        "url": "https://www.anchorterminal.com/compare/airwallex-vs-brex"
      },
      {
        "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-mercury.json",
        "title": "BILL vs Mercury API",
        "url": "https://www.anchorterminal.com/compare/bill-vs-mercury"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brex-vs-expensify.json",
        "title": "Brex vs Expensify",
        "url": "https://www.anchorterminal.com/compare/brex-vs-expensify"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brex-vs-pleo.json",
        "title": "Brex vs Pleo API + MCP",
        "url": "https://www.anchorterminal.com/compare/brex-vs-pleo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brex-vs-ramp.json",
        "title": "Brex vs Ramp",
        "url": "https://www.anchorterminal.com/compare/brex-vs-ramp"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brex-vs-spendesk.json",
        "title": "Brex vs Spendesk API + MCP",
        "url": "https://www.anchorterminal.com/compare/brex-vs-spendesk"
      },
      {
        "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": [
      {
        "brex": 60,
        "by": 1,
        "edge": "brex",
        "key": "reliability",
        "mercury": 59,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "brex": 80,
        "by": 8,
        "edge": "brex",
        "key": "schema",
        "mercury": 72,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "brex": 70,
        "by": 2,
        "edge": "brex",
        "key": "ergonomics",
        "mercury": 68,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "brex": 72,
        "by": 10,
        "edge": "mercury",
        "key": "security",
        "mercury": 82,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "brex": 25,
        "by": 5,
        "edge": "mercury",
        "key": "payments",
        "mercury": 30,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "brex": 66,
        "by": 2,
        "edge": "brex",
        "key": "maintenance",
        "mercury": 64,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "brex": 67,
        "by": 4,
        "edge": "brex",
        "key": "transparency",
        "mercury": 63,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Mercury API scores 63.8 (B) on agent readiness against Brex's 60.7 (C), and leads in 2 of 7 scored categories. Brex leads on schema \u0026 documentation. Both do spend transactions.",
    "verdicts": {
      "brex": "User tokens carry per-resource scopes with read-only variants, every POST and PUT accepts an `Idempotency-Key`, and ten OpenAPI specs are public. The Expenses API changes only an expense's memo, there is no customer sandbox or official SDK, and the status page logs API errors lasting over four hours on 4 August 2026.",
      "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/brex-vs-mercury",
    "json": "https://www.anchorterminal.com/compare/brex-vs-mercury.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/brex-vs-mercury.md",
    "slim": "https://www.anchorterminal.com/compare/brex-vs-mercury.min.md"
  },
  "markdown": "Mercury API scores 63.8 (B) on agent readiness against Brex's 60.7 (C), and leads in 2 of 7 scored categories. Brex leads on schema \u0026 documentation. Both do spend transactions.\n\n- Brex: grade C, 60.7/100, rank #391 of 722. Markdown https://www.anchorterminal.com/tools/brex.md · JSON https://www.anchorterminal.com/api/v1/tools/brex.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### Brex (C)\n\nGood for: A finance team already on Brex that wants an agent to read expenses and transactions, issue and lock cards, set spend limits, upload receipts and pay vendors.\n\nAhead on:\n- Schema \u0026 documentation, 80 against 72\n\nWatch for: The Expenses API update endpoint accepts only `memo`, so an outside agent can't set a category or custom field on an expense through it\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- Security \u0026 auth, 82 against 72\n- Payments \u0026 pricing, 30 against 25\n\nAlso in its favour:\n- No incidents deducted, where Brex loses 3 points for them\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 | Brex | Mercury API | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 59 | Brex +1 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 80 | 72 | Brex +8 |\n| Agent ergonomics | 13% (16.2 this run) | 70 | 68 | Brex +2 |\n| Security \u0026 auth | 14% (17.5 this run) | 72 | 82 | Mercury API +10 |\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) | 66 | 64 | Brex +2 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 67 | 63 | Brex +4 |\n| Negative events | ≤15 | -3 | 0 | |\n| **Total** | | **60.7 · C** | **63.8 · B** | |\n\n## Facts side by side\n\n| Fact | Brex | Mercury API |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Brex LLC | Mercury Technologies, Inc. |\n| Hosted endpoint | `https://api.brex.com` | `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 Brex Platform Agreement and the Brex Access Agreement | Proprietary service under Mercury's Terms of Use. The Mercury CLI on GitHub is Apache-2.0 |\n| Tools exposed | 43 | 35 |\n| Read-only variant documented | yes | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-10-01 | 2026-08-12 |\n| Terms last updated | no date given | no date given |\n| Privacy policy last updated | no date given | 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 | yes | 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 | yes | yes |\n\n## Verdicts\n\n**Brex.** User tokens carry per-resource scopes with read-only variants, every POST and PUT accepts an `Idempotency-Key`, and ten OpenAPI specs are public. The Expenses API changes only an expense's memo, there is no customer sandbox or official SDK, and the status page logs API errors lasting over four hours on 4 August 2026.\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### Brex\n\n1. Ask an account admin or card admin for a user token with only the scopes the task needs, and prefer the `.readonly` variants. A token unused for 90 days expires.\n2. Send a stored `Idempotency-Key` on every POST and PUT. Create transfer and Create card reject requests without one.\n3. Only settled transactions are returned. Poll card and cash transactions with `posted_at_start` and a lookback of at least one day.\n4. Keep under 1,000 requests in 60 seconds per client and account, and back off exponentially with jitter on 429.\n5. Send only ASCII in free-text fields, and quote the `X-Brex-Trace-Id` response header when reporting an error.\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, Brex or Mercury API?\n\nMercury API scores 63.8 (B) on agent readiness against Brex's 60.7 (C), and leads in 2 of 7 scored categories. Brex leads on schema \u0026 documentation.\n\n### Do Brex and Mercury API need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Brex and Mercury API without installing anything?\n\nYes. Brex has a hosted endpoint at https://api.brex.com 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/brex-vs-mercury.json, and with the fewest tokens: https://www.anchorterminal.com/compare/brex-vs-mercury.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"brex\", \"b\": \"mercury\"}`. From a terminal: `anchor compare brex mercury`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/brex.json and https://www.anchorterminal.com/api/v1/tools/mercury.json\n\n## Other comparisons with Brex or Mercury API\n\n- [Airwallex Spend and Issuing vs Brex](https://www.anchorterminal.com/compare/airwallex-vs-brex.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 Mercury API](https://www.anchorterminal.com/compare/bill-vs-mercury.md)\n- [Brex vs Expensify](https://www.anchorterminal.com/compare/brex-vs-expensify.md)\n- [Brex vs Pleo API + MCP](https://www.anchorterminal.com/compare/brex-vs-pleo.md)\n- [Brex vs Ramp](https://www.anchorterminal.com/compare/brex-vs-ramp.md)\n- [Brex vs Spendesk API + MCP](https://www.anchorterminal.com/compare/brex-vs-spendesk.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": "Brex vs Mercury API",
        "url": ""
      }
    ],
    "description": "Mercury API scores 63.8 (B) on agent readiness against Brex's 60.7 (C), and leads in 2 of 7 scored categories. Brex leads on schema \u0026 documentation. Both do spend transactions. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Brex C 60.7",
      "Mercury API B 63.8",
      "scores"
    ],
    "h1": "Brex vs Mercury API",
    "image": "https://www.anchorterminal.com/assets/og/compare-brex-vs-mercury.png",
    "path": "/compare/brex-vs-mercury",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Brex vs Mercury API for AI agents, C 60.7 vs B 63.8 | Anchor Terminal",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/brex-vs-mercury"
  },
  "tokens": {
    "markdown": 2050,
    "slim": 580
  },
  "version": 1
}
