verboo code

Operations

Errors, limits, and retries

Handle failures predictably without retrying invalid requests.

On this page

HTTP statuses

StatusMeaningRetry?
400Invalid JSON, model, parameters, or context.No; fix the request.
401Missing or invalid API key.No; fix authentication.
402Insufficient prepaid balance.No; add funds.
403Feature or access not allowed.Not without changing plan/request.
404Model not found for the key.No; query /models.
413Payload exceeds the limit.No; reduce the request.
428Terms acceptance required.After accepting the terms.
429Rate limit reached.Yes; honor Retry-After.
500Unexpected internal failure.Yes, with a retry cap.
502Invalid provider response.Yes, with backoff.
503Capacity, billing, or dependency unavailable.Yes, with backoff.

Rate-limit headers

HeaderDescription
X-RateLimit-LimitConfigured allowance for the current window.
X-RateLimit-RemainingRemaining allowance.
X-RateLimit-ResetUnix reset timestamp.
Retry-AfterMinimum delay before retrying after a 429.

Error payloads

Common error
{
  "error": "invalid API key"
}
Structured output not enabled
{
  "error": "structured output is not enabled for this plan",
  "code": "structured_output_not_enabled"
}
Terms acceptance
{
  "error": "terms_acceptance_required",
  "version": "2026-08",
  "acceptUrl": "https://code.verboo.ai/pt/terms/accept"
}

Retry strategy

  1. Retry only 429, 500, 502, and 503, plus idempotent network failures before a response starts.
  2. Use Retry-After when present; otherwise apply exponential backoff with jitter.
  3. Set a maximum attempt count and total timeout.
  4. Do not automatically retry after a stream has already delivered content.