Tracking Groups

Minimum access level: My Money, unless stated otherwise.

The Tracking Groups endpoint lists all available Tracking Groups and labels.

Attributes

Tracking Group

Attribute Description Kind
url The unique identifier for the Tracking Group URI
name The name of the Tracking Group (maximum 50 characters, unique per company) String
status One of the following:
  • active
  • hidden
String
labels The Tracking Group labels belonging to this group (see below) Array
created_at Creation of the Tracking Group resource (UTC) Timestamp
updated_at When the Tracking Group resource was last updated (UTC) Timestamp

Tracking Group label

Attribute Description Kind
url The unique identifier for the Tracking Group label URI
name The name of the Tracking Group label String
status One of the following:
  • active
  • hidden
String

A label's status is hidden if the label itself has been hidden, or if the Tracking Group it belongs to has been hidden.

Labels are always returned in the order they were created.

List all Tracking Groups

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

By default, hidden Tracking Groups and hidden Tracking Group labels are excluded from the response.

Input

Including hidden Tracking Groups and Tracking Group labels

GET https://api.freeagent.com/v2/tracking_groups?include_hidden=true
  • include_hidden
    • false (default): Show only active Tracking Groups and active Tracking Group labels.
    • true: Show all Tracking Groups and Tracking Group labels, including hidden ones.

Sort Orders

GET https://api.freeagent.com/v2/tracking_groups?order_by=labels_count
  • order_by
    • name (default): Sort by the name of the Tracking Group.
    • status: Sort by status, active groups first.
    • labels_count: Sort by the number of Tracking Group labels in the group.

To sort in descending order, pass reverse=true, e.g.

GET https://api.freeagent.com/v2/tracking_groups?order_by=name&reverse=true

Response

Status: 200 OK
{
  "tracking_groups": [
    {
      "url": "https://api.freeagent.com/v2/tracking_groups/1",
      "name": "Region",
      "status": "active",
      "labels": [
        {
          "url": "https://api.freeagent.com/v2/tracking_group_labels/1",
          "name": "North",
          "status": "active"
        },
        {
          "url": "https://api.freeagent.com/v2/tracking_group_labels/2",
          "name": "South",
          "status": "active"
        }
      ],
      "created_at": "2026-10-01T09:15:00.000Z",
      "updated_at": "2026-10-14T11:42:03.000Z"
    },
    {
      "url": "https://api.freeagent.com/v2/tracking_groups/2",
      "name": "Department",
      "status": "active",
      "labels": [
        {
          "url": "https://api.freeagent.com/v2/tracking_group_labels/3",
          "name": "Sales",
          "status": "active"
        },
        {
          "url": "https://api.freeagent.com/v2/tracking_group_labels/4",
          "name": "Engineering",
          "status": "active"
        },
        {
          "url": "https://api.freeagent.com/v2/tracking_group_labels/5",
          "name": "People Operations",
          "status": "active"
        }
      ],
      "created_at": "2026-10-02T13:00:21.000Z",
      "updated_at": "2026-10-02T13:00:21.000Z"
    }
  ]
}
Show as XML
<?xml version="1.0" encoding="UTF-8"?>
<freeagent>
  <tracking-groups type="array">
    <tracking-group>
      <url>https://api.freeagent.com/v2/tracking_groups/1</url>
      <name>Region</name>
      <status>active</status>
      <labels type="array">
        <label>
          <url>https://api.freeagent.com/v2/tracking_group_labels/1</url>
          <name>North</name>
          <status>active</status>
        </label>
        <label>
          <url>https://api.freeagent.com/v2/tracking_group_labels/2</url>
          <name>South</name>
          <status>active</status>
        </label>
      </labels>
      <created-at type="datetime">2026-10-01T09:15:00Z</created-at>
      <updated-at type="datetime">2026-10-14T11:42:03Z</updated-at>
    </tracking-group>
    <tracking-group>
      <url>https://api.freeagent.com/v2/tracking_groups/2</url>
      <name>Department</name>
      <status>active</status>
      <labels type="array">
        <label>
          <url>https://api.freeagent.com/v2/tracking_group_labels/3</url>
          <name>Sales</name>
          <status>active</status>
        </label>
        <label>
          <url>https://api.freeagent.com/v2/tracking_group_labels/4</url>
          <name>Engineering</name>
          <status>active</status>
        </label>
        <label>
          <url>https://api.freeagent.com/v2/tracking_group_labels/5</url>
          <name>People Operations</name>
          <status>active</status>
        </label>
      </labels>
      <created-at type="datetime">2026-10-02T13:00:21Z</created-at>
      <updated-at type="datetime">2026-10-02T13:00:21Z</updated-at>
    </tracking-group>
  </tracking-groups>
</freeagent>
Show as JSON

Get a single Tracking Group

GET https://api.freeagent.com/v2/tracking_groups/:id

A single Tracking Group is always returned with all of its labels, including hidden ones, and can be fetched even if the group itself is hidden.

Response

Status: 200 OK
{
  "tracking_group": {
    "url": "https://api.freeagent.com/v2/tracking_groups/1",
    "name": "Region",
    "status": "active",
    "labels": [
      {
        "url": "https://api.freeagent.com/v2/tracking_group_labels/1",
        "name": "North",
        "status": "active"
      },
      {
        "url": "https://api.freeagent.com/v2/tracking_group_labels/2",
        "name": "South",
        "status": "active"
      },
      {
        "url": "https://api.freeagent.com/v2/tracking_group_labels/6",
        "name": "Wales",
        "status": "hidden"
      }
    ],
    "created_at": "2026-10-01T09:15:00.000Z",
    "updated_at": "2026-10-14T11:42:03.000Z"
  }
}
Show as XML
<?xml version="1.0" encoding="UTF-8"?>
<freeagent>
  <tracking-group>
    <url>https://api.freeagent.com/v2/tracking_groups/1</url>
    <name>Region</name>
    <status>active</status>
    <labels type="array">
      <label>
        <url>https://api.freeagent.com/v2/tracking_group_labels/1</url>
        <name>North</name>
        <status>active</status>
      </label>
      <label>
        <url>https://api.freeagent.com/v2/tracking_group_labels/2</url>
        <name>South</name>
        <status>active</status>
      </label>
      <label>
        <url>https://api.freeagent.com/v2/tracking_group_labels/6</url>
        <name>Wales</name>
        <status>hidden</status>
      </label>
    </labels>
    <created-at type="datetime">2026-10-01T09:15:00Z</created-at>
    <updated-at type="datetime">2026-10-14T11:42:03Z</updated-at>
  </tracking-group>
</freeagent>
Show as JSON

Using Tracking Group labels

Tracking Group labels can currently only be applied to Bank Transaction Explanations and Expenses.

The following optional attribute will be present in the response of the resource when Tracking Group labels have been associated with it:

Attribute Description Kind
tracking_groups The Tracking Groups and labels currently applied to this item. The Tracking Group attributes url, name and status are included, and a labels array holds the label applied from that group. When no Tracking Groups are applied, this attribute will not be present. Read-only. Array


The following optional attributes will be available when setting Tracking Group labels on a resource:

Attribute Description Kind
tracking_group_labels Used only when creating or updating a resource and never included in the response. Lets you set labels using a flat list of Tracking Group label URLs, without needing the nested tracking_groups structure. To read the labels on a resource, use tracking_groups, above. Replaces any existing Tracking Group labels. Send an empty array to remove all labels. Array