Idempotency

Create requests require an Idempotency-Key so a retried request never creates a duplicate candidate.

POST /candidates is the only endpoint that requires an Idempotency-Key header — every other write is naturally idempotent (a PATCH you replay just writes the same values again).

  • Required. 1–255 characters. We recommend your own ATS record id.
  • Matches on the key ALONE, scoped to your account — the request body is not compared, so replaying with a different body still returns the ORIGINAL result.
  • A request with the same key already in flight (not yet finished) gets a 409 — retry after a short delay rather than assuming failure.
  • A claimed key that never finishes (your request died mid-flight) is released after 5 minutes — retry with the SAME key past that point.
  • A genuinely failed create (4xx/5xx) releases the key immediately — retry right away with the same key.

The key you sent comes back on every later GET /candidates/{id} as external_id, so you never need to keep your own mapping table from your ids to ours.