Eazler AI Lab AI Engineering Journal
Skip to article
Guides◷ 11 min read

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]

Korean original: 한국어 원문 (2026-09-11)Scope: DeepSeek API · Claude Code integrationPricing and docs checked: 2026-09-11

1. Executive summary

9/14
V4 Pro routing switch scheduled for 13:00 KST
$0.30
Flash peak price per 1M cache-miss input tokens
50%
Off-peak prices are half the peak prices

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]

The key conclusion: Check which model name your current calls use and what it routes to, then compare tool calls, error handling and actual cost on representative tasks. We suggest not taking the official docs' claims of better performance as proof that quality on your existing tasks has been verified.

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 requestRoutes to, as of 2026-09-11Planned from 13:00 KST on September 14
deepseek-flashV4.1 FlashV4.1 Flash
deepseek-v4-flashTemporarily routed to V4.1 Flash for compatibilityNo end-of-support date confirmed for the old name
deepseek-v4-flash-vision-expTemporarily routed to V4.1 Flash for compatibilityNo end-of-support date confirmed for the old name
deepseek-v4-proV4 Pro · Pro pricingV4.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]

Operational suggestion: If your call logs record only the model name, add the request time, API URL, reasoning settings and usage. When the name stays the same but what it routes to changes, the name alone cannot tell results from before and after apart. There is no need to add API keys or private raw inputs to the logs.

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 itemPeakOff-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.

AssumptionPeak calculationPeak totalOff-peak total
No input cache hits1 × $0.30 + 0.1 × $1.20$0.4200$0.2100
90% of input from cache hits0.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 variableValue in the official guideWhat to check
ANTHROPIC_BASE_URLhttps://api.deepseek.com/anthropicThe API URL that model requests are sent to
ANTHROPIC_AUTH_TOKENYour own DeepSeek API keyKeep the key out of config files and shell history in plain text
ANTHROPIC_MODELdeepseek-flash[1m]The default model. Check the per-role models below separately
ANTHROPIC_DEFAULT_OPUS_MODEL
ANTHROPIC_DEFAULT_SONNET_MODEL
deepseek-flash[1m]Sets explicitly which model the Opus and Sonnet roles use
ANTHROPIC_DEFAULT_HAIKU_MODEL
CLAUDE_CODE_SUBAGENT_MODEL
deepseek-flashThe model for the Haiku role and for subagents
CLAUDE_CODE_EFFORT_LEVELmaxThe reasoning setting in the official example. Not a claim that it is the best value for every task
CLAUDE_CODE_AUTO_COMPACT_WINDOW786432An 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]

Base your rollback settings on what names actually route to. Even if you can restore the URL and environment variables to their earlier values, a model that DeepSeek has retired does not come back. Before you rely on a name that is subject to automatic rerouting as a way to roll back, check where that name currently routes.

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 typeWhat DeepSeek's Anthropic-compatible API doc saysWhat to check when migrating
thinking.budget_tokensIgnoredDo not assume your existing token budget setting limits the amount of reasoning
output_configOnly effort is supportedSet reasoning effort separately and compare results
cache_control on tools and messagesIgnoredCheck cache usage in actual responses
disable_parallel_tool_useIgnoredDo not count on this setting alone to make tool calls run sequentially
tool_result.is_errorIgnoredCheck how tool failures are conveyed in follow-up model requests
document and search_result content typesNot supportedCheck 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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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

SourceWhat we checkedType and date
[1] DeepSeek-V4.1-Flash ReleaseRelease, retirement of the old models and compatibility of their names, Pro switch scheduleVendor's primary announcement · 2026-09-10
[2] Models & PricingWhat each model name routes to, input and output prices, peak hoursOfficial pricing page · checked 2026-09-11
[3] Integrate with Claude CodeEnvironment variables, per-role models, the price of the Opus mapping, extra cost of web searchDeepSeek official integration doc · checked 2026-09-11
[4] Using the Anthropic APIDeepSeek's model-name mapping and which fields and message types it supportsDeepSeek official compatibility doc · checked 2026-09-11
[5] Thinking ModeDefault thinking mode, effort settings, conversation history with tool useOfficial usage doc · checked 2026-09-11
[6] Context CachingCache-hit and cache-miss token fields, and the limits of hit guaranteesOfficial usage doc · checked 2026-09-11
[7] HN: DeepSeek v4.1 Flash691 points and 371 comments observed when we chose the topicCommunity 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.

Newsletter

The week’s new reports, every Sunday

One email a week with that week’s reports, skipped when nothing new came out. Nothing but report news.

Used only to announce new reports. Unsubscribe any time. Privacy Policy
Publisher

Eazler AI Lab is the AI engineering journal of Eazler Inc. We read primary sources in full, and say so when something is unverified.

Editorial standards and method →

We also post report summaries on Threads: @eazler.inc.

Building or adopting AI agents? hello@eazler.com