Skip to navigation

Retrieve a list of ATS applications

Use this endpoint to track where candidates sit in the hiring pipeline and to surface stalled applications that need follow-up — for instance those that entered their current stage long ago and have not advanced. The full stage-transition history can be requested per item when the current stage alone is not enough.

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

Return applications to any of these jobs (up to 100). Combined with job_id as one set. Jobs the caller cannot access are left out silently rather than rejected.

hiring_member_hou_idslist of stringsOptional

Return applications to jobs on whose hiring team one of these HRIS organization users sits (up to 100) — a person’s pipeline. Always intersected with the jobs the caller can access.

hiring_member_role_idslist of integersOptional

Narrow hiring_member_hou_ids to jobs where those people hold one of these roles (up to 100), using the role_id values returned by the hiring members list. Requires hiring_member_hou_ids. Only organizations that use roles and permissions have per-job roles; others get a 400.

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