Skip to content

Record a disposition on a screening candidate

POST/v1/screenings/{screeningId}/candidates/{candidateId}/disposition

Requires an API client bearer token.

Records a reviewer verdict (true_match or false_positive) on a surfaced candidate. Dispositions are append-only and STICKY: the latest disposition for a (subject, list entry) pair takes effect immediately in the pending-review queue and suppresses or confirms the same entry on any future re-screen, without requiring a re-screen to apply. A true_match is FOUR-EYES: it only becomes effective once a second, distinct reviewer files a second true_match for the same pair — until then it stays effectively pending, with awaiting_confirmation surfaced on read; the same reviewer attempting to confirm their own true_match gets 409 four_eyes_required. false_positive needs no second reviewer and is always latest-wins, including as the correction path for a mistaken true_match. Requires an Idempotency-Key header and a named human reviewer.

Parameters

Header parameters

NameRequiredDescription
Idempotency-Keyrequired

Client-chosen. An identical retry with the same key returns the stored response; reusing the key with a different payload returns 409.

Request body

disposition"true_match" | "false_positive"required
reviewer_namestringrequired
rationalestring

Example

curl -X POST https://api.rigid.fi/v1/screenings/{screeningId}/candidates/{candidateId}/disposition \
  -H "Authorization: Bearer $RIGID_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: $(uuidgen)" \
  -d '{
  "disposition": "true_match",
  "reviewer_name": "string"
}'

Responses

201

Disposition recorded.

disposition_idstringrequired
400

Validation error

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
401

Authentication required

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
403

Forbidden

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
404

Candidate not found

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
409

Idempotency-Key reused with a different payload, or four_eyes_required — the same reviewer cannot confirm their own true_match

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring
500

Internal server error

typestringrequired
titlestringrequired
statusintegerrequired
detailstring
instancestring