Retrieve a list of ATS applications

Use this endpoint to trace where candidates stand in the hiring pipeline and how they got there — every interview plan stage an application has reached and when it entered and left each one.

Token scopes: ats:read, worker:read

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

cursorstringOptional<=1000 characters
Cursor for pagination. Use the nextCursor value from the previous response to get the next page of results.
limitintegerOptional1-100Defaults to 20
Maximum number of applications to return per page
search_textstringOptional<=500 characters
Search text to filter applications
job_idstringOptionalformat: "uuid"
Filter by job ID
interview_plan_stage_idslist of stringsOptional

Filter by the CURRENT interview plan stage IDs (comma-separated). Applications that have since moved to another stage are excluded — use reached_interview_plan_stage_ids for those.

reached_interview_plan_stage_idslist of stringsOptional

Filter by interview plan stage IDs the application has EVER been in (comma-separated), including applications that have since advanced, been hired or been archived.

moved_to_current_stage_beforestringOptionalformat: "date-time"

Return only applications that moved to their current stage strictly before this ISO 8601 datetime (stalled candidates)

archivation_reason_idslist of stringsOptional

Filter by archivation reason IDs (comma-separated); see GET /rest/ats/reasons with reason_group_slug=CANDIDATE_ARCHIVATION

candidate_tag_ids_operatorenumOptional

How candidate_tag_ids are combined: ANY (default) matches candidates with at least one of the tags, ALL requires every tag

Allowed values:
includelist of enumsOptional

Optional expansions to embed on each item. STAGE_HISTORY adds the full stage timeline with entered/exited timestamps.

Allowed values:
candidate_tag_idslist of stringsOptional

Filter by candidate tag IDs (comma-separated)

source_slugslist of stringsOptional

Filter by application source (comma-separated)

job_criterias_matchingslist of objectsOptional
Filter applications by job criteria matching state
current_stage_category_type_slugslist of stringsOptional

Filter applications by current stage category type slugs (comma-separated)

current_stage_default_type_slugslist of stringsOptional

Filter applications by current stage default type slugs. Use ‘others’ for custom stages (comma-separated)

updated_afterstringOptionalformat: "date-time"

Filter applications updated after this timestamp (ISO 8601 format)

sort_byenumOptional
Field to sort applications by
Allowed values:
sort_orderenumOptional
Sort order for applications
Allowed values:

Response

Successfully retrieved applications
datalist of objects
Page of applications
has_moreboolean
Whether more pages are available
next_cursorstring or null

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

total_countinteger
Total number of applications

Errors

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