Skip to content

Errors and status codes

Check each endpoint reference for operation-specific responses. Also handle authentication, permission, and validation failures.

StatusHandling
200Request processed; inspect the response body for operation-specific status
400Read the endpoint-specific reason; it can mean invalid input, unavailable results/report, or an ineligible screening request
401Missing or invalid API credentials; some operations also return this for missing account context
403Permission or feature gate prevents the operation
404Resource unavailable, not found, or hidden from the requesting account
429If received, honor the server’s retry guidance and reduce request frequency
5xxServer failure; reconcile uncertain state changes before retrying

Do not assume all errors share one response shape. Error responses can contain strings, validation details, empty bodies, or problem details.

A request to GET /api/ApiClient without an API key returns HTTP 401 with Content-Type: application/problem+json:

{
"type": "https://httpstatuses.com/401",
"title": "Unauthorized",
"status": 401
}

Error formats vary by endpoint. Check the status and content type before parsing the body.

Screening callbacks use BackgroundCheckStatus. Use the Analyst Assistance flow or the flow without Analyst Assistance for your organization’s applicable events:

ValueMeaning and next action
NoneNo run has started
InQueueScreening is queued; continue tracking
InProgressScreening is processing; continue tracking
RedressingA successful analyst-assisted run is awaiting completion of review
CompleteSuccessful run; required analyst review has completed
ErrorUnsuccessful terminal processing status; investigate before retrying
RedressedAdditional notification when a subject is marked reviewed; the status endpoints return Complete rather than this value

Use the status supplied in the notification and handle duplicates idempotently. Do not require every intermediate state to appear or assume a fixed delivery order. A status recheck after each callback is unnecessary.

The runStatus field in aggregated results uses RunStatusEnum, a different and more detailed enum. Do not compare it to BackgroundCheckStatus values.

Retry read requests with bounded backoff when appropriate. Avoid repeating permanent validation or permission failures.

For create, configuration updates and other state-changing operations, reconcile uncertain outcomes before retrying. GET /api/ApiClient/refreshApiKey changes state despite its HTTP method. Other workflow-specific actions are covered in the appropriate workflow guide.

Do not rely on an idempotency header to prevent duplicate actions.