Log time manually
Creates a manual time entry. Give either `durationSeconds` or both `startedAt` and `endedAt` (never both forms). Classification defaults from the item's priority — `URGENT` items log as `INTERRUPTION`, everything else as `PLANNED` — and can be overridden per entry. Requires `work:write`.
Creates a manual time entry. Give either durationSeconds or both startedAt
and endedAt (never both forms). Classification defaults from the item's
priority — URGENT items log as INTERRUPTION, everything else as PLANNED —
and can be overridden per entry. Requires work:write.
Authorization
bearerAuth A session access token or a personal access token.
In: header
Path Parameters
Header Parameters
Retrying with the same key replays the original result instead of repeating the work.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
curl -X POST "https://example.com/work-items/497f6eca-6276-4993-bfeb-53cbbbba6f08/time-logs" \ -H "Content-Type: application/json" \ -d '{}'{ "data": { "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08", "workItemId": "1769c5a2-ca6e-4792-8bf1-b1a261dc7481", "projectId": "5a8591dd-4039-49df-9202-96385ba3eff8", "userId": "2c4a230c-5085-4924-a3e1-25fb4fc5965b", "startedAt": "2019-08-24T14:15:22Z", "endedAt": "2019-08-24T14:15:22Z", "durationSeconds": 1, "note": "string", "billable": true, "source": "TIMER", "classification": "PLANNED", "classificationOverridden": true, "createdAt": "2019-08-24T14:15:22Z", "updatedAt": "2019-08-24T14:15:22Z" }}Grouped time totals GET
Aggregates logged time by item, user, project, or period, with the planned-vs-interruption split. Every row reconciles: `plannedSeconds + interruptionSeconds = loggedSeconds`. Visibility never exceeds the caller's readable projects. Requires `work:read`.
Delete a time log DELETE
Soft delete — the entry disappears from every total. Owner or org admin only. Requires `work:write`.