Update an entry
Partial update. projectId must be readable by the caller (their own or an org-shared project). startedAt/endedAt are strict RFC3339; durationSeconds recomputes endedAt from startedAt (rejected on a running timer). endedAt must not precede startedAt; duration_seconds is recomputed whenever times change.
View as MarkdownAuthorization
bearer In: header
Path Parameters
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
curl -X PATCH "https://example.com/v1/time-entries/string" \ -H "Content-Type: application/json" \ -d '{}'{ "entry": { "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" } ] }}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.
Delete an entry
Owner-scoped delete.