SnozeDevelopers
API referenceTime tracking

Clock in and open a shift

Opens a shift for the caller with an optional note and returns it with the server clock. Requires a workspace member with `time_entries:write` and the `time_tracking_v1` control enabled. A unique index enforces one open shift per person, so a caller who is already clocked in is refused as a transition conflict. Repeating the same `clientMutationId` replays the original shift rather than opening a second one.

POST
/v1/workspaces/{workspaceId}/shifts

Authorization

apiKey
headerAuthorizationBearer <snoze_sk_…>

Workspace API key created in Workspace settings → API keys. Scopes on the key bound what it can read and write.

Path Parameters

workspaceId*string

Request Body

application/json
  1. body
note?string|null
clientMutationId?string|null

Response Body

Success

application/json
  1. response
data*
Example Request
curl -X POST 'https://api.snoze.dev/v1/workspaces/string/shifts' \  -H 'Content-Type: application/json' \  -d '{}'
Example Response
{  "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  }}