Errors
Every endpoint shares the same error format and the same authentication, validation, and rate-limit behavior described on this page. Individual endpoint pages only document status codes and behavior that differ from this page (e.g. 400 on paginated endpoints, 406 on endpoints with multiple response formats).
Error format
Every non-2xx response is a problem-details JSON body (Content-Type: application/problem+json):
{
"type": "about:blank",
"title": "Not Found",
"status": 404,
"detail": "...",
"instance": "/v1/...",
"code": "not_found",
"request_id": "3a7b2c1d-..."
}
Every response also carries an X-Request-Id header matching request_id in the body, please include it when reporting an issue.
401 Unauthorized
The X-API-KEY header is missing.
403 Forbidden
The API key is invalid, or the requested user_id isn't reachable by this key (not a member of any group the key is linked to).
422 Unprocessable Entity
Request validation failed: a path or query parameter doesn't match its expected type or format (a malformed user_id, an unrecognized enum value, a badly formatted date, and similar). The body includes an errors array with one entry per invalid field.
429 Too Many Requests
Rate limit exceeded. See Rate limit headers for the response headers and how to back off.