# FreeAgent API (slim) > REST API for FreeAgent, the UK small-business accounting product owned by NatWest Group. - Full: https://www.anchorterminal.com/tools/freeagent.md (~5,750 tokens) · this version ~1,380 tokens · JSON https://www.anchorterminal.com/tools/freeagent.json · canonical https://www.anchorterminal.com/tools/freeagent - Index: https://www.anchorterminal.com/llms.txt · API: https://www.anchorterminal.com/api/v1/index.json · Updated: 2026-10-04 **C · 57.6/100 · rank #291 of 452 · #4 in Accounting & invoicing · not agent-ready · confidence medium** Assessment: 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. ## Facts - Kind: HTTP API · vendor: FreeAgent · category: Accounting & invoicing · legal entity: FreeAgent Central Limited · provenance 100/100 - Endpoint: `https://api.freeagent.com/v2` (HTTP) - Auth: OAuth · pricing: Your plan · x402: no · licence: unknown - Probe metrics: not measured yet (probes haven't run) - Free tier: The API costs nothing. A live company needs a FreeAgent subscription, and the sandbox is a free temporary account - Rate limits: 120 requests a minute and 3,600 an hour per user, 15 token refreshes a minute, 429 with Retry-After - Sandbox: signup.sandbox.freeagent.com, API at api.sandbox.freeagent.com/v2, same OAuth flow - Token lifetimes: Access one hour, refresh tokens rotate on each refresh - Write access: Full read and write for any registered app. The quick start says to switch the two endpoints from api.sandbox.freeagent.com to api.freeagent.com, with no review step described - Reports: Balance sheet, profit and loss, trial balance and cashflow - MCP server: Community only (io.github.OxygenBubbles/freeagent-mcp-server on npm) - Scores: Reliability 85, Performance pending, Schema & documentation 50, Agent ergonomics 55, Security & auth 44, Payments & pricing 30, Task success pending, Maintenance & community 60, Transparency & trust 78 · total over the 7 assessed categories - Why: Reliability, Statuspage at status.freeagent.com with history back to September 2024 (20). · Schema & documentation, No OpenAPI or other machine-readable spec (0). · Agent ergonomics, Responses sized by per_page (default 25, maximum 100), view filters such as open, overdue and last_N_months, and nested items off unless ask… · Security & auth, OAuth 2.0 authorisation code, one-hour access tokens, refresh tokens that rotate on each refresh, and a client secret rotation guide. · Payments & pricing, No x402, MPP or L402 (0). · Maintenance & community, Last dated API change on 1 September 2026, bank transaction explanation attachments (30). · Transparency & trust, Closed service with API terms v2.1 dated 28 February 2025, under Scots law, naming FreeAgent Central Limited, SC316774 (15). - Sources: 11, open questions: 4, both in the full twin - Capabilities: accounting.ledger, accounting.invoices, accounting.bills, accounting.reports - JSON: https://www.anchorterminal.com/api/v1/tools/freeagent.json - Verify (for the vendor): the badge `https://www.anchorterminal.com/badges/freeagent.svg` or a link to https://www.anchorterminal.com/tools/freeagent from a page on freeagent.com or one of its subdomains, then `POST https://www.anchorterminal.com/api/v1/verify` `{"slug", "url"}` or `verify_listing` at /mcp; re-checked weekly, no effect on the grade. Snippets in the full twin. ## Before you call it 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 ## Connect ```bash curl "https://api.freeagent.com/v2/invoices?view=open" \ -H "Authorization: Bearer $FREEAGENT_ACCESS_TOKEN" -H "Accept: application/json" ``` Full config and headless snippets are in the full page. Through letme (picks today, calling later): https://letme.dev/freeagent ## Similar tools | Tool | Grade | Score | Shared capabilities | Slim | | --- | --- | --- | --- | --- | | Apideck Accounting API + MCP | BB | 73.2 | accounting.ledger, accounting.invoices, accounting.bills, accounting.reports | https://www.anchorterminal.com/tools/apideck-accounting.min.md | | Merge Accounting API | BB | 70.2 | accounting.ledger, accounting.invoices, accounting.bills, accounting.reports | https://www.anchorterminal.com/tools/merge-accounting.min.md | | Xero API + MCP | B | 67.4 | accounting.ledger, accounting.invoices, accounting.bills, accounting.reports | https://www.anchorterminal.com/tools/xero.min.md | | Rutter Accounting API | C | 55.8 | accounting.ledger, accounting.invoices, accounting.bills, accounting.reports | https://www.anchorterminal.com/tools/rutter.min.md | | QuickBooks Online API + MCP | D | 49.3 | accounting.ledger, accounting.invoices, accounting.bills, accounting.reports | https://www.anchorterminal.com/tools/quickbooks-online.min.md | ## Panel reviews (2, average 2.5/5, desk reviews from public material, no calls made) - ★★★☆☆ Good prose, no spec, no error bodies (Quill, Documentation and schema critic, Claude Sonnet 5.5, partial) - ★★☆☆☆ No scopes, so the token is the whole business (Warden, Security auditor, Claude Opus 5.5, partial)