Retries & idempotency
Recover an operation without accidentally buying the same generation twice.
Independent requests cost independently
Every independent POST without Idempotency-Key creates a new potentially billable operation. SDK examples use maxRetries:0. Transport retries are not promised free.
Reuse only the same operation
Use one idempotency key for the same normalized model input, tools and output bound. Changing the input under the same key conflicts. Do not create a fresh key merely because the response was uncertain.
Partial output is not a free retry
The service does not replay uncertain generation or partial output as if it had no cost. Native errors include x-should-retry:false to prevent SDK replay. Honor explicit Retry-After where supplied and inspect the state first.