POST
/api/public/v1/time-clock-entries

Clock 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.

Sidebar → clock
/dashboard
  1. Clock in from the clock control in the sidebar.