Skip to content

Reasoning models

Model-specific reasoning request shapes and opaque continuation contracts for GPT-5, Claude, HCX-007, and Kimi.

POST/v1/chat/completions

Reasoning models perform internal work before answering difficult math, coding, and logic tasks. PleumRouter adapts the model-specific wire shape for OpenAI, Anthropic, Naver, and GMI while treating continuation values such as signatures and encrypted data as opaque data.

How it works#

OpenAI o-series plus gpt-5, gpt-5-mini, gpt-5-nano, gpt-5.1, and gpt-5.2 are sent without temperature, with max_tokens rewritten to max_completion_tokens. That rewrite applies only to these reasoning-payload models.

gpt-5, gpt-5-mini, and gpt-5-nano are forced-reasoning models: none is removed, while low/medium/highis forwarded. gpt-5.1, gpt-5.2, and GPT-5.6 (sol/terra/luna) are optional and accept minimalmax. GPT-5.6 also accepts reasoning_mode (standard|pro) and service_tier. Existing o-series behavior is unchanged.

Claude policy is selected from the actual upstream model ID. claude-fable-5always uses adaptive thinking and cannot be disabled with none. Opus 4.8/4.7/4.6 and Sonnet 5/4.6 are optional adaptive models: low/medium/high becomes adaptive effort and none becomes disabled. Opus 4.5, Sonnet 4.5, Haiku 4.5, and Claude 3.7 use manual budgets of 20%/50%/80% (minimum 1,024, maximum 32,000, always below max_tokens) and reject max_tokens of 1,024 or less with 400. Claude 3.5 families never receive a native thinking field.

forwarded payload
{
  "model": "gpt-5.6-sol",
  "messages": [
    {"role": "user", "content": "Prove that there are infinitely many primes."}
  ],
  "max_completion_tokens": 4096,
  "reasoning_effort": "xhigh",
  "reasoning_mode": "pro",
  "service_tier": "priority"
}

Request#

HCX-007 accepts optional reasoning_efforton Naver's OpenAI-compatible complete-only route, with temperature capped at 1.0. moonshotai/Kimi-K2-Thinking is a forced-thinking GMI model, but not a GPT-5 payload model: it retains ordinary OpenAI-compatible max_tokens and temperature, rather than being rewritten to max_completion_tokens.

request
curl https://apirouter.pleum.ai/v1/chat/completions \
  -H "Authorization: Bearer plm_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5.6-sol",
    "messages": [
      {"role": "user", "content": "Prove that there are infinitely many primes."}
    ],
    "max_tokens": 4096,
    "reasoning_effort": "xhigh",
    "reasoning_mode": "pro",
    "service_tier": "priority"
  }'
Do not inspect, mask, or regenerate a reasoning_details signature/data value; return it unchanged only in the same tool continuation. Anthropic plaintext thought is never returned. A reasoning-token breakdown is observational and is not added again to completion/total tokens or billing.