List time entries
The caller's OWN entries only — sharing a project never exposes anyone's hours, so there is no scope lens here. Ordered started_at descending, hard limit 500. from/to filter on started_at; tagId filters to entries carrying that tag.
View as MarkdownAuthorization
bearer In: header
Query Parameters
date-timedate-timeResponse Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/time-entries"{ "entries": [ { "id": "string", "projectId": "string", "projectName": "string", "projectColor": "string", "clientName": "string", "description": "string", "startedAt": "2019-08-24T14:15:22Z", "endedAt": "2019-08-24T14:15:22Z", "durationSeconds": 0, "isRunning": true, "isBillable": true, "billingStatus": "string", "tags": [ { "id": "string", "name": "string", "color": "string", "created": "2019-08-24T14:15:22Z" } ] } ]}Delete a project
Owner-only. A project shared with the caller by a teammate answers 403.
Log a time entry
Logs time against any project the caller can read — their own or one shared with the organization by a teammate. The entry belongs to the caller and stays private to them. startedAt defaults to now. With endedAt, duration is derived; with only durationSeconds, endedAt = startedAt + duration. One of endedAt or durationSeconds is required (timers start via /v1/timer/start). Timestamps are strict RFC3339. isBillable defaults true.