Reasoning effort on the DipoleML API: when to let Raven think longer

On the DipoleML API, Raven Flash and Raven Max can reason before they answer, and one request field, reasoning_effort, sets how much. Low keeps reasoning short for quick lookups and high-volume jobs; high gives hard, multi-step problems more room. Leave the field out for the default level. Reasoning comes back beside the answer and bills as output tokens.
Key facts
- reasoning_effort takes "low" or "high" on a Chat Completions call; left out, the model reasons at its default level.
- Low suits lookups, rewrites and high-volume jobs; high suits hard analysis and multi-step plans.
- The reasoning comes back beside the answer, in a field of its own such as reasoning_content or reasoning, never inside content.
- Reasoning tokens are output tokens: $2.50 per 1M on Raven Flash and $6.25 on Raven Max.
- Reasoning counts toward max_tokens, and too small a budget can end the answer with finish_reason "length".
Raven Flash and Raven Max can reason before they answer: they work through the question first, then write. On the DipoleML API, one request field, reasoning_effort, sets how much of that work they do. This piece covers the two levels, which jobs suit each, where the reasoning comes back, what it costs, and how to size max_tokens for it. The sample uses the OpenAI Python SDK, pointed at our base URL.
What does reasoning_effort do?
reasoning_effort is a field of the Chat Completions request, with two values:
- "low": a little reasoning. Faster, and it uses fewer output tokens; good for lookups, rewrites and high-volume jobs.
- "high": the most reasoning, for hard analysis and multi-step plans.
Leave the field out and the model reasons at its default level. Either model takes either value, so the level and the model are two separate choices. Here is a hard job at "high" on Raven Max:
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.dipoleml.com/v1",
api_key=os.environ["RAVEN_API_KEY"],
)
resp = client.chat.completions.create(
model="Raven Max",
reasoning_effort="high",
max_tokens=8000,
messages=[{"role": "user",
"content": "Plan our billing migration step by step."}],
)
msg = resp.choices[0].message
reasoning = (getattr(msg, "reasoning_content", None)
or getattr(msg, "reasoning", None))
print(msg.content)
print(resp.usage.completion_tokens, "output tokens, reasoning included")
Which level should I use for which job?
Start from the job. A short answer needs little reasoning, so "low" saves time and output tokens, and over many calls that adds up. Hard analysis and multi-step plans are where "high" earns its tokens. When a job is neither, leave the field out:
| The job | Level |
|---|---|
| Look up a fact, classify a ticket, pull fields out of a text | low |
| Rewrite, translate or shorten a text | low |
| A pipeline that makes many calls | low |
| Find the cause of a failure across several files | high |
| Plan a migration or a large change, step by step | high |
| Check a contract or a proof point by point | high |
| Everyday work of every kind | left out |
The level and the model work together. Raven Flash at "low" is the quick, lower-priced pair for volume; Raven Max at "high" is the pair for the hardest work. Our story on choosing between Raven Max and Raven Flash covers the model side.
Where does the reasoning come back?
Beside the answer, never inside content. It arrives in a field of its own on the message, such as reasoning_content or reasoning, and the sample reads whichever is present. In a stream it comes in the deltas, usually before the first piece of the answer; our story on streaming on the DipoleML API shows how to read a stream. The reasoning is plain text: show it as written, not as Markdown.
What does reasoning cost?
Reasoning tokens are output tokens, billed at the output price, which on both models is 5 times the input price. Raven Flash costs $2.50 per 1M output tokens and Raven Max $6.25. There is no separate fee: the reasoning is counted in the answer's output tokens, which the sample prints. 10,000 reasoning tokens cost $0.0250 on Raven Flash and $0.0625 on Raven Max.
Input and output pricesUS dollars per 1M tokens
| Model and price | US dollars per 1M tokens |
|---|---|
| Raven Max, output, reasoning included | 6.25 |
| Raven Flash, output, reasoning included | 2.50 |
| Raven Max, input | 1.25 |
| Raven Flash, input | 0.50 |
How large should max_tokens be?
Reasoning counts toward max_tokens. If max_tokens is small, the model can spend it all reasoning and stop with finish_reason "length" and a short or empty answer. When you keep max_tokens small, set reasoning_effort to "low"; when you ask for "high", leave room for the reasoning and the answer both. Each model can write up to 128K output tokens in one answer.
What about the Raven app?
The Raven app has a thinking setting of its own, with three choices. On the API, you choose the level for each request.
Where do I go next?
The reasoning reference has the field in full. For what a whole task costs, see what an AI task costs, worked to the cent; to give each app its own key with a spending cap, read one key per app. Every price is on the pricing page.
Questions and answers
What happens if I leave reasoning_effort out?
The model reasons at its default level. Set low or high only when you want less or more reasoning than that.
Does reasoning cost extra?
Reasoning tokens are billed as output tokens, at the model's output price. There is no separate fee for reasoning.
Why did I get an empty answer with finish_reason length?
The model spent max_tokens on reasoning before it could write the answer. Raise max_tokens, or set reasoning_effort to low.
First published Last updated


