For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
SupportDeel Home
OverviewPlatformEmployer of RecordContractorsGlobal PayrollHREmbeddedDeel ITAPI ReferenceChangelog
OverviewPlatformEmployer of RecordContractorsGlobal PayrollHREmbeddedDeel ITAPI ReferenceChangelog
  • Resources
    • Blog
    • Community
    • API spec
  • Global Payroll
    • Introduction
    • Time Tracking
    • Adjustments
  • Common Use Cases
    • Reimburse expenses
  • Endpoints
      • POSTCreate raw time tracking shifts
      • POSTCreate shifts
      • DELDelete a Shift by External ID
      • GETGet shift details
      • GETList of shifts
      • PATCHUpdate a shift
LogoLogo
SupportDeel Home
EndpointsTime Tracking Shifts

List of shifts

GET
/time_tracking/shifts
GET
/rest/v2/time_tracking/shifts
$curl -G https://api.letsdeel.com/rest/v2/time_tracking/shifts \
> -H "Authorization: Bearer <token>" \
> -d limit=20 \
> -d offset=0 \
> -d from_date=2025-01-01 \
> -d to_date=2025-12-31 \
> -d "contract_id[]=CONTRACT-001" \
> -d "contract_id[]=CONTRACT-002"
1{
2 "data": [
3 {
4 "created_at": "2024-10-02T05:09:35.691Z",
5 "updated_at": "2024-10-02T05:09:35.691Z",
6 "contract_id": "1234",
7 "description": "Sample shift description",
8 "external_id": "shift_123456r",
9 "date_of_work": "2023-10-01",
10 "summary": {
11 "total_break_hours": 1,
12 "payable_break_hours": 0.5,
13 "total_payable_hours": 7.5,
14 "shift_duration_hours": 8,
15 "shift_rate_external_id": "rate1234"
16 }
17 }
18 ],
19 "page": {
20 "offset": 0,
21 "total_rows": 6,
22 "items_per_page": 200
23 }
24}

Returns a paginated list of shifts. Results can be scoped to one or more contracts and bounded by a date range using from_date and to_date. Token scopes: time-tracking:read

Was this page helpful?
Previous

Update a shift

Next
Built with

Authentication

AuthorizationBearer
## Authentication The Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail. ```curl curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \ -H 'Authorization: Bearer YOUR-TOKEN-HERE' ``` [Learn more about authentication](/api/authentication)
OR
AuthorizationBearer
Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/

Query parameters

limitstringOptionalformat: "^[0-9]+$"
Maximum number of records to return.
offsetstringOptionalformat: "^[0-9]+$"

Offset/index of record for the next page of records to return.

from_datestringOptionalformat: "date"

Filter shifts from this date (YYYY-MM-DD).

to_datestringOptionalformat: "date"

Filter shifts until this date (YYYY-MM-DD).

contract_id[]list of stringsOptional
Filter shifts by one or more contract IDs.

Response

Successful response with paginated shifts.
datalist of objects
List of shift records.
pageobject
Pagination information for the response.

Errors

401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
500
Internal Server Error

Authentication

The Deel API uses bearer tokens to authenticate requests. All API calls must be made over HTTPS — calls over plain HTTP or without authentication will fail.

1curl -X GET 'https://api.letsdeel.com/rest/v2/contracts' \
2 -H 'Authorization: Bearer YOUR-TOKEN-HERE'

Learn more about authentication

Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/