API Reference
API Reference

/time-tracking/time-entries

Returns a paginated list of time entries. Required scope: r_time_tracking.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
🚧

This endpoint uses the r_time_tracking scope, which must be enabled through the Integrations section found within the Settings menu.

This endpoint supports both user tokens and account tokens.

Token behaviour

Account token — when employee_ids is omitted, returns time entries for every employee in the account. Supply employee_ids to filter for specific employees.

User token — when employee_ids is omitted, returns the authenticated user's own entries plus those of all direct and indirect descendants in the org chart. Users with the time tracking manage permission receive every entry in the account regardless of the org chart.

When employee_ids is provided on a user token, each id is authorized individually: if the user cannot view any of the requested employees, the request fails with 403.

Time format

📘

Times are returned in UTC

clock_in_time and clock_out_time are returned as ISO 8601 timestamps in UTC (with the Z suffix, e.g. 2024-10-15T09:00:00.000Z). Each entry also includes a timezone field with the IANA timezone (e.g. Europe/London) that was resolved for the timesheet at the time the entry was persisted — use it to render the wall-clock time when needed.

Results

Calling the /time-tracking/time-entries endpoint returns a paginated list of time entries. An example of the response follows:

{
  "total_count": 2,
  "time_entries": [
    {
      "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "employee_id": "3fc9a811",
      "type": "time-entry",
      "clock_in_time": "2024-01-15T09:00:00.000Z",
      "clock_out_time": "2024-01-15T17:30:00.000Z",
      "worked_minutes": 510,
      "is_active": false,
      "note": "Regular shift",
      "timezone": "Europe/London"
    },
    {
      "uuid": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
      "employee_id": "3fc9a811",
      "type": "clock-in",
      "clock_in_time": "2024-01-16T09:05:00.000Z",
      "clock_out_time": null,
      "worked_minutes": null,
      "is_active": true,
      "note": null,
      "timezone": "Europe/London"
    }
  ]
}

Each time entry will have the following keys:

keytypedescription
uuidstringUnique identifier for the time entry
employee_idstringSPI key of the employee
typestringEntry type: time-entry, clock-in, clock-out, ergani-clock-in, or ergani-clock-out
clock_in_timestring | nullISO 8601 clock-in timestamp in UTC (with Z suffix); null for clock-out entries
clock_out_timestring | nullISO 8601 clock-out timestamp in UTC (with Z suffix); null for open clock-in entries
worked_minutesinteger | nullDuration in minutes; null if the entry is still active or has no out-time
is_activebooleantrue if this is the currently running clock entry
notestring | nullOptional note attached to the entry
timezonestringIANA timezone resolved for the timesheet (e.g. Europe/London, Etc/UTC)

Error responses

StatusCondition
400Invalid query parameters (e.g. to_date before from_date, duration without duration_operator, invalid limit/offset values)
403Missing required scope r_time_tracking, or a user token supplied an employee_ids value it cannot view
Query Params
types
array of strings

Filter by entry type(s). Valid values: time-entry, clock-in, clock-out, ergani-clock-in, ergani-clock-out

types
string

ISO 8601 date — return entries at or after this date

string

ISO 8601 date — return entries at or before this date

employee_ids
array of strings

Filter by one or more employee SPI keys. Available to both account and user tokens. User tokens are authorized per employee and receive a 403 if any id cannot be viewed.

employee_ids
integer

Filter by worked minutes, used together with duration_operator

string

Comparison operator for duration. One of: equal, greater_than, greater_than_or_equal, less_than, less_than_or_equal

integer
enum

Number of results per page. Allowed values: 10, 20, 50, 100

Allowed:
integer

Number of entries to skip (for pagination)

Responses

Language
Credentials
Header
URL
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json