Skip to main content

Model IDs

All three IDs serve the same model and accept the same parameters. Each ID has its own rates and rate limits, listed on the Models and Limits pages.

Limits

The context length covers the input and max_tokens together. A request whose input plus max_tokens exceeds it returns 400. A max_tokens above 393,216 is accepted, but output stops at 393,216 tokens. A request that sets no max_tokens gets a default by mode: If the prompt leaves less room than that in the context length, the default is the room left. A request with images and no max_tokens can use up to the max output. These limits and defaults match DeepSeek’s official API. Long reasoning on a large input can need more than the default, so set max_tokens when you use effort max or long documents.

Thinking

Thinking is on by default at effort high, as on DeepSeek’s official API. Control it with reasoning_effort or with a DeepSeek-style thinking object. reasoning_effort and thinking.effort accept none, minimal, low, medium, high, xhigh, max and ultra. As on DeepSeek’s API, some run as another effort: Any other value returns 400.
The reasoning arrives in message.reasoning_content, or in delta.reasoning_content when streaming, separate from content. usage.completion_tokens_details.reasoning_tokens counts it. Reasoning tokens are part of completion_tokens and are billed as output. max_tokens covers the reasoning and the answer together. If the reasoning uses the whole budget, the response ends with finish_reason: "length" and an empty content. Stop sequences are matched in the reasoning too, so a match there ends the response before the answer starts.

Parameters

With tool_choice: "none", the tools are left out of the prompt, as on DeepSeek’s API, so the model answers in plain text. These return 400:
Out-of-range values, such as temperature: 3 or top_p: 0, also return 400.