DeepSeek V4.1 Flash migration guide — API model names, pricing and Claude Code setup
DeepSeek V4.1 Flash and the September 14 switch: where the old API model names route, peak and off-peak prices, and Claude Code settings.
On this page
DeepSeek released V4.1 Flash on September 10. Requests using the existing V4 Flash model names already go to the new model, and V4 Pro is also scheduled to route to V4.1 Flash from 13:00 Korea Standard Time (KST, UTC+9) on September 14, 2026. Even if you keep the same model name, the model that answers and the price can change, so check your current settings and where your calls actually go before the switch. [1]
1. Executive summary
The official API name is deepseek-flash. The old names are still accepted, but the old models behind them are not kept. This migration is not just a string change in your code; it also means checking the model's behavior, billing and integration settings. The schedule and unit prices come from DeepSeek's official announcement and pricing page. [1] [2]
When we chose the topic, the DeepSeek post on Hacker News (HN) was drawing strong interest, with 691 points and 371 comments. That is an observation from one community, not a ranking of overall user interest. This report is a migration guide that cross-checks the official docs, not a performance review based on measurements. [7]
2. Model names and what they actually route to
An API model name is the identifier you put in a request. The company running the service can change the actual model behind that identifier. In this announcement DeepSeek stated where the old names are routed for compatibility and when the Pro name will switch. The table below applies to the API that DeepSeek itself runs; it does not mean the same schedule applies to other companies' relay services. [1] [2]
| Model name in the request | Routes to, as of 2026-09-11 | Planned from 13:00 KST on September 14 |
|---|---|---|
deepseek-flash | V4.1 Flash | V4.1 Flash |
deepseek-v4-flash | Temporarily routed to V4.1 Flash for compatibility | No end-of-support date confirmed for the old name |
deepseek-v4-flash-vision-exp | Temporarily routed to V4.1 Flash for compatibility | No end-of-support date confirmed for the old name |
deepseek-v4-pro | V4 Pro · Pro pricing | V4.1 Flash · Flash pricing, until V4.1 Pro is released |
The schedule in the original announcement is 2026-09-14 04:00 UTC. Korea is 9 hours ahead of UTC, so that is 13:00 the same day in Korea. The two earlier Flash models have already been retired; only their names are temporarily still accepted. Keeping an old model name does not by itself bring back the old behavior. [1]
The official docs say the new model supports image understanding and can be called in both the OpenAI format and the Anthropic format. But whether the call format is compatible and whether individual features behave identically have to be checked separately. For example, some Anthropic-format message types are not supported. Section 5 covers the specific differences. [4]
3. Pricing in Korea Standard Time
A token is the unit in which the model processes input and output; it is not the same as a count of characters or words. All amounts below are official V4.1 Flash API prices in US dollars per 1 million tokens, checked on 2026-09-11. Input reused from the cache, input processed fresh, and output are each billed at a different rate. [2]
| Billing item | Peak | Off-peak |
|---|---|---|
| Input · cache hit | $0.006 | $0.003 |
| Input · cache miss | $0.30 | $0.15 |
| Output | $1.20 | $0.60 |
According to the original, peak hours are 01:00–04:00 UTC and 06:00–10:00 UTC, Monday to Friday. Converted to Korea time, that is 10:00–13:00 and 15:00–19:00, Monday to Friday. All other hours are off-peak, at half the official prices. These are time-zone conversions, not a discount rate measured by actually running a particular workload. [2]
Worked example with the same usage
Assume that, across several calls, you used 1 million billable input tokens and 100,000 output tokens. Output means all billed output tokens. The table below is our editors' derived calculation, multiplying by the official prices; it is not a measurement of the cost or quality of any real task. It assumes every call falls within a single pricing window and leaves out costs such as relay-service fees.
| Assumption | Peak calculation | Peak total | Off-peak total |
|---|---|---|---|
| No input cache hits | 1 × $0.30 + 0.1 × $1.20 | $0.4200 | $0.2100 |
| 90% of input from cache hits | 0.9 × $0.006 + 0.1 × $0.30 + 0.1 × $1.20 | $0.1554 | $0.0777 |
The 90% cache hit rate is an assumption for the calculation. The official caching doc states that hits are not guaranteed. Recalculate from actual usage by reading prompt_cache_hit_tokens and prompt_cache_miss_tokens in the usage of OpenAI-format responses. Setting cache_control in Anthropic-format requests does not guarantee this hit rate either. [6] [4]
The cost of a task also depends on extra model calls from retries and tool use. DeepSeek's Claude Code integration doc says the extra model requests made to summarize web search results incur token costs. So compare the per-token price together with the cost of actually finishing one task. [3]
4. What to check in the Claude Code setup
DeepSeek's official integration doc shows how to set the API URL and credentials Claude Code uses so that its calls go to DeepSeek. In this setup you use Claude Code as the interface while model requests go to the DeepSeek API. It is not a way to keep using Anthropic's Claude models at a different price. [3]
| Environment variable | Value in the official guide | What to check |
|---|---|---|
ANTHROPIC_BASE_URL | https://api.deepseek.com/anthropic | The API URL that model requests are sent to |
ANTHROPIC_AUTH_TOKEN | Your own DeepSeek API key | Keep the key out of config files and shell history in plain text |
ANTHROPIC_MODEL | deepseek-flash[1m] | The default model. Check the per-role models below separately |
ANTHROPIC_DEFAULT_OPUS_MODELANTHROPIC_DEFAULT_SONNET_MODEL | deepseek-flash[1m] | Sets explicitly which model the Opus and Sonnet roles use |
ANTHROPIC_DEFAULT_HAIKU_MODELCLAUDE_CODE_SUBAGENT_MODEL | deepseek-flash | The model for the Haiku role and for subagents |
CLAUDE_CODE_EFFORT_LEVEL | max | The reasoning setting in the official example. Not a claim that it is the best value for every task |
CLAUDE_CODE_AUTO_COMPACT_WINDOW | 786432 | An official example setting for conversation compaction |
[1m] is the notation this integration example uses for a 1-million-token context setting. The context window is the span of conversation and material the model processes at once. The model name for ordinary DeepSeek API requests is deepseek-flash; the Claude Code strings in the table above are not meant to be used as-is in every call format. [3] [2]
Check the role names too. DeepSeek says its Anthropic-compatible API maps names starting with claude-opus to deepseek-v4-pro, and names starting with claude-haiku or claude-sonnet to deepseek-flash. The first of these, the Pro route, is billed at Pro prices until 13:00 KST on September 14. Distinguish between having set per-role models explicitly, as in the table above, and having old Claude names still in your requests. [3]
5. What behaves differently under API compatibility
A compatible API lets you send requests in the same format, but it does not guarantee that every field behaves the same way. The items below are stated in DeepSeek's Anthropic-compatible API doc, checked on 2026-09-11. Do not read this table as describing what Anthropic's own API supports. [4]
| Field or message type | What DeepSeek's Anthropic-compatible API doc says | What to check when migrating |
|---|---|---|
thinking.budget_tokens | Ignored | Do not assume your existing token budget setting limits the amount of reasoning |
output_config | Only effort is supported | Set reasoning effort separately and compare results |
cache_control on tools and messages | Ignored | Check cache usage in actual responses |
disable_parallel_tool_use | Ignored | Do not count on this setting alone to make tool calls run sequentially |
tool_result.is_error | Ignored | Check how tool failures are conveyed in follow-up model requests |
document and search_result content types | Not supported | Check whether your existing message formats can be reused as they are |
Thinking mode is a mode in which the model does extra reasoning before its final answer. DeepSeek's defaults are thinking enabled at high effort. The standard OpenAI Chat Completions format uses thinking and reasoning_effort, while the Anthropic format uses output_config.effort for reasoning effort. Do not mix the two request formats in your settings. [5]
If you implement a Chat Completions integration yourself, check the conversation history as well. The official docs say that in thinking mode, for requests that include tools, every follow-up call must pass back in full the reasoning_content of all previous responses, including turns with no tool call, and that leaving it out causes an HTTP 400 error. This field is the reasoning content the API returns. The docs distinguish this from ordinary conversations without tools, where the field does not need to be passed back. This is a rule for that API integration, not an instruction for Claude Code users to edit internal conversation data themselves. [5]
Our operational suggestion is to test tool failures, multiple tool calls and multi-turn conversations as well, instead of looking at a single successful response. Being able to send an ignored field without an error is not evidence that the setting was applied.
6. Pre-migration checklist
Below is the order of checks our editors derived from the migration conditions in the official docs. It is not a procedure that guarantees actual performance or cost savings.
- Record your call path. Check whether you call DeepSeek's API directly or through a relay service, and what the model name and per-role model settings in your requests are. Check a relay service's switch schedule with that service separately.
- Put the automatic switch on your calendar. The Pro route is scheduled to switch at 13:00 KST on September 14. Also note that the old Flash names already route to the new model.
- Compare representative tasks under the same conditions. Pick tasks you actually run, such as document summarization, real code changes and tool calls, and hold the inputs, reasoning effort and tool configuration fixed. Do not assume that a retired model can be called again just by using its old name.
- Verify the exceptions in the Anthropic-compatible API. Start with the features your existing code relied on, such as reasoning budgets, sequential tool use, tool error flags and document messages.
- Calculate from actual billed usage. Add up cache-hit and cache-miss input, output and extra calls, and separate peak from off-peak. Even if unit prices fall, the savings change if the number of calls per task goes up.
- Keep a path you can roll back to. Back up your settings and confirm which alternative models or services are actually available. Do not treat the official compatibility routes described here as a way to pin a model version.
If failures after the switch show up as timeouts, also check whether external tool actions completed. What to check before blindly calling again is set out in our report on agent retry design. This report focuses on the model change and on the billing and compatibility conditions.
7. What this is not yet
- We did not independently verify that V4.1 Flash performs better. DeepSeek claims improvements in performance, speed and cost over V4 Pro, but we did not run the model ourselves or reproduce the official benchmarks. We did not mix published scores with other evaluation setups to build a ranking.
- These are not results from running the compatibility settings ourselves. The settings table and API limits are based on the official docs as of 2026-09-11. Whether the connection works with your actual Claude Code version, account and network has to be confirmed in your own environment.
- The usage and cache ratio in the cost table are assumptions. Per-task cost varies with actual call length, retries and extra model requests. We did not establish how a request that spans the peak/off-peak boundary is billed in detail.
- Future dates are announced plans. At the time of writing (2026-09-11), the September 14 routing switch had not yet taken place, and it could change. We could not find the V4.1 Pro release date or the end-of-support date for the old Flash compatibility names in the cited docs.
- The interest signal is a limited observation. We chose the topic from HN points and comments and from visibility in Korean search results, but these do not prove overall user search volume or that it was the top topic of demand in Korea.
- Relay APIs, app subscriptions and self-hosting are separate. The prices and switch schedule in this report are for DeepSeek's direct API. We do not extend them to the cost of running the open model yourself or to other companies' contract prices.
8. Sources
| Source | What we checked | Type and date |
|---|---|---|
| [1] DeepSeek-V4.1-Flash Release | Release, retirement of the old models and compatibility of their names, Pro switch schedule | Vendor's primary announcement · 2026-09-10 |
| [2] Models & Pricing | What each model name routes to, input and output prices, peak hours | Official pricing page · checked 2026-09-11 |
| [3] Integrate with Claude Code | Environment variables, per-role models, the price of the Opus mapping, extra cost of web search | DeepSeek official integration doc · checked 2026-09-11 |
| [4] Using the Anthropic API | DeepSeek's model-name mapping and which fields and message types it supports | DeepSeek official compatibility doc · checked 2026-09-11 |
| [5] Thinking Mode | Default thinking mode, effort settings, conversation history with tool use | Official usage doc · checked 2026-09-11 |
| [6] Context Caching | Cache-hit and cache-miss token fields, and the limits of hit guarantees | Official usage doc · checked 2026-09-11 |
| [7] HN: DeepSeek v4.1 Flash | 691 points and 371 comments observed when we chose the topic | Community response · observed 2026-09-11 (KST) |
Prices and descriptions of API behavior are based on DeepSeek's docs. The Korea-time conversions and the cost examples are our editors' calculations, and the migration checklist is an operational suggestion built on them. We made no paid API calls and changed no settings in any reader's environment.