Errors & conventions

HTTP status

StatusWhen
400Invalid body or query (validation).
401Missing or invalid session / Bearer token.
403Authenticated but not allowed (role, scope, account grant, or tenant mismatch).
404Resource not found or hidden by tenant isolation (do not probe across tenants).
409Conflict (for example, tenant already has an account for that cloud).
422Semantically invalid parameters (for example, list limit above the route max).
429Rate limited (login and some public endpoints).

Error body

Most routes return FastAPI-style JSON:

{ "detail": "…" }

Error messages shown to tenants are sanitized (no paths or secrets).

Pagination & limits

See also Pagination.