OpenAI and Anthropic both cut prices on 22 September. One of them costs you a refactor.
Two frontier price cuts in one day is a good week for anyone paying a token bill. The migration cost is not evenly distributed, and one of the two prices comes with an expiry hedge.
- GPT-6 Sol
- $2 input, $0.20 cached, $10 output per 1M, up to 272K input tokens
- GPT-6 Luna
- $0.10 input, $0.01 cached, $0.50 output per 1M
- GPT-5.6 Sol, for comparison
- $4 input, $0.40 cached, $20 output
- Claude Opus 5.5
- $4 input, $20 output, cache hits $0.20
- Claude Opus 5
- $5 input, $25 output
- Migration cost
- GPT-6: an eval run. Opus 5.5: three request shapes now return 400
What each lab actually published
OpenAI released GPT-6 Sol and GPT-6 Luna on 22 September. Both accept text and image input and return text, through the Responses and Chat Completions APIs. Standard pricing per million tokens, for prompts up to 272K input tokens, is $2 input, $0.20 cached input and $10 output for Sol, and $0.10 input, $0.01 cached input and $0.50 output for Luna.
The same day Anthropic released Claude Opus 5.5 at $4 and $20 per million tokens, against Opus 5 at $5 and $25. It comes with a 1M token context window by default, 128k maximum output tokens, and always-on adaptive thinking. Anthropic says the model will cost 40 percent less than Opus 5 on typical workloads at default settings, a larger figure than the 20 percent list price cut because it also claims token efficiency gains, and that it generates output more than 30 percent faster.
One detail in the Anthropic pricing is easy to miss and worth real money on agentic workloads. Cache hits on Opus 5.5 are priced at 0.05x the base input price rather than the usual 0.1x multiplier, which puts a cache hit at $0.20 per million tokens. Anthropic describes that as 60 percent less than Opus 5.
The 272K cliff
The GPT-6 prices above are the short context rates. Above 272K input tokens, different numbers apply: GPT-6 Sol moves to $4 input, $0.40 cached and $15 output, and GPT-6 Luna to $0.20, $0.02 and $0.75.
Note the shape of that change. Input and cached input double, but output rises by half, not double. It is a common mistake to describe long context pricing as a doubling across the board, and it produces a budget that is wrong in both directions depending on how output-heavy your workload is.
If your prompts sit anywhere near 272K, this is worth a guard in code rather than a note in a spreadsheet. Count tokens before the call and decide deliberately whether a given request is worth crossing the threshold.
Three ways Opus 5.5 returns a 400
The Anthropic cut is not a model id swap. The release notes list three request shapes that now fail outright, and a failure here is an HTTP 400, not degraded output.
First, thinking is always on, and the thinking field is rejected in both its forms. Sending thinking with type disabled returns a 400, and so does sending it with type enabled. The fix is to omit the field entirely and control thinking depth with the effort parameter instead.
Second, tool_choice types any and tool return a 400, as they already did on Claude Fable 5.1. Anthropic points you at auto with strict tool use. If you currently force a tool call to guarantee a structured response, that is a real refactor rather than a config change, because you are replacing a hard guarantee with a softer one and need to handle the case where the model answers in prose.
Third, computer use on this model requires the computer_toolset_20260801 toolset on the Claude API and on Google Cloud, where the earlier computer_20251124 tool returns a 400. On Amazon Bedrock, computer_20251124 keeps working, so the same code can pass on one platform and fail on another.
The word OpenAI used, and the word Google did not
Read what each provider commits to. OpenAI explicitly labels GPT-5.6 Sol's price as promotional, available at least through 21 November 2026. That phrasing is a floor, not a ceiling, and it tells you the number is a decision the provider can revisit. Nothing on OpenAI's changelog or pricing page describes GPT-6 Sol or Luna pricing as promotional or introductory.
Google's pricing page does something different again. It carries no word like introductory anywhere, and simply lists two prices with a date between them: Gemini 3.6, 3.7 and 3.8 Flash go from $0.75 to $1.50 input and $3.75 to $7.50 output on 1 January 2027. A scheduled increase stated as plainly as that is arguably more honest than a promotional label, and it is certainly easier to budget against.
The broader point for anyone building a business on tokens: a price with a stated end date is a different product from a price without one. Treat the first as a promotion you are borrowing and the second as a number you can plan on, and check which kind you are standing on before you quote a customer a margin.
A sane way to act on a week like this
Two frontier cuts in one day is unusual and it is tempting to reroute everything immediately. The cheaper move is to treat a price change as a prompt to run the eval you already have, not as a reason to rebuild routing.
- Re-run your existing eval set against the cheaper model rather than trusting a vendor's workload claim, especially the 40 percent figure, which depends on workload shape
- Search your codebase for tool_choice values of any and tool, and for any thinking field, before pointing traffic at Opus 5.5
- Add a token count guard at 272K if you use GPT-6 and send long prompts
- Check whether your cache hit rate is high enough for the 0.05x multiplier on Opus 5.5 to matter, because on agentic workloads it often dominates the headline rate
- Write down which of your prices carry a stated end date, and diary those dates
What to do
- 1Re-run your own evals against GPT-6 Luna for high-volume classification, extraction and routing work.
- 2Before migrating to Opus 5.5, grep for tool_choice any, tool_choice tool, and the thinking field.
- 3Replace forced tool calls with auto plus strict tool use, and handle the prose fallback path.
- 4Add a guard at 272K input tokens if you use GPT-6 with long prompts.
- 5Diary 21 November 2026 for GPT-5.6 Sol promotional pricing and 1 January 2027 for Gemini Flash.
Common questions
How much do GPT-6 Sol and GPT-6 Luna cost?
For prompts up to 272K input tokens, GPT-6 Sol is $2 input, $0.20 cached input and $10 output per million tokens. GPT-6 Luna is $0.10 input, $0.01 cached input and $0.50 output. Above 272K, Sol is $4, $0.40 and $15, and Luna is $0.20, $0.02 and $0.75.
How much does Claude Opus 5.5 cost?
$4 per million input tokens and $20 per million output tokens, against $5 and $25 for Opus 5. Cache hits are $0.20 per million, because Opus 5.5 prices cache hits at 0.05x base input rather than the usual 0.1x.
Is Claude Opus 5.5 a drop-in replacement for Opus 5?
No. Three request shapes return a 400 error: the thinking field in either its enabled or disabled form, tool_choice types any and tool, and the computer_20251124 computer use tool on the Claude API and Google Cloud. On Amazon Bedrock the older computer use tool still works.
Why does Anthropic claim 40 percent when list prices fell 20 percent?
The list price cut is 20 percent on both input and output. Anthropic says its tests show 40 percent lower cost on typical workloads at default settings, with the difference coming from token efficiency rather than from the per-token rate. That figure depends on workload shape, so it is worth measuring on your own traffic.
Is GPT-6 pricing promotional?
Nothing on OpenAI's changelog or pricing page describes GPT-6 Sol or Luna pricing as promotional or introductory. GPT-5.6 Sol is separately described as promotional, available at least through 21 November 2026.
Sources
- OpenAI: API changelog
- OpenAI: API pricing
- Anthropic: Claude API release notes
- Anthropic: pricing
- Anthropic: Claude Opus 5.5
- Google: Gemini API pricing
Read against the primary documentation rather than secondary coverage. Where a figure comes from a provider's own docs, it is quoted as published on 2026-09-25.
Related
More from Signals
Open the tool.
Ten production categories, three minutes, and a ranked list of what to fix first.
Check your own stack