v3

OpenAPI 3.1.02026-07-311255771.3 MB
Unified HRIS API

Get timesheets

Get timesheets

Retrieve attendance data and timesheets from HRIS tools.

<Warning>Open Beta Feature: This endpoint is currently in beta. Please reach out to our support team if you need assistance with implementation.</Warning>

For a detailed explanation of the data model, validation rules, time zones, payable hours, approvals, and break patterns, see the Time & Attendance guide.

<Note> By default, only the last 2 months of timesheets are kept up to date during sync (configurable via the "Historical timesheet months to sync" setting). Kombo only deletion-tracks timesheets inside that window — timesheets that age out are kept and are not marked as deleted just because they were not re-fetched. Within the window, timesheets that disappear from the remote HRIS are marked with `remote_deleted_at` as usual. See the [Time & Attendance guide](/hris/features/time-and-attendance) for details. </Note>

Top level filters use AND, while individual filters use OR if they accept multiple arguments. That means filters will be resolved like this: (id IN ids) AND (remote_id IN remote_ids)

get/hris/timesheets

Query parameters

cursorstring

An optional cursor string used for pagination. This can be retrieved from the next property of the previous page response.

An optional cursor string used for pagination. This can be retrieved from the next property of the previous page response.

page_sizeinteger

The number of results to return per page. Maximum is 250.

The number of results to return per page. Maximum is 250.

updated_afterstring date-time

Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. Returns records where either the record itself OR its nested data has been updated since this timestamp, even if the record's own changed_at field remains unchanged.

If you want to track entry deletion, also set the include_deleted=true query parameter, because otherwise, deleted entries will be hidden.

For more details, see Understanding changed_at vs updated_after Behavior.

For this endpoint, only changes to the returned record itself are considered.

Filter the entries based on the modification date in format YYYY-MM-DDTHH:mm:ss.sssZ. Returns records where either the record itself OR its nested data has been updated since this timestamp, even if the record's own changed_at field remains unchanged.

If you want to track entry deletion, also set the include_deleted=true query parameter, because otherwise, deleted entries will be hidden.

For more details, see Understanding changed_at vs updated_after Behavior.

For this endpoint, only changes to the returned record itself are considered.

include_deleted'true' | 'false'

By default, deleted entries are not returned. Use the include_deleted query param to include deleted entries too.

By default, deleted entries are not returned. Use the include_deleted query param to include deleted entries too.

ignore_unsupported_filters'true' | 'false'

When set to true, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.

When set to true, filters targeting fields not supported by this integration will be ignored instead of filtering out all results.

idsstring

Filter by a comma-separated list of IDs such as 222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3.

Filter by a comma-separated list of IDs such as 222k7eCGyUdgt2JWZDNnkDs3,B5DVmypWENfU6eMe6gYDyJG3.

remote_idsstring

Filter by a comma-separated list of remote IDs.

Filter by a comma-separated list of remote IDs.

employee_idstring

Returns timesheets for a specific employee.

Returns timesheets for a specific employee.

started_beforestring date-time

Return timesheets whose start time is before the given timestamp.

Return timesheets whose start time is before the given timestamp.

started_afterstring date-time

Return timesheets whose start time is on or after the given timestamp.

Return timesheets whose start time is on or after the given timestamp.

ended_beforestring date-time

Return timesheets whose end time is on or before the given timestamp.

Return timesheets whose end time is on or before the given timestamp.

ended_afterstring date-time

Return timesheets whose end time is on or after the given timestamp.

Return timesheets whose end time is on or after the given timestamp.

Headers

X-Integration-Idstring required

ID of the integration you want to interact with.

Response

GET /hris/timesheets Positive response

status'success' required

Example response

{
  "data": {
    "next": "eyJwYWdlIjoxMiwibm90ZSI6InRoaXMgaXMganVzdCBhbiBleGFtcGxlIGFuZCBub3QgcmVwcmVzZW50YXRpdmUgZm9yIGEgcmVhbCBjdXJzb3IhIn0=",
    "results": [
      {
        "id": "C1BB1C36-FE1D-4185-AAB8-0716D8FBA017",
        "remote_id": "446655440000",
        "employee_id": "289AD550-8659-4305-92B2-6EAA006AAB17",
        "started_at": "2025-04-16T09:02:00.000Z",
        "ended_at": "2025-04-16T16:59:00.000Z",
        "timezone": "-04:00",
        "payable_hours": 8,
        "unpaid_break_minutes": 30,
        "breaks": [
          {
            "ended_at": "2025-04-16T12:30:00.000Z",
            "paid": false,
            "started_at": "2025-04-16T12:00:00.000Z"
          }
        ],
        "approval_status": "APPROVED",
        "approved_at": "2025-04-16T17:05:31.000Z",
        "comment": "Sprint planning & code review",
        "custom_fields": {},
        "integration_fields": [],
        "changed_at": "2022-08-07T14:01:29.196Z",
        "remote_deleted_at": null,
        "remote_data": {}
      }
    ]
  }
}