Skip to content
Menu
Base URLhttps://api.getworg.com/v1

Reasoning

Some models can think before they answer. reasoning_effort turns that on or off, and the thinking comes back in reasoning_content.

reasoning_effort

Set reasoning_effort at the top level of the request: none, low, medium, high or max. minimal is read as low and xhigh as max. Any other value gets 400 invalid_request before the request reaches a lane.

cURL
curl https://api.getworg.com/v1/chat/completions \
  -H "Authorization: Bearer $WORG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "qwen3.8-27b:standard",
    "messages": [{"role": "user", "content": "Is 221 a prime number?"}],
    "reasoning_effort": "low",
    "max_tokens": 1024
  }'

Worg sends the effort to each lane in the form that lane accepts, so a combo behaves the same whichever lane answers. Clients that send a reasoning object instead are read the same way: {"enabled": false} as none, {"effort": "low"} as low.

Defaults per lane

Model IDWithout reasoning_effort
deepseek-v4.1-flash:cachedAnswers without reasoning.
deepseek-v4.1-flash:standardAnswers without reasoning.
qwen3.8-27b:standardReasons. Send "none" to turn it off.

Where the reasoning appears

  • In message.reasoning_content, next to the answer in content. Without reasoning the field is absent.
  • In a stream, in delta.reasoning_content, before the answer.
  • It is never part of content, so JSON output stays parseable with reasoning on.

Billing

  • Reasoning tokens are output tokens. They are counted inside completion_tokens and billed at the output rate.
  • A higher effort does not always mean more tokens: on a short question the levels gave similar lengths in testing. The question decides most of it.
  • Reasoning counts against max_tokens. With "max_tokens": 30 and high, every lane spent all 30 tokens reasoning and returned an empty content with finish_reason: "length". Leave room for the answer, or send none.

Next: Structured outputResponses and usage