Skip to navigation

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 -X GET 'https://api.letsdeel.com/rest/v2/contracts' \
  -H 'Authorization: Bearer YOUR-TOKEN-HERE'

Learn more about 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-500Defaults 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. Accepted values are lead, active and completed, in either case — the job list reports them uppercase and this filter accepts that form too.

current_stage_default_type_slugslist of stringsOptional

Filter applications by current stage default type slugs (e.g. new_lead, application_review, offer, hired, archived), in either case. Use ‘others’ for custom stages.

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