Reasoning
Reasoning effort controls on reasoning models.
Reasoning models expose reasoning_effort (and reasoning detail in responses) where the underlying model supports it:
curl https://api.vichar.io/v1/chat/completions \
-H "Authorization: Bearer $VICHAR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "vichar-sonnet-5.5",
"reasoning_effort": "high",
"messages": [{"role": "user", "content": "Solve x^2 - 5x + 6 = 0 step by step."}]
}'- Reasoning content appears in the response as reasoning fields on the message or stream deltas.
usage.completion_tokens_details.reasoning_tokenscounts reasoning tokens; they are billed as output tokens.supported_parameterslistsreasoningfor models that accept it, andreasoning_effortwhere effort levels are tunable. Passing the parameter to a non-reasoning model is ignored or rejected with400depending on the model.- To force non-reasoning candidates in
autorouting, sendno_reasoning: true; if no non-reasoning model can serve the request you get a400.
How is this guide?