---
title: "List organization tracking states"
method: GET
path: "/v2/organizations/{organization_id}/tracking_states"
tags: ["tracking_states"]
---

# List organization tracking states

`GET /v2/organizations/{organization_id}/tracking_states`

## Request

- Base URL: `https://api.hubstaff.com`
- URL: `https://api.hubstaff.com/v2/organizations/{organization_id}/tracking_states`
- Auth: OAuth 2
  - Authorization code: `https://account.hubstaff.com/authorizations/new`
  - Token URL: `https://account.hubstaff.com/access_tokens` scopes: `hubstaff:read`, `hubstaff:write`
- TypeScript: <https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/docs/v2/organizations/:organization_id/tracking_states/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns timer start/stop events for members in the organization.

Each event has a `type` of `start` or `stop`, derived from the client-reported
tracking state. Both the desktop and web timers report these events.

Results can be filtered by user_ids[], project_ids[], and task_ids[], within a
required occurred[start]/[stop] time range (maximum 7 days).

Events on deleted projects are excluded. Events from members who have been removed
from the organization are excluded by default; pass include_removed=true to include
them.

Note: `occurred_at` is client-reported and may be backdated, so results are returned
in insertion order (by id). Sort by `occurred_at` client-side to build a chronological
timeline.

## Path parameters

- `organization_id` integer, required

## Query parameters

- `page_start_id` integer
- `page_limit` integer
- `occurred[start]` string, date-time, required
- `occurred[stop]` string, date-time, required
- `user_ids` integer[]
- `project_ids` integer[]
- `task_ids` integer[]
- `include_removed` boolean

## Response `200`

A list of tracking state events

- object
  - `tracking_states` TrackingState[]
    - `id` integer, required: Tracking state event ID
    - `occurred_at` string, date-time, required: When the tracking state transition occurred (client-reported, UTC)
    - `type` string, required: Event type: start or stop
    - `user_id` integer, required: User ID
    - `project_id` integer, required: Project ID
    - `project_type` string, required: Project type (project, work_order, work_break)
    - `task_id` integer, required: Task ID

## Other responses

- `400`: Invalid parameters
- `401`: Unauthorized
- `403`: API access is only for organizations on an active plan
- `404`: Could not find record
- `429`: Rate limit exceeded

## Changes

- **2026-11-06** `c6b90e4e4bdc`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/changes/v2/organizations/:organization_id/tracking_states/get.md)

---

[API](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api.md) - [All operations](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/llms.txt) - [OpenAPI document](https://skmtc.dev/hubstaff/apis/hubstaff-v2-api/revisions/c6b90e4e4bdc?raw)
