403 "API access is disabled for this company" — is the API available on a Mettle-provided (free) FreeAgent subscription?

What I’m trying to do:
Connect my own FreeAgent company to a third-party app I’ve built (OAuth), to create invoices.

What’s happening:
OAuth completes successfully against production — I receive valid access and refresh tokens. But every authenticated call, including the simplest read, returns a 403.

Exact request:

GET https://api.freeagent.com/v2/company

Authorization: Bearer <valid production token>

User-Agent: <my app name>

Accept: application/json

Exact response:

HTTP 403

{"errors":{"error":{"message":"API access is disabled for this company"}}}

What I’ve established:

  • It’s a 403, not a 401 — the token is valid and accepted; the company itself is gated.
  • Same result on GET /v2/company, so it’s not a payload or scope issue.
  • The app authorised fine and tokens refresh correctly.
  • My FreeAgent subscription is the free one provided through Mettle, not a direct paid subscription. The account is active.

My questions:

  1. What causes “API access is disabled for this company,” and can I resolve it myself?
  2. Is the REST API available on a Mettle-provided free FreeAgent subscription, or does it require a paid plan? This is the key thing I need confirmed.
  3. If it can be enabled, what’s the exact step — a company-side flag, a setup stage, or an upgrade?

Thanks!

Hi Adam! :waving_hand:

This error happens when the company you’re trying to invoke the API on is an inactive one. So, it shouldn’t have much to do with your free Mettle-provided subscription. To resolve this, I’d just go double-check that the token you’re using is indeed with your active account :slight_smile:

I hope this helps! Please let me know if you’d like to chat more about this, as I’ll be around and more than happy to lend a hand! :smile:

Have a good one!

Fiona