Reasoning models think before they answer. The reasoning_effort parameter sets how much. A higher level often improves answers on hard problems. It also adds latency and output tokens, because reasoning tokens are billed as output. This guide explains the levels, which models on GetVibe API accept them, and what happens on models that reason differently.
Where the parameter goes
/v1/chat/completions: a top-level field,"reasoning_effort": "high"./v1/responses: nested,"reasoning": {"effort": "high"}. This is the canonical Responses API form, and the one Codex CLI uses.
curl https://getvibeapi.com/v1/chat/completions \
-H "Authorization: Bearer $GETVIBE_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-sol",
"reasoning_effort": "high",
"messages": [{"role": "user", "content": "Solve step by step: 17 * 23"}]
}'
The levels
The gateway recognizes none, minimal, low, medium, high, xhigh and max. The spelling is medium, not middle. Each model publishes the subset it accepts in caps.reasoning.levels in the public catalog (https://getvibeapi.com/api/catalog).
| Model | Published levels | Price |
|---|---|---|
| GPT-6 Luna | minimal to max (all six) | $0.0055 input · $0.0274 output per 1M tokens |
| GPT-6 Sol | minimal to max (all six) | $0.1096 input · $0.548 output per 1M tokens |
| GPT-6 Astra | minimal, low, medium, high | $0.548 input · $2.7398 output per 1M tokens |
| GPT-5.6 Sol (also Luna, Terra) | minimal to max (all six) | $0.08 input · $0.48 output per 1M tokens |
| Tencent Hy4 Preview | low, high | $0.0334 input · $0.1001 output per 1M tokens |
How other model families handle it
- GLM and Qwen: binary.
none,minimalandlowturn thinking off, whilemediumand above turn it on. - Gemini: also binary. Lower levels set a thinking budget of zero, and
mediumand above use an automatic budget. - DeepSeek and Kimi: reasoning is built into the model and this parameter does not toggle it.
- Claude: uses extended thinking instead. Send a
thinkingobject withbudget_tokensto/v1/messages. Do not treat the chatreasoning_effortfield as an equivalent.
from anthropic import Anthropic
client = Anthropic(base_url="https://getvibeapi.com", api_key="sk-pv-...")
r = client.messages.create(
model="claude-opus-5.5",
max_tokens=2048,
thinking={"type": "enabled", "budget_tokens": 1024},
messages=[{"role": "user", "content": "Plan a database migration for ..."}],
)
print(r.content)
Picking a level
minimal/low: classification, extraction, formatting and short rewrites. Anything where a first-pass answer is fine and speed matters.medium: a sensible default for general assistants and routine code edits.high: multi-step problems, debugging, and planning an agent's next actions.xhigh/max: the hardest tasks, where a wrong answer costs more than the extra tokens. Expect noticeably longer responses and a larger output bill.
A practical approach: start low, measure quality on a fixed set of your own tasks, and raise the level only for the requests that fail. The cost is visible per request in the usage object. Reasoning tokens count as output.
Next steps
Read the reasoning documentation, compare GPT-6 Luna, Sol and Astra, or see how Claude Opus 5.5 and GPT-6 Sol differ for coding agents.
