Hesperan

(Docs)

Errors & limits

Errors are JSON with a single error message. Only answered requests are charged.

Status codes

StatusMeaningWhat to doCharged
200Answeredyes
400Invalid request (message says which field)Fix the request; do not retry unchanged.no
401Missing, unknown or revoked keyCheck the Authorization header and the key.no
402Plan allowance used up, or balance too lowUpgrade, top up, or allow pay-as-you-go in the console.no
413Body larger than 256 KBSend less state.no
429Rate limit exceededWait for Retry-After seconds, then retry.no
502Model temporarily unavailableRetry with exponential backoff.no
Error body
{ "error": "free allowance used up — top up your balance or choose a plan" }

Rate limits

Limits apply per API key and per minute, with short bursts allowed. Each response carries x-ratelimit-limit and x-ratelimit-remaining; a 429 also carries Retry-After.

PlanRequests / minute / key
Free30
Starter120
Pro600
Business2,000

Retrying

Retry 429 and 502 only. Start at one second, double each time, add jitter and give up after about five attempts. Requests have no side effects, so retrying is always safe.