Reference
Error codes
HTTP codes and body format returned by the API
The API returns standard HTTP status codes with a problem+json body (RFC 7807).
Error format
{
"type": "...",
"title": "...",
"status": 400,
"detail": "Detailed explanation",
"instance": "/properties?..."
}Fields (per the Error schema in the OpenAPI):
| Field | Type | Description |
|---|---|---|
type | string | URI identifying the error type |
title | string | null | Short summary |
status | number | HTTP code |
detail | string | null | Detailed description |
instance | string | null | URI of the faulty request |
422 Validation (ConstraintViolation)
Validation errors use the ConstraintViolation schema (always problem+json). The validation message is carried in the detail field (prefixed with the offending field path); there is no separate violations array:
{
"type": "/validation_errors/c1051bb4-d103-4f74-8988-acbcafc7fdc3",
"title": "Validation Failed",
"status": 422,
"detail": "name: This value should not be blank.",
"instance": "/alerts"
}Codes documented per endpoint
The OpenAPI endpoints declare the following codes depending on context:
| Code | Usage |
|---|---|
200 | Success (read) |
201 | Resource created |
204 | Success with no content (DELETE) |
400 | Invalid request (malformed parameter) |
403 | Access denied |
404 | Resource not found |
422 | Validation failed — message in detail |
429 Too Many Requests is not declared on individual endpoint responses in OpenAPI: it is enforced globally by the upstream rate limiter (see Rate limits). Treat it as a possible response on any route, in addition to the codes in the table above.