# BILL vs Expensify > BILL scores 60.9 (C) on agent readiness against Expensify's 41.1 (E), and leads in 6 of 7 scored categories. Expensify leads on payments & pricing. Both do spend transactions. Category scores, facts, verdicts and agent notes side by side. - Canonical: https://www.anchorterminal.com/compare/bill-vs-expensify - Markdown: https://www.anchorterminal.com/compare/bill-vs-expensify.md (~2,150 tokens) - Slim: https://www.anchorterminal.com/compare/bill-vs-expensify.min.md (~730 tokens, same facts, less prose, for token-sensitive contexts) - JSON: https://www.anchorterminal.com/compare/bill-vs-expensify.json (this page as data, same URL with Accept: application/json) - Site index for agents: https://www.anchorterminal.com/llms.txt (full text: https://www.anchorterminal.com/llms-full.txt) - API: https://www.anchorterminal.com/api/v1/index.json - Updated: 2026-10-08 BILL scores 60.9 (C) on agent readiness against Expensify's 41.1 (E), and leads in 6 of 7 scored categories. Expensify leads on payments & pricing. Both do spend transactions. - 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 - Expensify: grade E, 41.1/100, rank #684 of 722. Markdown https://www.anchorterminal.com/tools/expensify.md · JSON https://www.anchorterminal.com/api/v1/tools/expensify.json ## Which one, for what ### BILL (C) Good 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. Ahead on: - Reliability, 81 against 62 - Schema & documentation, 83 against 28 - Agent ergonomics, 60 against 45 - Security & auth, 56 against 34 - Maintenance & community, 32 against 23 - Transparency & trust, 66 against 58 Watch 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 ### 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. Ahead on: - Payments & pricing, 30 against 25 Watch for: No OpenAPI spec, llms.txt, version number or changelog was found for the Integration Server API ## Score by category | Category | Weight | BILL | Expensify | Edge | | --- | --- | --- | --- | --- | | Reliability | 16% (20 this run) | 81 | 62 | BILL +19 | | Performance | 10%, pending | pending | pending | not scored in this run | | Schema & documentation | 13% (16.2 this run) | 83 | 28 | BILL +55 | | Agent ergonomics | 13% (16.2 this run) | 60 | 45 | BILL +15 | | Security & auth | 14% (17.5 this run) | 56 | 34 | BILL +22 | | Payments & pricing | 10% (12.5 this run) | 25 | 30 | Expensify +5 | | Task success | 10%, pending | pending | pending | not scored in this run | | Maintenance & community | 7% (8.8 this run) | 32 | 23 | BILL +9 | | Transparency & trust | 7% (8.8 this run) | 66 | 58 | BILL +8 | | Negative events | ≤15 | 0 | 0 | | | **Total** | | **60.9 · C** | **41.1 · E** | | ## Facts side by side | Fact | BILL | Expensify | | --- | --- | --- | | Kind | HTTP API | HTTP API | | Vendor | BILL Holdings, Inc. | Expensify, Inc. | | Hosted endpoint | `https://gateway.prod.bill.com/connect` | `https://integrations.expensify.com/Integration-Server/ExpensifyIntegrations` | | Transports | HTTP | HTTP | | Auth | OAuth or key | OAuth or key | | Pricing | Freemium | Freemium | | x402 | no | no | | Licence | Proprietary service under the BILL Developer Terms and the BILL General Terms of Service | Proprietary service under the Expensify Terms of Service. The Expensify app client and help articles on GitHub (Expensify/App) are MIT | | Read-only variant documented | no | yes | | llms.txt | yes | no | | Last release | 2026-05-21 | none | | Terms last updated | 2026-03-03 | 2026-09-10 | | Privacy policy last updated | 2026-01-30 | 2026-04-01 | | Customer content may train models | not found in the text | not found in the text | | Terms restrict automated access | not found in the text | yes | | Terms restrict benchmarking | not found in the text | not found in the text | | Terms or service can change without notice | not found in the text | yes | | Arbitration or class-action waiver | not found in the text | yes | ## 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. **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. ## Before you call either ### BILL 1. 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 2. Send the `apiToken` header alone on `/v3/spend/` paths. Spend & Expense calls need no login and are limited to 60 a minute per token 3. Complete the MFA challenge before `POST /v3/payments`. An untrusted session fails with `BDC_1361` 4. Read back payments before retrying a failed `POST /v3/payments`. No idempotency key is accepted, so a blind retry can pay twice 5. Keep to three concurrent requests per developer key per organisation and 20,000 an hour. After `BDC_1144`, wait for the next hour ### 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 ## Questions ### Which is better for AI agents, BILL or Expensify? BILL scores 60.9 (C) on agent readiness against Expensify's 41.1 (E), and leads in 6 of 7 scored categories. Expensify leads on payments & pricing. ### Do BILL and Expensify need an API key? Both take an API key or an OAuth sign-in. ### Can an agent call BILL and Expensify without installing anything? Yes. BILL has a hosted endpoint at https://gateway.prod.bill.com/connect and Expensify at https://integrations.expensify.com/Integration-Server/ExpensifyIntegrations. ## For agents - This comparison as JSON: https://www.anchorterminal.com/compare/bill-vs-expensify.json, and with the fewest tokens: https://www.anchorterminal.com/compare/bill-vs-expensify.min.md - Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "bill", "b": "expensify"}`. From a terminal: `anchor compare bill expensify` - Each listing in full: https://www.anchorterminal.com/api/v1/tools/bill.json and https://www.anchorterminal.com/api/v1/tools/expensify.json ## Other comparisons with BILL or Expensify - [Airwallex Spend and Issuing vs BILL](https://www.anchorterminal.com/compare/airwallex-vs-bill.md) - [Airwallex Spend and Issuing vs Expensify](https://www.anchorterminal.com/compare/airwallex-vs-expensify.md) - [BILL vs Brex](https://www.anchorterminal.com/compare/bill-vs-brex.md) - [BILL vs Mercury API](https://www.anchorterminal.com/compare/bill-vs-mercury.md) - [BILL vs Pleo API + MCP](https://www.anchorterminal.com/compare/bill-vs-pleo.md) - [BILL vs Ramp](https://www.anchorterminal.com/compare/bill-vs-ramp.md) - [BILL vs Spendesk API + MCP](https://www.anchorterminal.com/compare/bill-vs-spendesk.md) - [Brex vs Expensify](https://www.anchorterminal.com/compare/brex-vs-expensify.md) - [Expensify vs Mercury API](https://www.anchorterminal.com/compare/expensify-vs-mercury.md) - [Expensify vs Pleo API + MCP](https://www.anchorterminal.com/compare/expensify-vs-pleo.md) - [Expensify vs Ramp](https://www.anchorterminal.com/compare/expensify-vs-ramp.md) - [Expensify vs Spendesk API + MCP](https://www.anchorterminal.com/compare/expensify-vs-spendesk.md)