req_ and 24 hex characters, the same as kaer.request_id. Quote it to support.
x-kaer-cost-usd
Chat (not streamed), maps (every answer from the maps service, 0 when not charged), mail send (not on an idempotent replay)
The amount charged, in USD. Not sent on search, batch, images, streams or /v1/me: there the cost is only in the body (kaer.cost_usd, or the usage chunk of a stream).
x-ratelimit-limit-requests
Authenticated responses
Your tier's requests per minute for one key.
x-ratelimit-remaining-requests
Authenticated responses
Requests left in this window: the lower of the key's and the account's.
x-ratelimit-reset-requests
Authenticated responses
Seconds until the window resets, such as 42s.
retry-after
429, and 503 from the edge
Seconds to wait before retrying.
access-control-allow-origin
Every /v1 response
*. Preflights allow authorization, content-type and x-api-key.
cache-control
Every /v1 response
no-store: answers are per key and never cached.
Errors raised before the rate check (401 and 403) carry only x-request-id. GET /v1/models needs no key and carries no request id. Streams are text/event-stream with x-accel-buffering: no.
Know how long to wait
Code
Retry-After
429 rate_limit_exceeded (tier)
Until your 60-second window resets
429 rate_limit_exceeded (edge)
Until the key's bucket refills, or for invalid keys, until the address may try again