GoodPut AI

Reasoning models

Reasoning output, metering, and multi-turn conversations.

Reasoning models on the platform, such as GLM-5.2 and DeepSeek V4, reason before answering. Reasoning and answer text are returned separately. Reasoning tokens are metered separately and billed as output.

How reasoning is returned

OpenAI protocol

Reasoning appears in message.reasoning_content (delta.reasoning_content when streaming), and the answer in content:

{
  "message": {
    "content": "ok",
    "reasoning_content": "The user asked for only ok, so I should…"
  },
  "usage": {
    "completion_tokens": 25,
    "completion_tokens_details": {"reasoning_tokens": 22, "text_tokens": 3}
  }
}

Anthropic protocol

Reasoning appears in thinking blocks (thinking_delta events when streaming), and the answer in text blocks:

{
  "content": [
    {"type": "thinking", "thinking": "The user asked…", "signature": "..."},
    {"type": "text", "text": "ok"}
  ]
}

Multi-turn conversations

  • Return historical assistant messages unchanged, including reasoning. If you must trim reasoning, remove whole blocks rather than editing their internal fields.
  • The gateway normalizes protocol issues in historical reasoning blocks, such as missing signature or empty content; the client need not handle them.

Metering and token budgets

  • Reasoning tokens count toward completion_tokens, with a breakdown in completion_tokens_details.reasoning_tokens, and are billed at the output price.
  • max_tokens includes reasoning. Use a larger limit for reasoning models so reasoning does not consume the budget and truncate the answer.

Control reasoning

Models differ in their support for reasoning controls, such as enabling reasoning or limiting its length. See the model detail page. Unsupported controls are safely ignored by the gateway without failing the request.

On this page