メインコンテンツへスキップ
更新日: 2026-06-06

Create Chat Completion

Generates model responses from a message list and supports both non-streaming and streaming output. This page only documents common behavior revalidated against Crazyrouter production on 2026-03-23.

Authentication

Core parameters

Optional parameter support varies by model. Client code should rely on the stable common fields first rather than assuming every model supports the same advanced options.

Non-streaming request

cURL
Typical production shape:

Important interpretation

  • message.content is the most stable final-text field
  • message.tool_calls only appears when the model is requesting tool execution
  • message.reasoning_content may exist as a key, but should not currently be treated as guaranteed usable content

Streaming request

cURL
This production recheck confirmed that:
  • streaming returns chat.completion.chunk
  • SSE chunks are sent as data: ...
  • the stream still ends with data: [DONE]
Observed SSE shape:

Python example

Python

Current recommendation

  • For normal text chat, use /v1/chat/completions
  • For reasoning summaries or OpenAI-style web search, prefer /v1/responses
  • For more specific capability guarantees, use the dedicated capability pages rather than this generic endpoint page
Related pages: