Head to head · Spend transactions · October 2026 research run

Expensify vs Mercury API

Mercury API scores 63.8 (B) on agent readiness against Expensify's 41.1 (E), and leads in 5 of 7 scored categories. Both do spend transactions.

Which one, for what

Expensify E

Good for A finance team already on Expensify that wants an agent to export approved reports to an accounting system, create expenses and reports, keep categories, tags and employees in step with an HR system, or mark reports reimbursed.

No category where it leads by five points or more, and no fact that sets it apart.

Watch for

No OpenAPI spec, llms.txt, version number or changelog was found for the Integration Server API

Mercury API B

Good 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.

Ahead on

  • Schema & documentation, 72 against 28
  • Agent ergonomics, 68 against 45
  • Security & auth, 82 against 34
  • Maintenance & community, 64 against 23
  • Transparency & trust, 63 against 58

Watch for

No rate limits with numbers and no 429 handling were found in the reviewed documentation

Score by category

CategoryWeight this runExpensifyMercury APIEdge
Reliability16%206259Expensify +3
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.22872Mercury API +44
Agent ergonomics13%16.24568Mercury API +23
Security & auth14%17.53482Mercury API +48
Payments & pricing10%12.53030even
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.82364Mercury API +41
Transparency & trust7%8.85863Mercury API +5
Negative events≤1500
Total41.1 · E63.8 · B

Facts side by side

FactExpensifyMercury API
KindHTTP APIHTTP API
VendorExpensify, Inc.Mercury Technologies, Inc.
Hosted endpointhttps://integrations.expensify.com/Integration-Server/ExpensifyIntegrationshttps://api.mercury.com/api/v1
TransportsHTTPHTTP
AuthOAuth or keyOAuth or key
PricingFreemiumFreemium
x402nono
LicenceProprietary service under the Expensify Terms of Service. The Expensify app client and help articles on GitHub (Expensify/App) are MITProprietary service under Mercury's Terms of Use. The Mercury CLI on GitHub is Apache-2.0
Tools exposednone35
Read-only variant documentedyesyes
llms.txtnoyes
Last releasenone2026-08-12
Terms last updated2026-09-10no date given
Privacy policy last updated2026-04-01no date given
Customer content may train modelsnot found in the textnot found in the text
Terms restrict automated accessyesyes
Terms restrict benchmarkingnot found in the textyes
Terms or service can change without noticeyesnot found in the text
Arbitration or class-action waiveryesyes

Verdicts

Expensify

One endpoint exports reports through caller-written templates and creates expenses, reports, rules and workspace settings, with limits of 5 requests per 10 seconds published and a status page that tracks the API separately. There is no OpenAPI spec, changelog, SDK, pagination or idempotency key, and one credential pair carries the whole account's rights.

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.

Before you call either

Expensify

  1. POST requestJobDescription as a form field to the single endpoint. Keep it out of the URL query string, because it carries the secret
  2. Read responseCode in the body on every reply. HTTP status can be 200 on failure, and validation errors use 410
  3. Stay under 5 requests per 10 seconds and 20 per 60 seconds. No Retry-After header is documented, so space retries yourself
  4. Export in two calls. A file job returns a filename, then a download job fetches it. Amounts are in cents
  5. Don't retry a create job blindly. No idempotency key exists, so export and check before resending. Set dry-run to true when testing the Advanced Employee Updater

Mercury API

  1. 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.
  2. 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.
  3. Send a stored idempotencyKey with every payment. The same recipient, account, amount and method within 24 hours returns 400 even with a new key.
  4. Set limit on list calls. GET /transactions returns up to 1,000 rows by default.
  5. Test against https://api-sandbox.mercury.com/api/v1/ with a sandbox token. Webhooks aren't available in the sandbox.

Questions

Which is better for AI agents, Expensify or Mercury API?

Mercury API scores 63.8 (B) on agent readiness against Expensify's 41.1 (E), and leads in 5 of 7 scored categories.

Do Expensify and Mercury API need an API key?

Both take an API key or an OAuth sign-in.

Can an agent call Expensify and Mercury API without installing anything?

Yes. Expensify has a hosted endpoint at https://integrations.expensify.com/Integration-Server/ExpensifyIntegrations and Mercury API at https://api.mercury.com/api/v1.

Other comparisons with Expensify or Mercury API

Machine-readable

For companies

Do agents find, use and choose your tools?

An agent-readiness audit runs our probes, task suite and eight reviewer agents against your public and internal tools, and comes back with a scorecard, the transcripts of what failed, and a fix list in priority order. From $2,500, re-run included. We never take payment to move a rank. We do help companies earn one.