{
  "data": {
    "a": {
      "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"
      }
    },
    "answer": "Mercury API scores 63.8 (B) on agent readiness against Spendesk API + MCP's 62.3 (B), and leads in 4 of 7 scored categories. Spendesk API + MCP leads on schema \u0026 documentation and transparency \u0026 trust.",
    "b": {
      "slug": "spendesk",
      "name": "Spendesk API + MCP",
      "vendor": "Spendesk SAS",
      "vendorUrl": "https://www.spendesk.com",
      "kind": "http-api",
      "category": "spend-management",
      "summary": "Spend management platform from Spendesk SAS in Paris, covering company cards, expense claims, supplier invoices, purchase orders and accounting exports. Outside agents reach it through a REST API with scoped keys or OAuth, and a hosted MCP server.",
      "url": "https://www.anchorterminal.com/tools/spendesk",
      "markdownUrl": "https://www.anchorterminal.com/tools/spendesk.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/spendesk.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/spendesk.json",
      "license": "Proprietary service under Spendesk's terms and conditions and a separate Spendesk API agreement",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://public-api.spendesk.com",
      "packages": [],
      "auth": "mixed",
      "authNotes": "Access is granted by Spendesk, not self-serve. A customer asks its Spendesk representative for API access, then an Account Owner or Admin creates an API key (client ID and secret) with chosen scopes and an expiry of up to one year. The key is exchanged at POST /v1/auth/token with HTTP Basic for a Bearer token that lasts 60 minutes and can carry fewer scopes than the key. Partner integrations use OAuth 2.0 authorisation code with PKCE after approval by the partnerships team. The MCP server accepts only OAuth user tokens, refuses API keys, and limits use to Controllers and Account Owners. Experimental scopes are added on request.",
      "pricing": "paid",
      "pricingNotes": "No public prices. The pricing page describes a fixed monthly platform fee plus variable fees per transaction (card purchases, invoice payments and expense claims) and asks for a quote. It lists the open API and the MCP connection in the base package. No free tier, trial or self-serve sandbox was found. A demo environment exists at public-api.demo.spendesk.com, with credentials requested alongside API access (checked 2026-10-08).",
      "priceSummary": "Paid",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the developer docs, the OpenAPI definition or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": 62,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://developer.spendesk.com",
      "llmsTxt": "https://developer.spendesk.com/llms.txt",
      "openapi": "https://developer.spendesk.com/openapi/spendesk-public-api.json",
      "capabilities": [
        "spend.transactions",
        "spend.expenses",
        "spend.cards",
        "spend.bills",
        "spend.procurement"
      ],
      "tags": [
        "hosted",
        "enterprise",
        "api-key",
        "oauth",
        "mcp",
        "openapi",
        "llms-txt",
        "webhooks",
        "sales-led",
        "status-page",
        "iso27001",
        "bug-bounty"
      ],
      "lastRelease": "2026-09-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 62.3,
        "grade": "B",
        "agentReady": false,
        "rank": 342,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 4,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 62,
          "maintenance": 57,
          "payments": 0,
          "reliability": 55,
          "schema": 87,
          "security": 86,
          "transparency": 80
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "Scoped credentials, MCP write permissions that are off by default, an action log and published guidance on prompt injection suit delegated finance work. Access needs a paying customer and a request to Spendesk, most write endpoints are experimental, no official SDK was found, and the status page lists three critical incidents between 2 and 29 September 2026.",
        "bestFor": "A finance team already on Spendesk that wants an assistant to analyse spend, follow invoices and prepare the accounting close, or an ERP sync reading payables and settlements.",
        "strengths": [
          "OpenAPI 3.1 definition with 106 operations, llms.txt and a Markdown copy of every docs page, all public without sign-in",
          "37 documented scopes split by resource and by read or write. A token can carry fewer scopes than its key, and keys expire within one year",
          "MCP write permissions are off by default, enabled per connection by an admin with a second factor, then ticked by each user",
          "Every MCP tool call is recorded in an action log with date, tool, status, user, company and correlation ID",
          "Rate limits are published (1,000 requests a minute per company and credential) with x-ratelimit headers on every response"
        ],
        "weaknesses": [
          "No public price, free tier or self-serve signup. API access and demo credentials are requested from a Spendesk representative",
          "Cards, transactions, invoices, purchase orders, webhooks and most writes sit behind experimental scopes granted on request, and may change",
          "No official SDK found on npm or PyPI, and the MCP server isn't in the official MCP registry",
          "status.spendesk.com has no API component and lists three critical and three major incidents opened between 2 and 29 September 2026",
          "An Idempotency-Key is documented only for creating an intake. A repeated purchase order or supplier request creates a second record"
        ],
        "agentNotes": [
          "Request a token at POST /v1/auth/token with HTTP Basic (client ID and secret). It lasts 3,600 seconds, so renew on a 401",
          "Stop paging at the last page calculated from `total` and `pageSize` (maximum 30). A page past the end returns 404, not an empty list",
          "With an organisation-level token, send `X-Company-Id` on every v1 call or expect a 400",
          "The MCP server refuses API keys. Connect with OAuth authorisation code and PKCE, and treat `Tool not found` (-32601) as a missing permission",
          "After an unclear write result, read the object again before retrying. Creating a purchase order or supplier twice creates two"
        ],
        "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": 62.3
          }
        ],
        "editorialScores": {
          "ergonomics": 62,
          "maintenance": 57,
          "payments": 0,
          "reliability": 55,
          "schema": 87,
          "security": 86,
          "transparency": 64
        },
        "provenanceScore": 96
      },
      "connect": {
        "http": "curl -X POST https://public-api.demo.spendesk.com/v1/auth/token \\\n  -u \"YOUR_CLIENT_ID:YOUR_CLIENT_SECRET\"\n\ncurl https://public-api.demo.spendesk.com/v1/wallet-summary \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/spend.transactions",
        "tool": "https://letme.dev/spendesk"
      },
      "area": "domain-data",
      "provenance": {
        "legalEntity": "Spendesk SAS",
        "domain": "spendesk.com",
        "domainRegistered": "2015-10-30",
        "endpointOnVendorDomain": true,
        "terms": "https://www.spendesk.com/legals/terms/",
        "privacy": "https://www.spendesk.com/legals/privacy/",
        "statusPage": "https://status.spendesk.com",
        "changelog": "https://developer.spendesk.com/changelog",
        "securityTxt": "valid",
        "checked": "2026-10-08",
        "notes": [
          "The legal notice names Spendesk SAS, 7 Rue de Madrid, 75008 Paris, registration 821 893 286 R.C.S. Paris. The privacy policy (March 2025, version 0.5) gives the registered office as 51 rue de Londres, 75008 Paris.",
          "Payment services are supplied by Spendesk Financial Services (a French payment institution licensed by the ACPR, number 17518) in the EEA, Adyen in the UK and Sutton Bank in the US, per the site footer.",
          "The API and the MCP server answer at public-api.spendesk.com. An unauthenticated POST to /v1/mcp returned 401 with a WWW-Authenticate header naming the protected resource metadata.",
          "www.spendesk.com/.well-known/security.txt is present with a contact and an expiry of 31 December 2026. developer.spendesk.com/.well-known/security.txt returns 404.",
          "The terms page lists the customer terms, a DORA addendum, a Spendesk API agreement and partner programme terms. The document links are drawn by JavaScript and we couldn't open them.",
          "RDAP for spendesk.com gives a registration date of 2015-10-30."
        ],
        "score": 96
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/spendesk.json",
      "live": {
        "slug": "spendesk",
        "probe": {
          "target": "https://public-api.spendesk.com",
          "method": "get",
          "lastAt": "2026-10-08T21:12:22.288906619Z",
          "lastOk": true,
          "lastStatus": 403,
          "lastMs": 77,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 65,
          "p95ms24h": 110,
          "samples24h": 64,
          "samples30d": 64,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 64,
              "ok": 64
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.spendesk.com",
          "indicator": "minor",
          "summary": "Partially Degraded Service",
          "checkedAt": "2026-10-08T21:06:26.559327645Z"
        },
        "securityTxt": {
          "url": "https://spendesk.com/.well-known/security.txt",
          "state": "valid",
          "expires": "2026-12-31T22:00:00.000Z",
          "checkedAt": "2026-10-08T15:38:39.004780879Z"
        },
        "pages": [
          {
            "url": "https://developer.spendesk.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:17:18.275650963Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "0a7493461e82"
          },
          {
            "url": "https://www.spendesk.com/legals/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:38.654232386Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "f77c18596c95"
          },
          {
            "url": "https://www.spendesk.com/legals/terms/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:30:41.303104049Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "880e4794e2b0"
          }
        ],
        "updatedAt": "2026-10-08T21:12:22.288906619Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Mercury Technologies, Inc.",
        "b": "Spendesk SAS",
        "name": "Vendor"
      },
      {
        "a": "https://api.mercury.com/api/v1",
        "b": "https://public-api.spendesk.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Paid",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Proprietary service under Mercury's Terms of Use. The Mercury CLI on GitHub is Apache-2.0",
        "b": "Proprietary service under Spendesk's terms and conditions and a separate Spendesk API agreement",
        "name": "Licence"
      },
      {
        "a": "35",
        "b": "62",
        "name": "Tools exposed"
      },
      {
        "a": "yes",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-08-12",
        "b": "2026-09-29",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "couldn't be read",
        "name": "Terms last updated"
      },
      {
        "a": "no date given",
        "b": "2025-03-01",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "couldn't be read",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "yes",
        "b": "couldn't be read",
        "name": "Arbitration or class-action waiver"
      }
    ],
    "faq": [
      {
        "answer": "Mercury API scores 63.8 (B) on agent readiness against Spendesk API + MCP's 62.3 (B), and leads in 4 of 7 scored categories. Spendesk API + MCP leads on schema \u0026 documentation and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Mercury API or Spendesk API + MCP?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Mercury API and Spendesk API + MCP need an API key?"
      },
      {
        "answer": "Yes. Mercury API has a hosted endpoint at https://api.mercury.com/api/v1 and Spendesk API + MCP at https://public-api.spendesk.com.",
        "question": "Can an agent call Mercury API and Spendesk API + MCP without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Agent ergonomics, 68 against 62",
          "Payments \u0026 pricing, 30 against 0",
          "Maintenance \u0026 community, 64 against 57"
        ],
        "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"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 87 against 72",
          "Transparency \u0026 trust, 80 against 63"
        ],
        "also": null,
        "goodFor": "A finance team already on Spendesk that wants an assistant to analyse spend, follow invoices and prepare the accounting close, or an ERP sync reading payables and settlements.",
        "slug": "spendesk",
        "watchFor": "No public price, free tier or self-serve signup. API access and demo credentials are requested from a Spendesk representative"
      }
    ],
    "job": {
      "capability": "spend.transactions",
      "name": "Spend transactions"
    },
    "others": [
      {
        "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/airwallex-vs-spendesk.json",
        "title": "Airwallex Spend and Issuing vs Spendesk API + MCP",
        "url": "https://www.anchorterminal.com/compare/airwallex-vs-spendesk"
      },
      {
        "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/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/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/expensify-vs-spendesk.json",
        "title": "Expensify vs Spendesk API + MCP",
        "url": "https://www.anchorterminal.com/compare/expensify-vs-spendesk"
      },
      {
        "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/pleo-vs-spendesk.json",
        "title": "Pleo API + MCP vs Spendesk API + MCP",
        "url": "https://www.anchorterminal.com/compare/pleo-vs-spendesk"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ramp-vs-spendesk.json",
        "title": "Ramp vs Spendesk API + MCP",
        "url": "https://www.anchorterminal.com/compare/ramp-vs-spendesk"
      }
    ],
    "scores": [
      {
        "by": 4,
        "edge": "mercury",
        "key": "reliability",
        "mercury": 59,
        "name": "Reliability",
        "spendesk": 55,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 15,
        "edge": "spendesk",
        "key": "schema",
        "mercury": 72,
        "name": "Schema \u0026 documentation",
        "spendesk": 87,
        "weight": 13
      },
      {
        "by": 6,
        "edge": "mercury",
        "key": "ergonomics",
        "mercury": 68,
        "name": "Agent ergonomics",
        "spendesk": 62,
        "weight": 13
      },
      {
        "by": 4,
        "edge": "spendesk",
        "key": "security",
        "mercury": 82,
        "name": "Security \u0026 auth",
        "spendesk": 86,
        "weight": 14
      },
      {
        "by": 30,
        "edge": "mercury",
        "key": "payments",
        "mercury": 30,
        "name": "Payments \u0026 pricing",
        "spendesk": 0,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 7,
        "edge": "mercury",
        "key": "maintenance",
        "mercury": 64,
        "name": "Maintenance \u0026 community",
        "spendesk": 57,
        "weight": 7
      },
      {
        "by": 17,
        "edge": "spendesk",
        "key": "transparency",
        "mercury": 63,
        "name": "Transparency \u0026 trust",
        "spendesk": 80,
        "weight": 7
      }
    ],
    "summary": "Mercury API scores 63.8 (B) on agent readiness against Spendesk API + MCP's 62.3 (B), and leads in 4 of 7 scored categories. Spendesk API + MCP leads on schema \u0026 documentation and transparency \u0026 trust. Both do spend transactions.",
    "verdicts": {
      "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.",
      "spendesk": "Scoped credentials, MCP write permissions that are off by default, an action log and published guidance on prompt injection suit delegated finance work. Access needs a paying customer and a request to Spendesk, most write endpoints are experimental, no official SDK was found, and the status page lists three critical incidents between 2 and 29 September 2026."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/mercury-vs-spendesk",
    "json": "https://www.anchorterminal.com/compare/mercury-vs-spendesk.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/mercury-vs-spendesk.md",
    "slim": "https://www.anchorterminal.com/compare/mercury-vs-spendesk.min.md"
  },
  "markdown": "Mercury API scores 63.8 (B) on agent readiness against Spendesk API + MCP's 62.3 (B), and leads in 4 of 7 scored categories. Spendesk API + MCP leads on schema \u0026 documentation and transparency \u0026 trust. Both do spend transactions.\n\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- Spendesk API + MCP: grade B, 62.3/100, rank #342 of 722. Markdown https://www.anchorterminal.com/tools/spendesk.md · JSON https://www.anchorterminal.com/api/v1/tools/spendesk.json\n\n## Which one, for what\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 62\n- Payments \u0026 pricing, 30 against 0\n- Maintenance \u0026 community, 64 against 57\n\nWatch for: No rate limits with numbers and no 429 handling were found in the reviewed documentation\n\n### Spendesk API + MCP (B)\n\nGood for: A finance team already on Spendesk that wants an assistant to analyse spend, follow invoices and prepare the accounting close, or an ERP sync reading payables and settlements.\n\nAhead on:\n- Schema \u0026 documentation, 87 against 72\n- Transparency \u0026 trust, 80 against 63\n\nWatch for: No public price, free tier or self-serve signup. API access and demo credentials are requested from a Spendesk representative\n\n\n## Score by category\n\n| Category | Weight | Mercury API | Spendesk API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 59 | 55 | Mercury API +4 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 72 | 87 | Spendesk API + MCP +15 |\n| Agent ergonomics | 13% (16.2 this run) | 68 | 62 | Mercury API +6 |\n| Security \u0026 auth | 14% (17.5 this run) | 82 | 86 | Spendesk API + MCP +4 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 30 | 0 | Mercury API +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 64 | 57 | Mercury API +7 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 63 | 80 | Spendesk API + MCP +17 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **63.8 · B** | **62.3 · B** | |\n\n## Facts side by side\n\n| Fact | Mercury API | Spendesk API + MCP |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Mercury Technologies, Inc. | Spendesk SAS |\n| Hosted endpoint | `https://api.mercury.com/api/v1` | `https://public-api.spendesk.com` |\n| Transports | HTTP | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Paid |\n| x402 | no | no |\n| Licence | Proprietary service under Mercury's Terms of Use. The Mercury CLI on GitHub is Apache-2.0 | Proprietary service under Spendesk's terms and conditions and a separate Spendesk API agreement |\n| Tools exposed | 35 | 62 |\n| Read-only variant documented | yes | no |\n| llms.txt | yes | yes |\n| Last release | 2026-08-12 | 2026-09-29 |\n| Terms last updated | no date given | couldn't be read |\n| Privacy policy last updated | no date given | 2025-03-01 |\n| Customer content may train models | not found in the text | couldn't be read |\n| Terms restrict automated access | yes | couldn't be read |\n| Terms restrict benchmarking | yes | couldn't be read |\n| Terms or service can change without notice | not found in the text | couldn't be read |\n| Arbitration or class-action waiver | yes | couldn't be read |\n\n## Verdicts\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**Spendesk API + MCP.** Scoped credentials, MCP write permissions that are off by default, an action log and published guidance on prompt injection suit delegated finance work. Access needs a paying customer and a request to Spendesk, most write endpoints are experimental, no official SDK was found, and the status page lists three critical incidents between 2 and 29 September 2026.\n\n## Before you call either\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### Spendesk API + MCP\n\n1. Request a token at POST /v1/auth/token with HTTP Basic (client ID and secret). It lasts 3,600 seconds, so renew on a 401\n2. Stop paging at the last page calculated from `total` and `pageSize` (maximum 30). A page past the end returns 404, not an empty list\n3. With an organisation-level token, send `X-Company-Id` on every v1 call or expect a 400\n4. The MCP server refuses API keys. Connect with OAuth authorisation code and PKCE, and treat `Tool not found` (-32601) as a missing permission\n5. After an unclear write result, read the object again before retrying. Creating a purchase order or supplier twice creates two\n\n## Questions\n\n### Which is better for AI agents, Mercury API or Spendesk API + MCP?\n\nMercury API scores 63.8 (B) on agent readiness against Spendesk API + MCP's 62.3 (B), and leads in 4 of 7 scored categories. Spendesk API + MCP leads on schema \u0026 documentation and transparency \u0026 trust.\n\n### Do Mercury API and Spendesk API + MCP need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Mercury API and Spendesk API + MCP without installing anything?\n\nYes. Mercury API has a hosted endpoint at https://api.mercury.com/api/v1 and Spendesk API + MCP at https://public-api.spendesk.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/mercury-vs-spendesk.json, and with the fewest tokens: https://www.anchorterminal.com/compare/mercury-vs-spendesk.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"mercury\", \"b\": \"spendesk\"}`. From a terminal: `anchor compare mercury spendesk`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/mercury.json and https://www.anchorterminal.com/api/v1/tools/spendesk.json\n\n## Other comparisons with Mercury API or Spendesk API + MCP\n\n- [Airwallex Spend and Issuing vs Mercury API](https://www.anchorterminal.com/compare/airwallex-vs-mercury.md)\n- [Airwallex Spend and Issuing vs Spendesk API + MCP](https://www.anchorterminal.com/compare/airwallex-vs-spendesk.md)\n- [BILL vs Mercury API](https://www.anchorterminal.com/compare/bill-vs-mercury.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- [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- [Expensify vs Spendesk API + MCP](https://www.anchorterminal.com/compare/expensify-vs-spendesk.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- [Pleo API + MCP vs Spendesk API + MCP](https://www.anchorterminal.com/compare/pleo-vs-spendesk.md)\n- [Ramp vs Spendesk API + MCP](https://www.anchorterminal.com/compare/ramp-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": "Mercury API vs Spendesk API + MCP",
        "url": ""
      }
    ],
    "description": "Mercury API scores 63.8 (B) on agent readiness against Spendesk API + MCP's 62.3 (B), and leads in 4 of 7 scored categories. Spendesk API + MCP leads on schema \u0026 documentation and transparency \u0026 trust. Both do spend transactions. Category scores, facts, verdicts and agent notes…",
    "facts": [
      "Mercury API B 63.8",
      "Spendesk API + MCP B 62.3",
      "scores"
    ],
    "h1": "Mercury API vs Spendesk API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/compare-mercury-vs-spendesk.png",
    "path": "/compare/mercury-vs-spendesk",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Mercury API vs Spendesk API + MCP for AI agents, B 63.8 vs B 62.3",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/mercury-vs-spendesk"
  },
  "tokens": {
    "markdown": 2200,
    "slim": 730
  },
  "version": 1
}
