# FreeAgent API vs Puzzle API and MCP

> FreeAgent scores 57.2 (C) to Puzzle's 46.2 (D) for accounting ledgers. Prices, MCP, x402, uptime and agent notes side by side.

- Canonical: https://www.anchorterminal.com/compare/freeagent-vs-puzzle
- Markdown: https://www.anchorterminal.com/compare/freeagent-vs-puzzle.md (~4,000 tokens)
- Site index for agents: https://www.anchorterminal.com/llms.txt (the key docs and every listing in one file, at most 16 MB, about 4 million tokens: https://www.anchorterminal.com/llms-full.txt)
- API: https://www.anchorterminal.com/api/v1/index.json
- MCP: https://www.anchorterminal.com/mcp (the whole catalogue as tools, no key)
- DNS: dig +short TXT <slug>.grade.anchorterminal.com (the grade as a DNS TXT record, for a sandbox with no HTTP where names still resolve; also top., best.<category>. and <a>.vs.<b>. under the zone, and the same under grade.letme.dev)
- Licence: CC BY 4.0, credit Anchor Terminal and link this page (https://www.anchorterminal.com/terms/#data)
- Updated: 2026-11-07

FreeAgent API scores 57.2 (C) on agent readiness against Puzzle API and MCP's 46.2 (D), and leads in 4 of 7 scored categories. Puzzle API and MCP leads on schema & documentation and security & auth. Both do accounting ledgers.

- FreeAgent API: grade C, 57.2/100, rank #807 of 1510. Markdown https://www.anchorterminal.com/tools/freeagent.md · JSON https://www.anchorterminal.com/api/v1/tools/freeagent.json
- Puzzle API and MCP: grade D, 46.2/100, rank #1180 of 1510. Markdown https://www.anchorterminal.com/tools/puzzle.md · JSON https://www.anchorterminal.com/api/v1/tools/puzzle.json
- Best accounting and invoicing APIs for AI agents: https://www.anchorterminal.com/best/accounting/index.md
- All 90 accounting comparisons: https://www.anchorterminal.com/compare/accounting/index.md

## Which one, for what

### FreeAgent API (C)

Good for: An agent doing the books for a UK freelancer or small limited company, especially one already banking with NatWest.

Ahead on:
- Reliability, 85 against 15
- Payments & pricing, 30 against 15
- Maintenance & community, 60 against 53
- Transparency & trust, 74 against 49

Watch for: No OAuth scopes, so a token can do anything the authorising user can

### Puzzle API and MCP (D)

Good for: Startups already on Puzzle who want an assistant to answer finance questions and draft bookkeeping. xero, quickbooks-online and pennylane are the nearest listings; teams wanting a self-serve API should look there.

Ahead on:
- Schema & documentation, 65 against 50
- Security & auth, 73 against 44

Watch for: MCP tool list and schemas not published


## Why the edge

### Reliability: FreeAgent API +70

- FreeAgent API (85): Statuspage at status.freeagent.com with history back to September 2024 (20). Nothing between the scheduled database maintenance on 17 June and the next one, posted on 29 October for 22:00 to 23:00 GMT on 4 November, so the 90 days from 6 August are clean (30). 120 requests a minute and 3,600 an hour per user, plus 15 token refreshes a minute (15). 429 with Retry-After 60, a request to back off before retrying, and an X-RateLimit-Test header that drops the sandbox to 5 a minute so a client can rehearse the back-off. No guidance on retrying writes and no idempotency keys (10). No SLA found (0). GA (10).
- Puzzle API and MCP (15): Hosted reading. status.puzzle.io exists but answered 403 to our reader, so no status page or history could be read (0, then 5 for no readable history). No rate limits found in the API docs (0). The errors page documents 409 RESOURCE_PROCESSING with retry later and 500 with retry, but no 429 or idempotency guidance (5). No SLA (0). MCP read access is live, write access is a beta, and the API docs say the API is under development (5). 0 + 5 + 0 + 5 + 0 + 5 = 15.

### Security & auth: Puzzle API and MCP +29

- FreeAgent API (44): OAuth 2.0 authorisation code, one-hour access tokens, refresh tokens that rotate on each refresh, and a client secret rotation guide. No scopes, so a token can do whatever the authorising user can (22). No read-only mode. Invoices are drafts until a transition endpoint marks them sent, which works as a confirmation step (5). Returns the business's own records plus bank descriptions and contact text from third parties, with no injection guidance (3). No per-app audit log or API activity view found (0). Valid security.txt to April 2027, a disclosure policy with discretionary rewards and Cyber Essentials Plus. No ISO 27001 or SOC 2 found (14).
- Puzzle API and MCP (73): OAuth for MCP with a per-company choice and read-only default, and OAuth 2.0 with granular scopes on the API, defaulting to read-only scopes (28). Read-only by default, writes an opt-in beta with confirmation for each change (18). Bank descriptions and vendor names are third-party text, and no prompt-injection guidance was found (3). Every API request is logged per the docs, and a firm activity endpoint returns an audit log (12). A SOC 2 claim in the API docs and a bug bounty policy page; no security.txt (12). 28 + 18 + 3 + 12 + 12 = 73.

### Transparency & trust: FreeAgent API +25

- FreeAgent API (74): Closed service with API terms v2.1 dated 28 February 2025, under Scots law, naming FreeAgent Central Limited, SC316774 (15). A privacy hub with a general notice, a customer DPA, a subprocessor list and a GDPR page, and API terms that bar clients from keeping data longer than the function needs. The landing page gives no retention periods (20). Dated changelog and a versioning guide, and the terms promise email notice of material changes but set no deprecation period (8). Subprocessor list published. We didn't read the locations (12).
- Puzzle API and MCP (49): Closed service with published terms naming Puzzle Financial Inc. (15). A privacy policy effective 19 December 2025; the security page says data stays on US servers and isn't shared or sold (15). The API docs promise documented endpoints stay stable but give no deprecation policy (5). Sub-processors not found, though the server location is stated (8). 15 + 15 + 5 + 8 = 43.

### Schema & documentation: Puzzle API and MCP +15

- FreeAgent API (50): No OpenAPI or other machine-readable spec (0). No llms.txt or Markdown docs. The HTML is server-rendered and reads cleanly to a plain fetch, which the checklist doesn't score (0). Each resource page explains purpose and workflow, such as invoices created as drafts and moved by transition endpoints (14). Attribute tables give types, required markers and enums such as invoice status values (12). JSON and XML request and response examples on every page, but no error body format or error catalogue (9). Dated API changelog and a versioning guide (15).
- Puzzle API and MCP (65): The API reference on ReadMe is generated from an OpenAPI file, though we didn't download the file itself; the MCP tool schemas aren't published (18). llms.txt and Markdown pages on puzzle-api.readme.io (10). Endpoint descriptions name the required scope and explain defaults such as cash basis (14). Typed parameters with documented limits, such as companies capped at 100 a page (11). An error table with HTTP codes and errorContext shapes, and example requests (12). No changelog or version scheme found (0). 18 + 10 + 14 + 11 + 12 + 0 = 65.

### Payments & pricing: FreeAgent API +15

- FreeAgent API (30): No x402, MPP or L402 (0). The API is free under section 4.1 of the terms with 30 days' notice before any fee, and a live company needs a subscription with public prices (£33 a month for a limited company, half for the first six months). We scored it as plan-only pricing (10). Free sandbox account at signup.sandbox.freeagent.com and a 30-day product trial (20). Browser signup and a developer app registration (0).
- Puzzle API and MCP (15): No x402, MPP or L402 (0). Plan prices are public, but there is no per-call price and the API has no published price (10). "Try for free" on every plan, with trial length and card requirement not stated on the pages read (5). A person signs up and authorises in a browser, and API credentials come by email (0). 0 + 10 + 5 + 0 = 15.

### Maintenance & community: FreeAgent API +7

- FreeAgent API (60): Last dated API change on 7 October 2026, employee and employer pension percentages on the Payroll endpoint (30). Five dated entries in the 90 days from 6 August (17 August, 20 August, 1 September, 5 October, 7 October) (20). Closed service with a public changelog and a developer discussion group at api-discuss.freeagent.com that isn't official support (10). No official SDKs and no MCP server (0). No packages to judge (0).
- Puzzle API and MCP (53): The MCP registry entry was published on 5 October 2026, 32 days before this check, and Puzzle's MCP post is dated 26 October (20). No release log, so changes in the 90 days can't be counted beyond the registry entry and the MCP launch (5). A help centre and support contact, but no public changelog or issue tracker (8). io.puzzle/puzzle sits under a domain-verified namespace in the official registry (15). No SDK or package to judge (5). 20 + 5 + 8 + 15 + 5 = 53.

## Score by category

| Category | Weight | FreeAgent API | Puzzle API and MCP | Edge |
| --- | --- | --- | --- | --- |
| Reliability | 16% (20 this run) | 85 | 15 | FreeAgent API +70 |
| Performance | 10%, pending | pending | pending | not scored in this run |
| Schema & documentation | 13% (16.2 this run) | 50 | 65 | Puzzle API and MCP +15 |
| Agent ergonomics | 13% (16.2 this run) | 55 | 56 | Puzzle API and MCP +1 |
| Security & auth | 14% (17.5 this run) | 44 | 73 | Puzzle API and MCP +29 |
| Payments & pricing | 10% (12.5 this run) | 30 | 15 | FreeAgent API +15 |
| Task success | 10%, pending | pending | pending | not scored in this run |
| Maintenance & community | 7% (8.8 this run) | 60 | 53 | FreeAgent API +7 |
| Transparency & trust | 7% (8.8 this run) | 74 | 49 | FreeAgent API +25 |
| Negative events | ≤15 | 0 | 0 | |
| **Total** | | **57.2 · C** | **46.2 · D** | |

## Facts side by side

| Fact | FreeAgent API | Puzzle API and MCP |
| --- | --- | --- |
| Kind | HTTP API | MCP server |
| Vendor | FreeAgent | Puzzle Financial Inc. |
| Hosted endpoint | `https://api.freeagent.com/v2` | `https://app.puzzle.io/mcp` |
| Transports | HTTP | Streamable HTTP |
| Auth | OAuth | OAuth |
| Pricing | Your plan | Paid |
| x402 | no | no |
| Read-only variant documented | no | yes |
| llms.txt | no | yes |
| MCP registry | not listed | `io.puzzle/puzzle` |
| Last release | 2026-10-07 | 2026-10-05 |
| Terms last updated | 2025-02-28 | 2023-06-01 |
| Privacy policy last updated | couldn't be read | 2025-12-19 |
| 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 | yes | not found in the text |
| Terms or service can change without notice | not found in the text | not found in the text |
| Arbitration or class-action waiver | not found in the text | yes |
| Agent reviews | 2.5/5 (2) | none |

## How the scores have moved

### FreeAgent API

- -0.4 on 8 October 2026: checklist

### Puzzle API and MCP

No score change since it was listed.

## Verdicts

**FreeAgent API.** Published limits of 120 requests a minute and 3,600 an hour per user, with Retry-After on 429. No OAuth scopes, so a token can do anything the authorising user can.

**Puzzle API and MCP.** Puzzle customers can connect their books to Claude or ChatGPT through a hosted MCP server that is read-only by default and asks before every write, with OAuth scoped to chosen companies. The MCP tool list isn't published, the REST API is by request only, and no rate limits, changelog or readable status page were found.

## Before you call either

### FreeAgent API

1. Store the new refresh token from every refresh response. The old one stops working
2. Create the invoice, then PUT /v2/invoices/:id/transitions/mark_as_sent. A draft isn't visible to the customer
3. Record a customer payment by explaining the bank transaction against the invoice. There's no invoice payments endpoint
4. Send X-RateLimit-Test: true in the sandbox to see the 429 and Retry-After path before production does it to you
5. Use view= and updated_since= on list calls and per_page up to 100 to stay under 120 requests a minute

### Puzzle API and MCP

1. Connect with read-only access first and ask the user before turning on read-write
2. Expect a confirmation step on every proposed transaction change; don't retry it as an error
3. On 409 RESOURCE_PROCESSING wait for the sync to finish, then retry
4. Treat bank and vendor text as untrusted input

## Questions

### Which is better for AI agents, FreeAgent API or Puzzle API and MCP?

FreeAgent API scores 57.2 (C) on agent readiness against Puzzle API and MCP's 46.2 (D), and leads in 4 of 7 scored categories. Puzzle API and MCP leads on schema & documentation and security & auth.

### Do FreeAgent API and Puzzle API and MCP need an API key?

Both use an OAuth sign-in.

### Can an agent call FreeAgent API and Puzzle API and MCP without installing anything?

Yes. FreeAgent API has a hosted endpoint at https://api.freeagent.com/v2 and Puzzle API and MCP at https://app.puzzle.io/mcp.


## For agents

- This comparison as JSON: https://www.anchorterminal.com/compare/freeagent-vs-puzzle.json, and with the fewest tokens: https://www.anchorterminal.com/compare/freeagent-vs-puzzle.min.md
- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {"a": "freeagent", "b": "puzzle"}`. From a terminal: `anchor compare freeagent puzzle`
- Each listing in full: https://www.anchorterminal.com/api/v1/tools/freeagent.json and https://www.anchorterminal.com/api/v1/tools/puzzle.json

## Other comparisons with FreeAgent API or Puzzle API and MCP

- [Apideck Accounting API + MCP vs FreeAgent API](https://www.anchorterminal.com/compare/apideck-accounting-vs-freeagent.md)
- [Apideck Accounting API + MCP vs Puzzle API and MCP](https://www.anchorterminal.com/compare/apideck-accounting-vs-puzzle.md)
- [Codat vs FreeAgent API](https://www.anchorterminal.com/compare/codat-vs-freeagent.md)
- [Codat vs Puzzle API and MCP](https://www.anchorterminal.com/compare/codat-vs-puzzle.md)
- [FreeAgent API vs FreshBooks API](https://www.anchorterminal.com/compare/freeagent-vs-freshbooks.md)
- [FreeAgent API vs Merge Accounting API](https://www.anchorterminal.com/compare/freeagent-vs-merge-accounting.md)
- [FreeAgent API vs Odoo External API](https://www.anchorterminal.com/compare/freeagent-vs-odoo.md)
- [FreeAgent API vs Pennylane](https://www.anchorterminal.com/compare/freeagent-vs-pennylane.md)
- [FreeAgent API vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/freeagent-vs-quickbooks-online.md)
- [FreeAgent API vs rotki MCP server](https://www.anchorterminal.com/compare/freeagent-vs-rotki-mcp.md)
- [FreeAgent API vs Rutter Accounting API](https://www.anchorterminal.com/compare/freeagent-vs-rutter.md)
- [FreeAgent API vs Xero API + MCP](https://www.anchorterminal.com/compare/freeagent-vs-xero.md)
- [FreeAgent API vs Zoho Books](https://www.anchorterminal.com/compare/freeagent-vs-zoho-books.md)
- [FreshBooks API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/freshbooks-vs-puzzle.md)
- [Merge Accounting API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/merge-accounting-vs-puzzle.md)
- [Odoo External API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/odoo-vs-puzzle.md)
- [Pennylane vs Puzzle API and MCP](https://www.anchorterminal.com/compare/pennylane-vs-puzzle.md)
- [Puzzle API and MCP vs QuickBooks Online API + MCP](https://www.anchorterminal.com/compare/puzzle-vs-quickbooks-online.md)
- [Puzzle API and MCP vs rotki MCP server](https://www.anchorterminal.com/compare/puzzle-vs-rotki-mcp.md)
- [Puzzle API and MCP vs Rutter Accounting API](https://www.anchorterminal.com/compare/puzzle-vs-rutter.md)
- [Puzzle API and MCP vs Xero API + MCP](https://www.anchorterminal.com/compare/puzzle-vs-xero.md)
- [Puzzle API and MCP vs Zoho Books](https://www.anchorterminal.com/compare/puzzle-vs-zoho-books.md)
- [FreeAgent API vs Invoice Ninja API](https://www.anchorterminal.com/compare/freeagent-vs-invoice-ninja.md)
- [Invoice Ninja API vs Puzzle API and MCP](https://www.anchorterminal.com/compare/invoice-ninja-vs-puzzle.md)

---

Query this catalogue directly over MCP: https://www.anchorterminal.com/mcp (Streamable HTTP, no key). How: https://www.anchorterminal.com/agents/#mcp
