/api/v1/cases/{id}/reanalyze
Queue a fresh AI analysis of an existing case. Always 202. A case whose run is already pending or in flight is not queued a second time; that run is returned instead with `already_queued` true, so retrying never stacks duplicate analyses. An already-decided case CAN be re-analyzed: the analysis is evidence, not a verdict, so a new run is recorded and the existing decision and case status are left untouched.
- Scope
cases:write- Rate limit
- 20 requests / min
- Idempotency
Idempotency-Keysupported
Authentication
Send your key as Authorization: Bearer …. It must carry the scope cases:write; a key without it receives 403 forbidden.
Path parameters
idstringrequiredHeaders
Idempotency-KeystringReplays the first response for a repeated request. Reusing a key with a different body is idempotency_key_reused (409), never a silent replay.
Request body
This operation takes no request body.
Response
202application/jsonSerializedAnalysisJobidstringrequiredcase_idstringrequiredstatusstringrequiredpending, running, succeeded or failed.
kindstringrequiredanalyze for the run queued at submission, reanalyze for a re-run.
created_atstring | nullrequirednullablealready_queuedbooleanrequiredTrue when this call did NOT queue new work because a run was already pending or in flight, and the job below is that existing run. Re-running a case that is already queued is a no-op, not a second run — otherwise a partner polling and retrying would stack duplicate analyses of one case.
Errors
The statuses this operation can return, with the error.code values behind each. Every error body is the shared envelope described under Errors in Getting started.
401unauthorized403forbidden404not_found409idempotency_key_reused429rate_limit_exceeded500internal_error