siati.ai docs

API reference

Errors

Reference for HTTP status codes and error shapes.

Last updated: 2026-05-19

Errors

All endpoints return errors in the OpenAI-compatible shape:

json
{
  "error": {
    "message": "human-readable description",
    "type":    "category",
    "code":    "specific_code"
  }
}

Status code map

HTTP Type Code Meaning What to do
400 invalid_request_error bad_request Malformed body, missing required field Fix client payload
400 invalid_request_error unknown_tier Tier name unrecognised Use slow / medium / fast / ludicrous
401 invalid_request_error invalid_api_key Key missing / malformed / revoked Check / rotate key in dashboard
401 invalid_request_error expired_token JWT expired POST /auth/refresh (mobile API)
403 permission_denied tier_not_allowed Plan doesn't include this tier Upgrade plan or use a lower tier
403 permission_denied account_disabled Account suspended Contact support
404 not_found model_not_found model_id not in catalog Check Models catalog
404 not_found kb_not_found Knowledge base does not exist or not yours Verify slug + auth
413 invalid_request_error payload_too_large Upload > 50 MB Split or compress
422 invalid_request_error context_too_long Prompt + max_tokens > model context Reduce prompt or max_tokens
429 rate_limit_exceeded rate_limit_exceeded RPM exceeded Backoff — see Rate limits
500 server_error internal_error Bug on our side Retry, then report with X-Request-Id
502 bad_gateway backend_unavailable Upstream model server returned error Auto-retried on alt backend if available
503 service_unavailable all_backends_down All backends serving this model are down Pick another model temporarily; check Fleet
504 gateway_timeout backend_timeout Inference timed out Reduce max_tokens or retry

How to log errors well

When you hit a 5xx and want to report it:

bash
curl ... -i 2>&1 | tee /tmp/siati-call.log

Send us the X-Request-Id from the response — we can trace the request through the BackendRouter and find the upstream cause within seconds.

Common gotchas