GPT-6 Luna API pricing: batch costs and cache accounting
Estimate GPT-6 Luna batch and Standard costs, include cache writes and retries, and avoid confusing desktop access with a free API tier.
GPT-6 Luna’s direct OpenAI Standard rates are $0.10 per million ordinary input tokens and $0.50 per million output tokens for short-context requests. For a large classification or extraction job, those rates can make the raw token bill small. Output length, rejected results and repeated work still matter.
The rates below were checked on September 23, 2026 using the Luna model page and OpenAI pricing. They are USD per million text tokens, not Ofox prices. A low token price does not establish extraction accuracy, and this article does not report a paid model benchmark.
Luna rates by processing mode
| Mode and input size | Ordinary input | Cache read | Cache write | Output |
|---|---|---|---|---|
| Standard, at or below 272K input | $0.10 | $0.01 | $0.125 | $0.50 |
| Standard, above 272K input | $0.20 | $0.02 | $0.25 | $0.75 |
| Batch/Flex, at or below 272K input | $0.05 | $0.005 | $0.0625 | $0.25 |
| Fast, at or below 272K input | $0.20 | $0.02 | $0.25 | $1.00 |
The threshold is per request. A batch containing many small requests does not become a long-context request merely because their total input exceeds 272K. Conversely, one long request does not qualify for short-context rates because it is part of a batch.
For long inputs, use half the long-context Standard rates for Batch/Flex or twice them for Fast. Regional processing can add a premium where supported. Select a processing mode supported by your endpoint and use case; the table is not a list of multipliers that can all be combined.
What would 1,000 extraction requests cost?
Consider 1,000 separate requests, each with 2,000 ordinary input tokens and 300 billed output tokens. Assume no cache, no tool fees and no retries. The totals are 2 million input tokens and 0.3 million output tokens.
| Calculation | Standard | Batch |
|---|---|---|
| Input | 2 × $0.10 = $0.20 | 2 × $0.05 = $0.10 |
| Output | 0.3 × $0.50 = $0.15 | 0.3 × $0.25 = $0.075 |
| Total | $0.35 | $0.175 |
These are calculated examples, not measured workloads or estimates of how many tokens a particular document will require. If 100 requests need one identical retry, the example becomes $0.385 Standard or $0.1925 Batch. Real retries may use longer prompts or outputs, so record their actual usage.
The downloadable calculator and CSV make the assumptions explicit. The Python calculator runs locally and makes no network requests.
When Batch is appropriate
The Batch API documentation describes asynchronous processing with a 24-hour completion window. It is suitable when you can wait for a job, retrieve results and reconcile them with your original records. It is not a way to promise a faster interactive response.
Assign a stable identifier to every record. Check completed, failed and expired work separately; do not silently drop records without outputs. Validate the result against a schema and against the original text. Valid JSON can still contain a wrong amount, invented label or missing qualification.
For a customer-facing workflow, decide what should happen when a record fails validation: retry, escalate to another model or send it to a human. Include that expense in the budget. A small per-request price is useful only when the result is usable.
Cache savings need actual reuse
Cache reads cost less than ordinary input, but cache writes cost more. A reused instruction prefix can reduce later input charges; a unique document that is never reused does not automatically earn a read discount.
Keep ordinary input, cached reads and cached writes as separate token categories. If a prefix is billed as a write, do not also bill those tokens as ordinary input. The cache accounting guide explains why first-write cost and hit rate both belong in the calculation.
The launch announcement lists Luna’s prior promotional rates as $0.20 input and $1.20 output. The new input rate is 50% lower, while the new output rate is about 58.3% lower. A blanket claim that every Luna billing category fell by exactly 50% would lose that distinction.
Decide whether Luna fits the job
OpenAI positions Luna for focused, high-volume work. Treat that as a starting point for evaluation. Use a sample containing both ordinary and difficult records, define the acceptance criteria before inspecting outputs, and report false classifications as well as successes.
Use the GPT-6 model-selection guide to decide when to evaluate Sol or Astra. Before integrating tools, check the Responses migration guide. If you only want to try the desktop product, the access guide explains why desktop availability and API billing are different questions.
Frequently Asked Questions
- Is Luna API usage free for Free or Go users?
- Desktop access described in the launch announcement is separate from direct API billing. Do not infer a free API tier from a ChatGPT plan.
- Does a large batch trigger long-context pricing?
- The input threshold applies to each request, not the sum of unrelated requests in the batch.
- Is the $0.35 example a benchmark?
- No. It is arithmetic for 1,000 assumed requests with fixed token counts, no cache, no separate tool fees and no retries.


