supports_reasoning: true think before answering. Set the effort with the field your API uses; the values a model accepts are in its reasoning_efforts (GET /v1/models).
An effort the model doesn’t list gets
400 unsupported_parameter, and the message lists the supported ones. Chat Completions also accepts reasoning (an object with effort or max_tokens) and thinking (true / false). An effort derived from a token budget is clamped to the model’s list instead: the highest one not above it, else the model’s lowest.
A token budget (Messages thinking.budget_tokens, or Chat Completions reasoning.max_tokens) maps to an effort like this:
Reading the reasoning
Send
include_reasoning: false to strip reasoning from the output. The model still reasons, and you’re still billed for it.
Tokens and billing
Reasoning tokens are output tokens: they’re billed at the output price and count towardmax_tokens. On Chat Completions they’re also reported in usage.completion_tokens_details.reasoning_tokens.
Long reasoning can leave a stream quiet for a while; Antara sends keepalives so the connection stays open.