Content Negotiation

May 21, 2026 · View on GitHub

All API endpoints follow a standard error response format:

{
  "error": {
    "status": 400,
    "title": "Error Title",
    "code": "ERROR_CODE",
    "detail": "Detailed error message",
    "additional": "Optional additional information"
  }
}

Field Descriptions:

FieldDescription
statusHTTP status code
titleBrief error title
codeMachine-readable error code
detailHuman-readable error description
additionalOptional additional context information (not always present)

Content Negotiation

Most endpoints support content negotiation through the Accept header:

  • Accept: application/json - Returns JSON response

  • Accept: text/html - Returns HTML view when available

If no Accept header is provided or if it doesn’t contain a supported MIME type, the API defaults to returning JSON responses.