Reasoning
Red-team models reason before they answer. Reasoning tokens are part of completion_tokens and count inside max_tokens. A small max_tokens can be spent on reasoning alone — the content comes back empty with finish_reason: length.
// too small: 32 tokens of reasoning, no answer
{"max_tokens": 32} → "finish_reason": "length", "content": null
// give the answer room (the free tier allows up to 32768)
{"max_tokens": 2048}
Parameters
- reasoning_effort / reasoning are accepted and dropped (openai-ignorable-keys); the model decides how deeply it reasons.
- The reasoning text is not returned; usage.completion_tokens shows how much there was.
- On the paid path, reasoning tokens are settled at the output rate (the receipt's completion_tokens).