Published 30 July 2026 · reference prices, verify before budgeting
Open the price sheet and o3 and GPT-4.1 look identical: both $2.00 in, $8.00 out per million tokens. So I ran the same extraction job through both, expecting the same bill. o3 came back 4.3× more expensive. Same input, same visible answer, same per-token rate. The gap is a line item most people never see on the pricing page: reasoning tokens.
Reasoning models (OpenAI's o1, o3, o4-mini, and the reasoning modes of GPT-5) don't jump straight to an answer. They generate a private chain of thought first, then a short visible reply. You never see the chain — but you pay for every token of it, at the output rate. On a task where the model returns 400 visible tokens, it can quietly burn another 2,000 reasoning tokens behind the scenes. Your bill is computed on 2,400 output tokens, not 400.
That's the whole trick. The sticker price is honest; it just describes the price of tokens, and reasoning models emit far more of the expensive kind.
| Model | Input | Output | Type |
|---|---|---|---|
| GPT-4.1 | $2.00 | $8.00 | Standard |
| o3 | $2.00 | $8.00 | Reasoning |
| o4-mini cheaper | $1.10 | $4.40 | Reasoning |
| o1 | $15.00 | $60.00 | Reasoning |
| GPT-5 | $1.25 | $10.00 | Hybrid |
Take a real-shaped workload: 1,000 requests/day, each 800 input tokens and 400 visible output tokens. Run it for a month (30k requests, 24M input tokens, 12M visible output tokens). Now add the hidden part. In my own o-series runs, a moderately hard task lands around 1,500–2,500 reasoning tokens; I'll use 2,000 here, which adds 60M billed output tokens on top of the 12M visible.
| Model | Reasoning tokens/req | Cost / month |
|---|---|---|
| GPT-4.1 (no reasoning) | 0 | $144 |
| o4-mini | ~2,000 | $343 |
| o3 | ~2,000 | $624 |
GPT-4.1 and o3 share a price sheet, yet o3 bills $624 vs $144 — because 72M output tokens (12M visible + 60M reasoning) run through the $8 meter instead of 12M. o4-mini is the sane middle: cheaper per token, still paying the reasoning tax, so it lands at $343 — more than double a non-reasoning model doing the same visible work.
OpenAI exposes a reasoning_effort parameter (minimal / low / medium / high). It's the single biggest knob on this bill, and most code leaves it at the default. Drop o3 from ~2,000 reasoning tokens to ~400 and the same month goes from $624 to $240. Same model, same task, one parameter — a 62% cut. For anything that isn't genuinely a hard multi-step problem, low or minimal effort usually passes the eval and quietly deletes most of the tax.
1. Don't reach for a reasoning model by reflex. Extraction, classification, tagging, routing and short summaries don't need a chain of thought. A standard model at the same sticker price costs a quarter as much because it emits no reasoning tokens.
2. If I do need reasoning, I set reasoning_effort explicitly and start low, escalating only when an eval proves the answer quality drops.
3. I read the completion_tokens_details field. The API response splits out reasoning_tokens separately — that's where the money leaks, and it's invisible in a per-request "it returned 400 tokens" mental model.
4. I route. Cheap task → standard small model. Hard task → reasoning model at measured effort. A simple router pays for itself in days; see the numbers in the LLM cascade savings calculator.
Want the exact number for your token mix? Put your input, visible output and a realistic reasoning-token estimate into the AI API Cost Calculator →, or compare providers head-to-head in the chatbot cost calculator. New to token pricing? Start at Learn: how API pricing works.
Reference estimates, July 2026. Reasoning-token counts are workload-dependent and taken from our own runs, not provider figures — measure yours. Not affiliated with OpenAI.