# Get the active timer

Source: https://www.tracktimer.app/docs/get-active-timer

Read the key owner’s current timer in the bound workspace.

`GET /api/v1/timer`

Required scope: `timers:read`

Returns the active timer only if it belongs to the key's workspace. Requires bearer authentication and `timers:read`. No query parameters or body.

```sh
curl "https://www.tracktimer.app/api/v1/timer" \
  --header "Authorization: Bearer $TRACKTIMER_API_KEY"
```

## Response — 200

`timer` is `null` or an object with these fields:

- `id`: UUID of this timer/time entry.
- `clientId`, `projectId`: client and project UUIDs.
- `clientName`, `projectName`: nonempty display names.
- `billable`: boolean indicating whether the entry is billable.
- `note`: string up to 500 characters, or `null`.
- `startedAt`: ISO 8601 timestamp with timezone offset, normally UTC `Z`.
- `serverNow`: server timestamp used for this response's elapsed calculation.
- `elapsedSeconds`: nonnegative integer elapsed seconds as of `serverNow`.
- `payRateCents`: nonnegative integer hourly pay rate in cents, snapshotted on the entry. This is not the client billing rate.
- `currency`: always `"USD"`.

Integer duration and pay-rate fields are bounded by 2,147,483,647.

```json
{
  "timer": {
    "id": "33333333-3333-4333-8333-333333333333",
    "clientId": "11111111-1111-4111-8111-111111111111",
    "clientName": "Northstar",
    "projectId": "22222222-2222-4222-8222-222222222222",
    "projectName": "Website refresh",
    "billable": true,
    "note": "Homepage revisions",
    "startedAt": "2026-09-10T16:00:00.000Z",
    "serverNow": "2026-09-10T16:05:00.000Z",
    "elapsedSeconds": 300,
    "payRateCents": 5000,
    "currency": "USD"
  }
}
```

`{"timer":null}` means no active timer is visible in this workspace. The user can still have an active timer in another workspace.

Elapsed time is a server-calculated snapshot, not a live stream. Poll within the shared limit. Pay rate is the start-time snapshot; client billing rates and project margins are not exposed. See [shared errors](https://www.tracktimer.app/docs/errors-and-retries).

Examples use illustrative IDs and data. Use the values returned by your own workspace. [Review error handling and retry behavior.](https://www.tracktimer.app/docs/errors-and-retries)
