OpenAI's pricing page lists a model, a price for input tokens and a price for output tokens, and most people stop reading there. The bill does not. Since GPT-5.6 the rate card has four prices per model — input, cached input, cache writes and output — two context bands that switch at 272,000 tokens, three processing tiers that halve or double every line, and a surcharge for regional processing. A request can be billed at any combination of them, and the difference between the cheapest and the most expensive way to run the same prompt on the same model is about 4×.
This guide decodes every line of the card and prices three real workloads on it. All figures are from OpenAI's own pricing page and prompt-caching documentation, read on September 22, 2026, and every worked number was produced by a short script you can re-run. If you want the same shapes on Anthropic's card, our Claude API pricing guide is the sibling to this one; to compare the two providers on a task, use the cost-per-task comparison.
The rate cardFour prices per model, not two
Prices are per one million tokens, Standard tier, short context (an input of 272,000 tokens or fewer).
GPT-6 Astra
- Input
- $10.00
- Cached input
- $1.00
- Cache write
- $12.50
- Output
- $50.00
GPT-5.6 Sol
- Input
- $4.00
- Cached input
- $0.40
- Cache write
- $5.00
- Output
- $20.00
GPT-5.6 Terra
- Input
- $2.00
- Cached input
- $0.20
- Cache write
- $2.50
- Output
- $12.00
GPT-5.6 Luna
- Input
- $0.20
- Cached input
- $0.02
- Cache write
- $0.25
- Output
- $1.20
GPT-5.4 mini
- Input
- $0.75
- Cached input
- $0.075
- Cache write
- —
- Output
- $4.50
GPT-5.4 nano
- Input
- $0.20
- Cached input
- $0.02
- Cache write
- —
- Output
- $1.25
| Model | Input | Cached input | Cache write | Output |
|---|---|---|---|---|
| GPT-6 Astra | $10.00 | $1.00 | $12.50 | $50.00 |
| GPT-5.6 Sol | $4.00 | $0.40 | $5.00 | $20.00 |
| GPT-5.6 Terra | $2.00 | $0.20 | $2.50 | $12.00 |
| GPT-5.6 Luna | $0.20 | $0.02 | $0.25 | $1.20 |
| GPT-5.4 mini | $0.75 | $0.075 | — | $4.50 |
| GPT-5.4 nano | $0.20 | $0.02 | — | $1.25 |
Source: CalculatorAI · calculatorai.app · developers.openai.com/api/docs/pricing, read September 22, 2026
Three things to read off the table before any arithmetic. Output costs five to six times input on every row, so the shape of a request — how much it reads against how much it writes — matters as much as the model. A cached read is a tenth of a fresh read, the same 90% discount at every tier. And the write column is not a fee on top: OpenAI's own note says an input token is billed as either input, cached input or a cache write, never two of them. The older GPT-5.4 and GPT-5 families, plus the o-series, are still on the page at their previous prices with no cache-write column at all; they cache for free but with a shorter retention.
What a million tokens isAbout 750,000 words
A token is a piece of text roughly three-quarters of an English word long, so one million tokens is about 750,000 words — nine average novels, or the full text of this guide about 250 times. That sounds like a lot until you see what a single request consumes.
(fresh input × input price + cached input × cached price + output × output price) ÷ 1,000,0001,000-token system prompt + 500-token question + 400-token answer ≈ 1,900 tokens≈ 20,000 input tokens + 800 output tokens≈ 60,000 tokens of files, tools and history + 2,000 tokens of editsHidden reasoning tokens are billed at the output price, on top of the visible answerThe formula has three token counts in it because a request has three kinds of token, and only one of them — the output — is what you see. The counts themselves depend on the model: OpenAI's tokenizer is the one you can run in a browser, so the AI Token Cost Calculator counts your actual text per model and prices it, instead of multiplying a guess by a rate.
Three workloadsCost per request and per month
The same three shapes, priced on six models at Standard short-context rates with no caching. Monthly volumes are illustrative: 10,000 chat turns, 1,000 summaries, 3,000 agent steps.
GPT-6 Astra
- Chat turn · month
- $0.035 · $350
- Summary · month
- $0.24 · $240
- Agent step · month
- $0.70 · $2,100
GPT-5.6 Sol
- Chat turn · month
- $0.014 · $140
- Summary · month
- $0.096 · $96
- Agent step · month
- $0.28 · $840
GPT-5.6 Terra
- Chat turn · month
- $0.0078 · $78
- Summary · month
- $0.050 · $50
- Agent step · month
- $0.144 · $432
GPT-5.4 mini
- Chat turn · month
- $0.0029 · $29
- Summary · month
- $0.019 · $19
- Agent step · month
- $0.054 · $162
GPT-5.4 nano
- Chat turn · month
- $0.0008 · $8
- Summary · month
- $0.005 · $5
- Agent step · month
- $0.0145 · $44
GPT-5.6 Luna
- Chat turn · month
- $0.0008 · $7.80
- Summary · month
- $0.005 · $4.96
- Agent step · month
- $0.0144 · $43
| Model | Chat turn · month | Summary · month | Agent step · month |
|---|---|---|---|
| GPT-6 Astra | $0.035 · $350 | $0.24 · $240 | $0.70 · $2,100 |
| GPT-5.6 Sol | $0.014 · $140 | $0.096 · $96 | $0.28 · $840 |
| GPT-5.6 Terra | $0.0078 · $78 | $0.050 · $50 | $0.144 · $432 |
| GPT-5.4 mini | $0.0029 · $29 | $0.019 · $19 | $0.054 · $162 |
| GPT-5.4 nano | $0.0008 · $8 | $0.005 · $5 | $0.0145 · $44 |
| GPT-5.6 Luna | $0.0008 · $7.80 | $0.005 · $4.96 | $0.0144 · $43 |
Source: CalculatorAI · calculatorai.app · drafts/openai-api-pricing-numbers.mjs — Standard tier, short context, September 22, 2026 rates
The spread from Luna to Astra is 45–50× on every row, and the tier you pick moves the bill far more than anything else on this page. The model is the first decision, and the honest way to make it is to run your own evaluation set on Terra or Luna first and reserve Sol or Astra for the requests that fail there. What the table also shows is where the money goes in each shape: in a chat turn, 57–62% of the cost is the 400-token answer; in the summary and the agent step, 80–85% is the input. That decides which of the levers below is worth pulling.
Output is the expensive halfAnd reasoning counts as output
What you send
Priced at $0.20–$10 per million, cacheable at a tenth, and discounted by half on Batch or Flex. A long system prompt, tool definitions and conversation history all live here, and all of it can be cut or cached.
What the model writes — including what you never see
Priced at 5–6× input, never cached, and inflated by reasoning: OpenAI's pricing note states that output prices include reasoning tokens even though they are not visible in the API. A 300-token answer that took 3,000 reasoning tokens bills as 3,300.
The invisible 3,000 tokens
A 2,000-token prompt gets a 300-token visible answer. At a high reasoning setting the model spent 3,000 hidden tokens getting there. The request looks like it should cost the first figure and bills the second — a 5.3–5.7× gap that is identical at every tier because it is a property of the output price ratio, not of the model.
Two practical rules follow. Cap max_output_tokens on anything that runs unattended, because output is the one line no discount touches. And treat the reasoning-effort setting as a price control: the usage field in every response reports reasoning tokens separately, and a week of those numbers tells you which tasks actually need the effort.
Prompt caching1,024 tokens, 30 minutes, 1.25× to write
Caching is on by default for every supported model, and it works on the prefix: the model reuses the saved state for the longest stretch at the start of your prompt that it has seen before. The rules for GPT-5.6 and later, from OpenAI's prompt-caching guide:
The prefix has to be at least 1,024 tokens
Shorter prompts are never cached. A 600-token system prompt gets no discount at all; padding it to 1,024 with genuinely useful instructions is, oddly, the cheaper design.
The first request pays 1.25× to store it
That is the cache-write column: $2.50 per million on Terra against $2.00 for a plain read. It is not an extra fee — those tokens are billed as a write instead of as input. On GPT-5.6 you can place explicit cache breakpoints; earlier models cache implicitly and write for free.
Every later hit reads at 0.1×
$0.20 per million on Terra. The 25% write premium is repaid by the very next hit, so caching is cheaper than not caching from the second request on.
The entry lives 30 minutes past its last use
Each hit resets the clock. A bot that gets a request every few minutes keeps its prefix warm all day for one write; one that sleeps overnight writes again in the morning. Older models keep entries for 5–10 minutes of inactivity, up to an hour, with an optional 24-hour retention.
Put the stable part first
System prompt, tool definitions, few-shot examples, then the conversation, then the new message. Anything that changes — a timestamp, a user name — placed before the stable block breaks the prefix and costs you the whole discount.
What that is worth depends on how much of the request is prefix. In the support-chat shape — 1,000 cached tokens, 500 of user text, 400 of answer — caching cuts the Terra bill from $78 to about $62 a month, a fifth, because the answer and the user's text are not cacheable. On a request with a bigger prefix and a shorter answer — the 60,000-token coding step with its whole context cached — the cut is about 75%, which is why the coding-agent and MCP-server bills are the ones caching transforms.
The 272K cliffLong context doubles the input price
Every current model has a second column set: once a request's input exceeds 272,000 tokens, all of its input is billed at the long-context rate — double the short-context price — and its output at 1.5×.
100,000
- Band
- Short
- Cost of the request
- $0.224
272,000
- Band
- Short
- Cost of the request
- $0.568
273,000
- Band
- Long
- Cost of the request
- $1.128
400,000
- Band
- Long
- Cost of the request
- $1.636
| Input tokens | Band | Cost of the request |
|---|---|---|
| 100,000 | Short | $0.224 |
| 272,000 | Short | $0.568 |
| 273,000 | Long | $1.128 |
| 400,000 | Long | $1.636 |
Source: CalculatorAI · calculatorai.app · drafts/openai-api-pricing-numbers.mjs
One thousand extra tokens across the line costs 99% more, because the first 272,000 are repriced too. For an agent whose context grows with every step, that is a cliff it walks toward on its own: our agent cost calculator models the growth, and the fix is a summarise-and-truncate step well before 272K rather than a bigger budget.
Batch, Flex, Fast modeThe same tokens at 0.5×, 0.5× and 2×
Every price above is the Standard tier. Three others apply the same multiplier to every column of a model's row.
Batch API — half price, results within 24 hours
Upload a file of requests, collect the results later. Input, cached input, writes and output all drop 50%: the 1,000-summary job on Terra goes from $49.60 to $24.80 a month. For anything not waiting on a user — nightly reports, classification backfills, embeddings — this is the default.
Flex — half price, slower, in real time
The same 50% as Batch, but on ordinary requests that tolerate higher latency and the occasional retry. Terra at $1 in / $6 out is the cheapest way to run a mid-tier model interactively.
Fast mode — double price, faster
Formerly 'priority processing', renamed July 30, 2026; either service_tier value still works. Every column doubles: Terra becomes $4 in / $24 out, Sol $8 / $40. Pay it for the user-facing requests where latency is the product, and nothing else.
Regional processing — plus 10%
Data-residency endpoints add a 10% uplift on models released from March 5, 2026 onward. Fast mode is not available for GPT-6 Astra with EU residency.
So the 20-page summary on Terra costs $0.025 on Batch and $0.10 in Fast mode — the 4× at the top of this guide, for the same tokens on the same model. Whether the API beats a flat ChatGPT plan at your volume is a different question, worked through in ChatGPT Plus vs Pro vs API and answered for your own numbers by the subscription vs API calculator.
ToolsPriced per call, on top of the tokens
- Web search: $10 per 1,000 calls, one cent a call, plus the tokens of the search results the model reads at the model's own input rate. A chatbot that searches on every turn adds $100 to the 10,000-turn month before any of those result tokens.
- File search: $2.50 per 1,000 calls plus storage at $0.10 per GB per day after the first free gigabyte.
- Containers (Code Interpreter and Hosted Shell): from $0.03 per 20-minute session for 1 GB of memory, up to $1.92 for 64 GB, with a five-minute minimum where billed by the minute.
- The APIs themselves are free. Responses, Chat Completions, Realtime, Batch and Assistants are not priced separately; you pay the model's token rates through any of them.
Where these numbers come from
Every price is from OpenAI's pricing page (developers.openai.com/api/docs/pricing) and every caching rule from its prompt-caching guide, both read on September 22, 2026; the site's own model table, which the AI calculators share, was checked against the page the same day and matches. The three workloads, the caching example, the long-context table and the tier comparison were computed in drafts/openai-api-pricing-numbers.mjs — a plain script that multiplies token counts by the published rates — at Standard tier and short context unless the section says otherwise. The token counts of the workloads are illustrative shapes, not measurements of any particular prompt; the "750,000 words" figure uses OpenAI's own rule of thumb of about three-quarters of a word per token for English, which shortens for code and other languages. The caching saving on the chat shape assumes 720 cache writes a month (a cold cache every 30 minutes, the worst case for a low-traffic bot); a busy service writes far less often and saves slightly more. The reasoning example assumes 3,000 hidden tokens, a round number chosen to show the mechanism; actual reasoning counts are in the usage field of each response. Older-generation OpenAI models and the o-series are listed on the same page at unchanged prices and were not re-priced here.
Frequently asked questions
What does one million tokens cost on the OpenAI API? It depends on which million. As input at Standard rates: $0.20 on GPT-5.6 Luna, $2 on Terra, $4 on Sol, $10 on GPT-6 Astra. As output: $1.20, $12, $20 and $50. As cached input: a tenth of the input price. On Batch or Flex, half of any of those; in Fast mode, double.
Is cached input an extra charge? No. OpenAI bills each input token as one of three things — input, cached input or a cache write — never more than one. A cache write costs 1.25× the input price once; every later hit on that prefix costs 0.1×.
When does long-context pricing apply? When a request's input exceeds 272,000 tokens. The whole request is then billed at the long-context rates — 2× on input, 1.5× on output — not just the tokens above the line, so a 273,000-token request costs about twice a 272,000-token one.
Do reasoning tokens cost money?
Yes, at the output price. OpenAI's pricing note says output prices include reasoning tokens even though they are not visible in the API; the count is reported in the response's usage field. Lower the reasoning effort on tasks that do not need it.
Is the Batch API the same price as Flex? Yes, both are 50% of Standard on every column. Batch is for files of requests returned within 24 hours; Flex is for ordinary real-time requests that can tolerate slower responses and occasional retries.






