Docs

FreeAgent API Authentication

How to authenticate FreeAgent API requests: one Bearer API key plus a connectionId. MindCloud runs the OAuth flow and refreshes FreeAgent tokens for you.

Every FreeAgent API request through MindCloud needs two things: a MindCloud API Key and a connectionId for your FreeAgent account. This page covers both, plus exactly how to send them, so you do not need to visit any other page to get authenticated.

Steps to authenticate

  1. Create a MindCloud account at app.mindcloud.co if you do not already have one.
  2. Generate a MindCloud API Key in API Keys. This is the Bearer token you send on every request. Keep it on your server.
  3. Create a FreeAgent connection in Connections. FreeAgent uses OAuth. When you create the connection, you are redirected to sign in to FreeAgent and approve access — MindCloud stores the resulting tokens and refreshes them automatically, so your integration never has to.
  4. Copy the connection’s connectionId — you will send it on every request alongside your MindCloud API Key.

How requests are authenticated

Authentication has two layers. Your MindCloud API Key authenticates the request to MindCloud, sent as a Bearer token in the Authorization header. The connectionId selects the connected FreeAgent account that should run the action. MindCloud stores and refreshes the FreeAgent credentials behind that connection, so you never send provider tokens with your requests.

Pass connectionId in the query string for GET and DELETE actions, and in the JSON body for POST, PUT, and PATCH actions.

For example, calling Get Bill with an FreeAgent connection looks like this:

curl --request POST \
  --url "https://connect.mindcloud.co/v2/universal/apps/freeAgent/actions/get-bill/run" \
  --header "Authorization: Bearer $MINDCLOUD_API_KEY" \
  --header "Content-Type: application/json" \
  --data '{
  "connectionId": "$CONNECTION_ID",
  "arguments": {}
}'

The Authorization: Bearer <your MindCloud API Key> header authenticates you to MindCloud; the connectionId tells MindCloud which FreeAgent account to run the action against. Missing or invalid Authorization returns 401, and a missing or mismatched connectionId returns 400.

Connect FreeAgent

You need a FreeAgent developer app so you can copy its Client ID and Client Secret into MindCloud.

  1. Create a FreeAgent developer app

    Open the FreeAgent Developer Dashboard and create an app to get your OAuth Client ID and Client Secret.

    My Apps
  2. Add MindCloud as a redirect URI

    In your FreeAgent app settings, add the MindCloud OAuth redirect URI that the connection form shows you. FreeAgent requires the redirect URI to exactly match one registered in your Developer Dashboard account.

  3. Enter the app credentials in MindCloud

    Back in MindCloud, paste the Client ID and Client Secret into the FreeAgent connection form and continue with the OAuth popup.

  4. Authorize the connection

    Sign in to FreeAgent in the popup window and approve the app so MindCloud receives an authorization code and exchanges it for access and refresh tokens.

Keep your key safe

Keep your MindCloud API Key on your server; do not ship it in browser code, mobile apps, public repositories, or logs. Anyone with the key can call the Universal API as your MindCloud account, across every connection you have created.