Read the caller's open shift
Returns the caller's currently open or on-break shift in this workspace with its authoritative worked milliseconds, or null when they are not clocked in. Requires a workspace member with `time_entries:read` and the `time_tracking_v1` control enabled.
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
Response Body
application/json
application/json
application/json
curl -X GET "https://example.com/v1/workspaces/string/shifts/active"{ "data": { "shift": { "id": "string", "workspaceId": "string", "userId": "string", "userDisplayName": "string", "status": "open", "startedAt": "string", "endedAt": "string", "breakStartedAt": "string", "accumulatedBreakMs": 0, "workedMs": 0, "closedBy": "user", "note": "string", "createdByUserId": "string", "updatedByUserId": "string", "createdAt": "string", "updatedAt": "string" }, "serverTime": "string", "authoritativeWorkedMs": 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}Abandon a time entry without recording its time
Marks the caller's own running or paused entry `abandoned` so its elapsed time is not counted anywhere, and returns it. Requires a workspace member with `time_entries:write` who can write the entry's target, and only the person the entry belongs to may abandon it. An unknown entry is reported as not found and an entry that is neither active nor paused is refused as a transition conflict. Naturally idempotent: abandoning an already-abandoned entry returns it unchanged.
List shifts in a workspace
Returns shifts narrowed by `from`, `to`, `memberId`, and `status`, each with its worked and break totals. Requires a workspace member with `time_entries:read` and the `time_tracking_v1` control enabled; an invalid date, a reversed range, or a malformed `memberId` is rejected. Pass `limit` to cap the page size.