List shifts in an organization
Lists the shifts recorded on the organization’s contracts for a period, from any app or system that entered them. Use it to sync worked time into an external payroll, ERP or reporting system, fetching only what changed since the last sync.
Token scopes: time-tracking:read, worker:read
Beta: this version requires the X-Beta: true request header and its contract may change before it is promoted to stable. It is scheduled to become stable on 2027-02-03.
Authentication
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 -X GET 'https://api.deel.training/rest/v2/contracts' \
-H 'Authorization: Bearer YOUR-TOKEN-HERE'
Standard OAuth2 security scheme based on https://swagger.io/docs/specification/authentication/
Headers
Opts in to the beta version of this endpoint. Must be true.
Query parameters
Return only shifts on these contracts. Repeat the key for several values. Worker tokens only see their own contracts; other contracts return no shifts.
Return only shifts in these approval statuses. Repeat the key for several values. A pay-as-you-go shift is matched on its own approval status, which can differ from the status it shows when its hourly report has moved on.
Return only shifts recorded against this project. Pay-as-you-go shifts are not matched by this filter yet.
Opaque cursor from the previous page’s next_cursor. Send it with the same filters, in the same order, and the same limit as the first page.
Response
Whether to fetch another page with next_cursor. A full page sets it, so the page after it can be empty.
Cursor for the next page; null on the last page.