Candidates
Candidates are the people being assessed. A candidate can have multiple sessions across different assessments.List Candidates
integer
default:"20"
Results per page (1-100)
integer
default:"0"
Offset for pagination
string
Filter to candidates who have sessions on this assessment
Response
Response
Export Candidates (CSV)
GET /api/assessments/:id/sessions/export (see that endpoint for the full column list and an example row). Adds an assessment column as the first column, since rows now span more than one assessment. Org-scoped; admin or API-key auth.
string
Narrow the export to one assessment (same shape as omitting it, one fewer click than exporting from that assessment’s own page).
Response - 200 OK (text/csv)
Response - 200 OK (text/csv)
Update Candidate
string
Updated name
string
Updated email address
Response
Response
Delete Candidate
deleted_at timestamp). This is the everyday “Remove”. The candidate no longer appears in list results, but the row, the candidate PII, and all session history stay intact. The action is reversible with Restore Candidate. It is not an erasure. To erase the data permanently, use Purge Candidate.
Response
Response
Bulk Delete Candidates
200, even when some items fail, and each item carries its own outcome. The single-candidate route above still exists for the per-row action.
string[]
required
Up to 500 candidate ids. Duplicates are removed before processing.
Response
Response
Restore Candidate
deleted_at). This is open to any org member. It fails if the candidate was permanently purged, because a purged row keeps no data to restore.
Response
Response
Purge Candidate
candidates.purge). API-key callers have no role and are refused: a machine credential cannot trigger an irreversible erasure.
Response
Response