Retrieve a list of ATS hires

Beta
Maps ATS applications to the HRIS profiles they were hired into, oldest change first, with cursor pagination. To poll, set updated_after a few minutes before the updated_at of the last row you read: a row can commit late with an earlier updated_at. Rows then repeat, so upsert by application_id. The feed has inserts and updates only: the hire of a deleted application drops out with no marker, so run a full sync from time to time. **Token scopes**: `ats: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 2026-12-29.

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.deel.training/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

cursorstringOptional<=1000 characters

Cursor for pagination. Use the next_cursor value from the previous response to get the next page of results.

limitintegerOptional1-100Defaults to 30
Maximum number of records to return per page
updated_afterstringOptionalformat: "date-time"

Return only records updated strictly after this timestamp (ISO 8601 format). Use it to poll for changes.

Response

Successfully retrieved hires.
datalist of objects

Page of application-to-HRIS-profile records, ordered by updated_at ascending.

has_moreboolean
Whether more pages are available beyond the current one.
next_cursorstring or null

Cursor to fetch the next page; null when there are no more pages.

total_countinteger
Total number of hires matching the filters.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
500
Internal Server Error