https://api.certo.bio/v1openapi.json

Export candidates

POST/v1/exportsscope candidates:exportLogged

The chosen candidates, or a position's, as a PDF pack (a contents page, then each candidate's checklist and passport) or an Excel workbook, fit first. Each candidate is read as a passport read and logged again as a copy saved: the candidate sees both. An export reads the Hiring list and each passport, so the credential needs hiring:read and candidates:read too. At most 25 candidates in a PDF and 200 in a workbook. A PDF holds only the candidates who let approved employers have their passport as a PDF (their choice, since 2026-11-01): the rest are left out and counted in the X-Certo-Left-Out header, and none left is export.pdf_not_shared.

Every call is a read of the candidate's passport: it is logged, and the candidate sees that your organisation read it.

Request body

NameTypeRequiredDescription
formatone of pdf, xlsxYespdf or xlsx.
candidate_idsarray of uuidThe candidates (grant ids from /candidates).
position_iduuidOr every readable candidate under this position.

Response fields

(the whole answer)
string. The file: application/pdf or the Excel workbook, with Content-Disposition naming it.

Errors

  • 400 export.nothing_chosen
  • 409 export.nothing_readable
  • 403 export.pdf_not_shared
  • 413 export.too_many
  • 409 export.not_readable
  • 502 export.render_failed
  • 404 position.not_found
  • 400 api.credential_in_url
  • 401 api.key_invalid
  • 401 api.key_expired
  • 401 api.key_revoked
  • 401 api.key_suspended
  • 403 api.scope_missing
  • 429 api.rate_limited