List candidates (supports incremental sync)

Retrieve candidates for your organization, newest first. For ongoing sync use updated_after so you only fetch what changed since your last poll instead of re-walking the whole list; full sweeps are the main cause of 429s on this endpoint and cannot complete inside the hourly quota for large accounts. See the Incremental sync guide for the cursor-advance rule.

Recent Requests
Log in to see full request history
TimeStatusUser Agent
Retrieving recent requests…
LoadingLoading…
Query Params
integer

Page number for pagination

integer
1 to 50

Number of items per page (default 20, max 50). Send limit=50 explicitly when syncing.

string
^[^,\s]+(,[^,\s]+)*$

Comma-separated list of candidate IDs to filter the results.

date-time

Incremental-sync cursor. Returns only candidates whose changed_at is strictly greater than this timestamp. changed_at covers both the candidate record and its interview calls, so interview results, transcripts, statuses, tags and evaluations landing on an existing candidate are picked up even when the candidate record itself is untouched. Internal bookkeeping writes do not move the cursor. Accepts a full ISO-8601 timestamp (preferred) or YYYY-MM-DD, read as midnight UTC; anything else is a 400. Advance your cursor to a timestamp captured before the poll started, minus a 5-minute safety lag. Never advance to max(changed_at) — results are ordered by created_at, so a row changed mid-poll can land on a page you already passed, and a cursor set to the maximum skips it permanently. The cursor cannot report deletions (no tombstones) or edits to job fields.

Responses

Language
Credentials
Header
LoadingLoading…
Response
Click Try It! to start a request and see the response here! Or choose an example:
application/json