{
"collection": [
{
"id": 42,
"user_id": 819,
"user_name": "John Smith",
"start_time": "2025-11-17T08:00:00.000Z",
"end_time": "2025-11-17T17:00:00.000Z",
"total_break_minutes": 60,
"total_duration_minutes": 480,
"description": "Monday, 8h",
"payroll_timezone": "Europe/Helsinki",
"reported_at": null,
"entry_type": "regular",
"treat_extra_time_as": "flex",
"automatic": false
}
],
"pagination": {
"current_page": 1,
"total_pages": 1,
"total_count": 1
}
}
| Param name | Description |
|---|---|
|
page
optional |
Page number. Validations:
|
|
per_page
optional |
Number of records per page. Default: 50. Validations:
|
|
date_range
optional |
Get all entries within the specified date range, e.g. Validations:
|
|
user_id
optional |
Get all entries for the specified user. Validations:
|
|
automatic
optional |
Get all automatically/manually created entries. Validations:
|
|
sort_by
optional |
Sort by field. Default: Validations:
|
|
order
optional |
Sorting order (descending or ascending). Default: Validations:
|
{
"id": 42,
"user_id": 819,
"user_name": "John Smith",
"start_time": "2025-11-17T08:00:00.000Z",
"end_time": "2025-11-17T17:00:00.000Z",
"total_break_minutes": 60,
"total_duration_minutes": 480,
"description": "Monday, 8h",
"payroll_timezone": "Europe/Helsinki",
"reported_at": null,
"entry_type": "regular",
"treat_extra_time_as": "flex",
"automatic": true
}
| Param name | Description |
|---|---|
|
id
required |
Entry ID Validations:
|
| Param name | Description |
|---|---|
|
work_time_entry
required |
Validations:
|
|
work_time_entry[user_id]
optional |
User ID. Falls back to current user’s ID. Validations:
|
|
work_time_entry[start_time]
required |
Work-time start, e.g. Validations:
|
|
work_time_entry[end_time]
required |
Work-time end, e.g. Validations:
|
|
work_time_entry[total_break_minutes]
optional |
Total breaks duration in minutes. Validations:
|
|
work_time_entry[description]
optional |
Work-time entry description. Validations:
|
|
work_time_entry[entry_type]
optional |
Entry type. Default: Validations:
|
|
work_time_entry[treat_extra_time_as]
optional |
Whether to treat overtime as flex or as paid overtime. Validations:
|
| Param name | Description |
|---|---|
|
id
required |
Entry ID Validations:
|
|
work_time_entry
required |
Validations:
|
|
work_time_entry[user_id]
optional |
User ID. Falls back to current user’s ID. Validations:
|
|
work_time_entry[start_time]
required |
Work-time start, e.g. Validations:
|
|
work_time_entry[end_time]
required |
Work-time end, e.g. Validations:
|
|
work_time_entry[total_break_minutes]
optional |
Total breaks duration in minutes. Validations:
|
|
work_time_entry[description]
optional |
Work-time entry description. Validations:
|
|
work_time_entry[entry_type]
optional |
Entry type. Default: Validations:
|
|
work_time_entry[treat_extra_time_as]
optional |
Whether to treat overtime as flex or as paid overtime. Validations:
|
| Param name | Description |
|---|---|
|
id
required |
Entry ID Validations:
|
Mark work-time entry as reported to payroll by setting its reported_at timestamp, or mark it as not reported to payroll by setting its reported_at to null. Reported entries are locked for edit.
{"reported_at":1740649659}
{"reported_at":true}
{"reported_at":null}
| Param name | Description |
|---|---|
|
reported_at
optional |
Timestamp, in Unix time format. Pass Validations:
|
["regular","on_call","travel","training","staggered"]
| Param name | Description |
|---|---|
|
user_id
required |
Validations:
|
Get work time stats for a user with a daily breakdown for a given date range.
Stats will include:
allow_paid_overtime; excluded from work_time_balanceactual − paid_overtime − mandatoryPermissions. User's work time balance can be accessed by:
[
{
"date": "2025-03-25",
"actual_worked_time": 900,
"mandatory_working_time": 450,
"absence_time": 0,
"paid_overtime_time": 450,
"work_time_balance": 0,
"is_locked": false
},
{
"date": "2025-03-26",
"actual_worked_time": 0,
"mandatory_working_time": 450,
"absence_time": 0,
"work_time_balance": -450,
"is_locked": true
}
]
| Param name | Description |
|---|---|
|
user_id
optional |
User ID. Default: current user ID. Validations:
|
|
start_date
optional |
Date to start the balance calculations from. Default: date of the user’s first time entry. If start date has not been passed explicitly and user has no time entries, time balance will not be calculated. Validations:
|
|
end_date
optional |
Date to end the balance calculations with, inclusive. Default: today. Validations:
|
|
date_range
optional |
Get stats within the specified date range.Either pass date_range or start/end dates. Date range format: Validations:
|
start_time, end_time, and total_break_minutes.start_time only.remaining_work_minutes to the response.{} if defaults cannot be calculated.| Code | Description |
|---|---|
| 422 | Date param is invalid. |
{
"start_time": "2025-12-31T06:30:00.000Z",
"end_time": "2025-12-31T15:30:00.000Z",
"total_break_minutes": 60,
"remaining_work_minutes": 450
}
| Param name | Description |
|---|---|
|
date
optional |
Date, e.g. Validations:
|