application/json; charset=utf-8. Each is an envelope whose object field names its shape.
A non-streaming chat response carries
id, object: "chat.completion", created (unix seconds), model, a one-element choices[], and usage. List responses carry data[]. Field-by-field schemas are on each endpoint page.
Inference responses set Cache-Control: no-store; do not cache generated output on the client either.
With stream: true, chat returns a Server-Sent Events stream of chat.completion.chunk objects ending in [DONE]. See Server-Sent Events. Errors use a separate {"error": {...}} envelope. See Error format.

