Skip to content

Latest commit

 

History

History
44 lines (37 loc) · 2.92 KB

File metadata and controls

44 lines (37 loc) · 2.92 KB

Errors

Understand how Coop responds to API requests and errors.

HTTP status codes

Status Meaning
200 OK Request succeeded; response body contains data
202 Accepted Item submission received and queued for async processing
204 No Content Request succeeded; no response body (e.g. report and appeal submissions)
400 Bad Request Invalid request: malformed JSON, missing required fields, or schema mismatch (e.g. a report referencing a non-existent item). See error body for details.
401 or 403 Authentication failure: API key is missing, invalid, or expired
429 Too Many Requests Rate limit exceeded
500 or 503 Internal server error. Typically transient; safe to retry
502 or 504 Gateway or dependency error: an upstream service is unavailable; retry

Error response format

All 4xx errors return a JSON body in this format:

{
  "errors": [
    {
      "status": 400,
      "type": ["/errors/invalid-user-input"],
      "title": "Short error description",
      "detail": "Detailed explanation of the problem (optional)",
      "pointer": "/path/to/problematic/field (optional)",
      "requestId": "correlation-id (optional)"
    }
  ]
}
Field Description
status HTTP status code
type Array of error type identifiers
title Short human-readable summary
detail Additional context about the error, if available
pointer JSON pointer to the field that caused the error, if applicable
requestId Correlation ID for tracing