GET /clock
Returns the users who are currently clocked in (have a running clock time entry). Field names are consistent with POST /clock and Get Time Entries. Like every /v2/auth endpoint, the result respects the role-based permissions of the user behind the API key (see roles in Add Or Edit User): the response only contains the users this user is allowed to see. An employee sees only their own status; users with higher roles — approver, manager, administrator, main_administrator — see the clocked-in users of the organizations they are responsible for. Results are paginated.
https://mctime.com/api/v2/auth/clock
Authentication: header API_KEY: <your key>.
Query parameters (all optional):
| Parameter | Type | Description |
|---|---|---|
userIds | string (repeatable) | Restrict to these users. A user the authenticated user may not see yields a 400 item for that user (the others are still returned). Empty = all users the key may see. |
timeTypes | string (repeatable) | Filter by time-type name. Possible values: work, parental_leave, worked_rest_period, clocking, statutory_leave, public_holiday_abroad, medical_leave, bad_weather, company_vacation, unpaid_vacation, care_leave, out_office, work_accident_sickness, military_exercize, flextime, unpaid_time_off, home_office, study_leave, paid_time_off, other_leave, vacation_abroad, travel, sick, military_service, jubilee_day, vacation, move, special_leave, free_time |
organizationIds | string (repeatable) | Filter by organization UUID. Only organizations the authenticated user is allowed to manage are accepted. |
organizationNames | string (repeatable) | Filter by organization name (resolved to an allowed organization). |
page | integer | Page number, starting at 1 (default). Page size is 20, paginated over the currently clocked-in users. |
Response 200 OK:
{
"items": [
{
"userId": "11111111-1111-1111-1111-111111111111",
"userFirstName": "John",
"userLastName": "Doe",
"clockedIn": true,
"onBreak": true,
"from": "2026-01-15T08:00:00+01:00",
"id": "22222222-2222-2222-2222-222222222222",
"organizationId": "33333333-3333-3333-3333-333333333333",
"organizationName": "Main Office",
"timeType": "work",
"breaks": [
{ "id": "55555555-5555-5555-5555-555555555555", "from": "2026-01-15T12:00:00+01:00", "to": null, "automatic": false }
]
}
],
"page": 1,
"totalItems": 1,
"totalCount": 1
}
Response fields
| Field | Description |
|---|---|
userId / userFirstName / userLastName | The clocked-in user. |
clockedIn | Always true (only running entries are returned). |
onBreak | true while the user is currently on a break (an open break, see breaks). |
from | Clock-in time (ISO-8601 with timezone offset). |
id | Id of the running clock entry (use it with GET /clock/{id}). |
organizationId / organizationName | The organization the user clocked in on. |
timeType | Time-type name of the running entry (one of the timeTypes values above), same naming as POST /clock. |
breaks | Breaks of the running entry, same shape as POST /clock / Get Time Entries: {id, from, to, automatic}. A currently ongoing break has to: null. null when there are no breaks. |
totalItems / totalCount | Number of clocked-in users matching the request / number of pages. |
Status codes
| Code | When |
|---|---|
200 | Success (the list may be empty). |
400 | Per item, for a userId the authenticated user may not see, or an organization filter they are not allowed to manage. |
401 | Missing or invalid API_KEY. |
GET /clock/{id}
Returns a single open clock status by its entry id (same item shape as GET /clock, including breaks and onBreak).
https://mctime.com/api/v2/auth/clock/{id}
Path parameter: id — the id of the open (running) clock entry.
Status codes
| Code | When |
|---|---|
200 | The open clock status (same item shape as GET /clock). |
404 | The id is not an open clock entry — it has already been clocked out (it is then a regular Time Entry, see GET /times/{id}). |
400 | The authenticated user is not allowed to see this entry, or the id does not exist (mirrors GET /times/{id}). |
401 | Missing or invalid API_KEY. |
Status code details
Consistent with
GET /times/{id}, a non-existent id returns 400 ("Report was not found"), not 404. A 404 specifically means the entry exists but has already been clocked out.
