Chat Completions
When to use this page
Use this page if your existing client still calls /chat/completions. This is the preferred OpenAI-compatible surface for third-party chat agents and apps that send messages, tools, and Chat Completions streaming chunks. Keys enabled for Claude-compatible, Gemini-compatible, GLM text, or Kimi text models can use those model ids here while receiving Chat Completions-shaped output.
Endpoint
POST https://api.quotaflow.ai/openai/v1/chat/completions
Request
{
"model": "gpt-5.5",
"messages": [
{ "role": "user", "content": "Return only the word ready." }
],
"stream": false,
"max_completion_tokens": 64,
"verbosity": "medium"
}
Chat Completions accepts standard output controls such as max_completion_tokens (or legacy max_tokens) and GPT text verbosity values low, medium, or high. On compatible GPT models, Quotaflow preserves supported request options including response_format, parallel_tool_calls, prompt_cache_key, prompt_cache_retention, metadata, safety_identifier, service_tier, and top_logprobs. Function tools and custom tools are supported through the tools array when the selected model supports tool use. Non-streaming GPT chat requests may set n to request multiple choices; Quotaflow fans those choices out safely when the selected upstream cannot do native multi-choice generation. For privacy, store is not enabled by this compatibility path. Non-GPT chat models such as GLM and Kimi support standard messages, streaming, and tool calls. Kimi chat also supports strict response_format/JSON mode; GLM strict JSON mode is not part of the public contract and returns 400 invalid_request_error instead of being simulated as guaranteed structured output or retried on another execution path.
Do not send Claude-style or Gemini-style top-level thinking to Chat Completions. For OpenAI-compatible GPT chat requests, use reasoning_effort or reasoning.effort when the selected model supports reasoning controls. Requests that include unsupported parameter families return a clear 400 invalid_request_error and are not retried on another execution path, because they are customer request contract errors rather than service availability errors.
When you call Claude-compatible claude-sonnet-5, claude-fable-5, claude-opus-4-8, or claude-opus-4-7 through Chat Completions, omit non-default temperature, top_p, and top_k. Those adaptive-only Claude models do not use explicit sampling controls; Quotaflow strips them where possible and uses adaptive thinking semantics instead. Use reasoning_effort or reasoning.effort when your client needs a depth hint.
Protocol boundary
Quotaflow preserves the Chat Completions contract on this endpoint. For OpenAI-compatible chat providers and local agents, requests stay as messages + optional tools + optional stream, and responses stay as chat.completion or chat.completion.chunk.
Do not send Responses-only fields such as input or previous_response_id to this endpoint. Use /responses when your client natively speaks the Responses API. Use the Anthropic-compatible Messages endpoint for Claude-style clients and the Gemini-compatible endpoint for Gemini-native contents/parts workflows.
Curl
curl https://api.quotaflow.ai/openai/v1/chat/completions \
-H "Authorization: Bearer $QUOTAFLOW_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-5.5",
"messages": [{"role":"user","content":"Return only the word ready."}],
"stream": false
}'
Recommendation
Use /responses for Codex-style clients that natively speak Responses. Keep /chat/completions for OpenAI-compatible chat agents, Gemini, GLM, or Kimi chat through an OpenAI-style SDK, and older clients.