Timesheets
The Timesheets API provides CRUD access to time entries — time logged against a task.New to the API? Start with Getting started (base URL, response envelope, errors, pagination) and Authentication (API keys).
Identifier note: timesheets are addressed by their numeric timer_id.
A timesheet entry logs time against a task. You supply thetask_id, theuser_idwho performed the work, and the duration (hours+minutes); the project and client are derived from the task. The duration must total at least one minute.
Scope: live timer start/stop is on the Tasks API (task-timers list + stop-all). Bulk delete, pinning, settings and the stats widget are out of scope. The billing status is managed by invoicing, not editable here.
The timesheet object
| Field | Type | Notes |
|---|---|---|
id | integer | Timer/timesheet id. |
task_id | int | The task the time is logged against. |
project_id / client_id | int | Derived from the task. |
worked_by_id | int | The user who performed the work. |
recorded_by_id | int | The user who recorded the entry (the API admin). |
time_seconds | int | Duration in seconds. |
time_readable | string | Human-readable duration (e.g. 1h 30m). |
status | string | stopped (manual entries) or running. |
billing | object | status (not_invoiced/invoiced) + invoice_id. Read-only. |
List / search timesheets
task_id, project_id, client_id, user_id (worked-by), status,
billing_status, date_start, date_end, sort (timer_created,timer_time), order,
limit, page.
Get a timesheet
Record a timesheet entry
| Parameter | Type | Required | Notes |
|---|---|---|---|
task_id | integer | yes | The task (project/client derived from it). |
user_id | integer | yes | The user who performed the work. |
hours | numeric | yes | |
minutes | numeric | yes | |
timer_created | date | yes | The date the work was done. |
hours + minutes must total at least one minute.
201, status stopped).
Update a timesheet entry
| Parameter | Type | Required |
|---|---|---|
hours | numeric | yes |
minutes | numeric | yes |
Delete a timesheet entry
Errors
See Getting started. Timesheet-specific:| Status | Meaning |
|---|---|
404 Not Found | The timesheet (or task) id does not exist. |
422 Unprocessable Entity | Validation failed (missing task/user/date, or a total time under one minute). |