Unchanged
- Request shape.
messages,temperature,top_p,max_tokens,max_completion_tokens,stream,tools,tool_choice,user. - Response shape. A
chat.completionwithchoices,message,finish_reason,usage. - Streaming.
stream=True/stream: true, Server-Sent Event chunks. - Tool calling. The model returns
tool_calls; your code runs them and returns atoolmessage. - Prompt caching.
cache_controlon content parts, on routes that support it. See Prompt Caching. - Reasoning.
reasoning_detailsin the response,reasoning_tokensinusage. - Model listing.
Differences
system_fingerprintis alwaysnull.- Exactly one choice;
n > 1is rejected. - The error envelope is
{"error": {"message", "code", "param"}}with notypefield. - The privacy level travels with the model (
:confidential); there is no privacy parameter. Encrypted adds client-side encryption and request headers on top. /v1/chat/completionsdrops unknown fields at gateway-owned objects. Controls the model cannot honor return400.- Rate-limit headers:
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset, andRetry-Afteron429. See Rate Limits. - OpenAI model names are not Nito IDs. See model mapping.
Other Surfaces
- Responses API (
/v1/responses): a stateless shim.store: trueandprevious_response_idare rejected. See the Responses reference. - Files API (
/v1/files): not served,404. Send documents inline. See Multimodal.
Rejected Inputs
- Audio and video input.
file_idcontent references. Supply file content inline.response_format(json_object,json_schema) on models that do not advertisejson_modeorstructured_outputs.
Related
SDKs
Overview.
Model Mapping
Names to IDs.
Chat Completions
The endpoint.
Streaming
Token by token.
Error Format
The envelope.
Privacy Levels
The four levels.

