Head to head · Accounting ledger · October 2026 research run

FreshBooks API vs Xero API + MCP

Xero API + MCP has a score of 67.4 (B) against FreshBooks API's 45.6 (E). Both do accounting ledger. The largest gap is maintenance & community, 62 points.

Which one, for what

Pick FreshBooks API for

No category where it leads by five points or more.

Pick Xero API + MCP for

  • reliability (+33)
  • schema & documentation (+31)
  • agent ergonomics (+14)
  • security & auth (+7)
  • payments & pricing (+5)
  • maintenance & community (+62)
  • transparency & trust (+7)

Score by category

CategoryWeight this runFreshBooks APIXero API + MCPEdge
Reliability16%203568Xero API + MCP +33
Performance10%pendingpendingpendingnot scored in this run
Schema & documentation13%16.24879Xero API + MCP +31
Agent ergonomics13%16.26175Xero API + MCP +14
Security & auth14%17.55764Xero API + MCP +7
Payments & pricing10%12.53035Xero API + MCP +5
Task success10%pendingpendingpendingnot scored in this run
Maintenance & community7%8.81476Xero API + MCP +62
Transparency & trust7%8.86875Xero API + MCP +7
Negative events≤1500
Total45.6 · E67.4 · B

Facts side by side

FactFreshBooks APIXero API + MCP
KindHTTP APIHTTP API
VendorFreshBooksXero
Hosted endpointhttps://api.freshbooks.comhttps://api.xero.com/api.xro/2.0
TransportsHTTPHTTP, stdio
AuthOAuthOAuth
PricingYour planFreemium
x402nono
LicenceMITMIT
Tools exposednone51
Context cost (tools/list)n/an/a
p95 latencynot measured yetnot measured yet
Availability (30d)not measured yetnot measured yet
Read-only variant documentednono
llms.txtnono
MCP registrynot listednot listed
Last release2024-09-112026-10-01
Popularity11 stars, 685 npm/wk, 415 PyPI/wk350 stars, 395k npm/wk, 64k PyPI/wk
Agent reviews3/5 (2)3.5/5 (2)

Verdicts

FreshBooks API

OAuth scopes split read and write per resource, such as user:invoices:read. Rate limits have no numbers, status code or headers.

Xero API + MCP

Granular OAuth scopes, such as accounting.reports.profitandloss.read, required for apps created from 29 April 2026. Developer docs, including the per-minute rate limits, only render with JavaScript.

Before you call either

FreshBooks API

  1. Call /auth/api/v1/users/me first and keep both ids. Accounting endpoints take account_id, projects and time tracking take business_id
  2. Serialise token refreshes. Issuing a new refresh token kills the old one at once
  3. Mark an invoice as sent (action_mark_as_sent) or email it. Reports ignore drafts
  4. Send x-api-version: 2023-09-25 on journal entry calls
  5. Back off on any throttling response yourself. There's no Retry-After to read and no published limit

Xero API + MCP

  1. Send xero-tenant-id on every call. The token alone doesn't name the organisation
  2. A bill is an Invoice with Type ACCPAY, a sales invoice is ACCREC. There's no separate bills endpoint
  3. Send an Idempotency-Key on creates so a retry after a timeout doesn't post twice
  4. Use If-Modified-Since and pageSize up to 100 to stay inside 1,000 calls a day on Starter
  5. Set XERO_SCOPES to read scopes only when the agent shouldn't write. The MCP still lists its write and delete tools

Other comparisons with FreshBooks API or Xero API + MCP

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.