Skip to main content
Reasoning is a per-model capability: check supports_reasoning in GET /v1/models. It trades tokens, cost, and latency for quality on hard problems.

Turn It On

Clients that can only set model can use a suffix: z-ai/glm-5.2?reasoning_effort=high, or ?reasoning_summary=none. Body and suffix must agree or the request fails with 400. See Model ID Convention.

Output

choices[].message.reasoning_details is an array of the model’s thinking, each entry with type, summary, id, format, and index. It is a summary governed by the summary setting, not a verbatim transcript. usage.reasoning_tokens counts the tokens spent thinking, separate from completion_tokens.
With exclude: true, the model still reasons and you still pay for the reasoning tokens, but reasoning_details is omitted. On a stream, reasoning_details deltas arrive ahead of the content. See Streaming.

Cost

Reasoning tokens count toward usage on top of prompt and completion tokens. Higher effort means more of them. Cap them with max_tokens on the reasoning object, and save reasoning for problems that need it.

Privacy

Works at Anonymous, Private, and Confidential on models that advertise supports_reasoning. At Encrypted, reasoning is accepted when the route advertises visible reasoning support.

Chat Completions

The endpoint.

Streaming

Token by token.

Tool Calling

Function calls.

Privacy Levels

The four levels.

Chat Completions Endpoint

Schema reference.