Read an aggregated timesheet
Returns the same access-filtered entries as the list operation plus totals for the whole filtered set: overall duration and entry count, broken down by member and by target. Requires a workspace member with `time_entries:read`, the `time_tracking_v1` control, and a plan that includes the `time_reports` feature, since tracking time is free on every plan but the aggregated report is the paid capability. Paginated: pass `limit` and the `cursor` from the previous response.
Authorization
apiKey Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.
In: header
Path Parameters
Query Parameters
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/workspaces/string/time-entries/timesheet"{ "data": { "entries": [ { "id": "string", "workspaceId": "string", "userId": "string", "userDisplayName": "string", "targetKind": "database_record", "targetId": "string", "targetTitleSnapshot": "string", "databaseId": "string", "fieldId": "string", "fieldLabelSnapshot": "string", "source": "timer", "mode": "stopwatch", "status": "active", "startedAt": "string", "endedAt": "string", "pausedAt": "string", "accumulatedPausedMs": 0, "durationMs": 0, "targetDurationMs": 0, "dueAt": "string", "summary": "string", "soundId": "none", "completedBy": "user", "shiftId": "string", "clientMutationId": "string", "createdByUserId": "string", "updatedByUserId": "string", "createdAt": "string", "updatedAt": "string" } ], "cursor": "string", "hasMore": true, "totalDurationMs": 0, "entryCount": 0, "byMember": [ { "userId": "string", "userDisplayName": "string", "durationMs": 0, "entryCount": 0 } ], "byTarget": [ { "targetKind": "database_record", "targetId": "string", "targetTitle": "string", "durationMs": 0, "entryCount": 0 } ] }}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}{ "_tag": "ApiNotFound", "error": "not_found", "message": "That item does not exist, or this key cannot see it.", "status": 404}List time entries in a workspace
Returns a page of time entries narrowed by any of `from`, `to`, `memberId`, `targetId`, `databaseId`, `fieldId`, `targetKind`, `source`, and `status`, restricted to the entries whose targets the caller may read. Requires a workspace member with `time_entries:read` and the `time_tracking_v1` control enabled; an invalid date, a reversed range, or a malformed cursor is rejected. Paginated: pass `limit` and the `cursor` from the previous response.
Read one time entry
Returns a single entry with the resolved title and field settings of whatever it was tracked against. Requires a workspace member with `time_entries:read` who can read the entry's target and the `time_tracking_v1` control enabled; reading another member's workspace-level entry additionally requires `time_entries:manage`. An unknown entry is reported as not found.