Skip to main content

Error reference

JSON shapes​

Many domain errors use:

{
"error": "service_not_found",
"message": "Service not found."
}

Validation problems from the framework use:

{
"error": "validation_error",
"detail": []
}

where detail is an array of field-level issues carrying exactly three fields: loc (location), msg (message) and type.

The value you submitted is never returned. Earlier responses also included pydantic's input and ctx keys, which held the rejected value itself - and, for a missing-field error, the entire request body. Both are now stripped, and any message that would quote the submitted value is replaced with Invalid value. If you were relying on input to tell the user what they typed, read it from your own form state instead; the API will not echo it back.

note

components.schemas.ValidationError in the OpenAPI document still lists input and ctx. That schema is generated by the framework from pydantic's error model rather than from the handler that builds the response, so it over-lists two fields the API does not send. The shape documented above is the one to code against.

Error codes​

CodeHTTPDescription
invalid_api_key401API key missing or invalid
service_not_found404Catalog slug does not exist
domain_not_found404Domain has no matching brand
query_too_short422Search query must be at least 2 characters
invalid_svg400SVG failed sanitization
duplicate_email409Email already registered
invalid_credentials401Wrong email or password
invalid_token401JWT missing, malformed, or expired
weak_password422Password does not meet requirements
billing_error400Billing provider error
maintenance503API temporarily unavailable
internal_error500Unexpected server error

Maintenance mode​

When maintenance is active, non-health routes may respond with 503:

{
"error": "maintenance",
"message": "The API is temporarily unavailable for maintenance.",
"retry_after": "Please try again in a few minutes."
}