POST
/api/public/v1/time-clock-entriesClock in
Opens an entry for the employee the token acts as — never for somebody else, which is why there is no body. If they are inside a scheduled shift right now the entry is linked to it and to that shift’s location, so the hours land against the right place without anyone picking it. Clocking in while an entry is already open returns 409 rather than a second entry.
Required scope
The access token must carry this scope. A token missing it gets 403 Forbidden. Grant them to an API client under Settings → Company → API, and to a teammate under Employee → Permissions.
hr:write
POSTExample request
curl
curl -X POST "https://www.pxb.app/api/public/v1/time-clock-entries" \
-H "Authorization: Bearer your_access_token"200Example response
json
{
"message": "Clocked in.",
"content": {
"entry": {
"id": "tce_5a2b",
"employeeId": "emp_44f1",
"locationId": "loc_abc123",
"shiftId": "shf_9911",
"clockInAt": "2026-08-29T13:02:00.000Z",
"clockOutAt": null,
"createdAt": "2026-08-29T13:02:00.000Z",
"updatedAt": "2026-08-29T13:02:00.000Z"
}
}
}409Example response
json
{
"message": "You are already clocked in."
}In the console
The same thing done by hand, for anyone comparing the API against the screen they already use.