GPT Image 2.5 Flare & Sunburst are live on EvoLinkTry GPT Image 2.5
DeepSeek V4.1 Flash migration from legacy applications through route verification and workload evaluation
guide

DeepSeek V4.1 Flash Migration Guide: Pro, Flash & Vision

Jacey
Jacey
September 10, 2026
15 min read
If your application calls DeepSeek V4 Flash, Vision Exp or Pro, first check where the request goes. DeepSeek released V4.1 Flash on September 10, 2026. On DeepSeek's direct API, the old Flash and Vision Exp names already forward to V4.1 Flash, and Pro requests are scheduled to follow on September 14, 2026 at 12:00 Beijing time (04:00 UTC). Official release notes
On EvoLink the picture is different: deepseek-v4-flash and deepseek-v4-pro are not affected and continue to serve DeepSeek V4 Flash and V4 Pro. Only deepseek-v4-flash-vision-exp has changed: it now redirects to DeepSeek V4.1 Flash. You can keep existing Flash and Pro workloads running while you evaluate V4.1 Flash side by side, instead of migrating on the provider's deadline.
Scope: this is a migration procedure based on DeepSeek's documentation and EvoLink's current routing, not a report of a completed production migration. Measure quality and charges on your own account before moving traffic.
View the DeepSeek V4.1 Flash model page

What changed, by model ID

Model IDDeepSeek direct APIEvoLinkWhat to do
deepseek-v4-flashForwards to V4.1 Flash since September 10Not affected; still DeepSeek V4 FlashKeep running; evaluate V4.1 Flash when image input or the newer model is useful
deepseek-v4-flash-vision-expForwards to V4.1 Flash since September 10Redirects to DeepSeek V4.1 FlashRe-run your image evaluation set; switch the ID to deepseek-v4.1-flash
deepseek-v4-proForwards to V4.1 Flash from September 14, 04:00 UTCNot affected; still DeepSeek V4 ProDirect-API users: prepare before the cutoff. EvoLink users: no forced change
deepseek-flashCurrent V4.1 Flash nameNot an EvoLink model IDUse only on DeepSeek's direct API
deepseek-v4.1-flashNot a DeepSeek direct-API nameDeepSeek V4.1 FlashUse for new EvoLink integrations
The provider-side entries follow DeepSeek's current model table. The EvoLink page path /deepseek-v4-1-flash uses hyphens; it is not a model ID. A response that echoes your requested name is useful for logging, but keep your own record of which provider and ID produced each result.

Which applications need action first?

Prioritize by where the request goes and by the consequence of a changed answer.

ApplicationSituationFirst action
Calls deepseek-v4-pro on DeepSeek's direct APIMoves to V4.1 Flash on September 14Save baseline outputs and tests before the cutoff; decide whether V4.1 Flash passes or you need to keep V4 Pro through another route such as EvoLink
Calls deepseek-v4-flash or deepseek-v4-flash-vision-exp on DeepSeek's direct APIAlready served by V4.1 FlashCompare recent results with outputs saved before September 10
Uses deepseek-v4-flash-vision-exp on EvoLinkAlready redirected to V4.1 FlashRe-run the visual evaluation set; update the ID to deepseek-v4.1-flash
Uses deepseek-v4-flash or deepseek-v4-pro on EvoLinkUnchangedNo forced migration; evaluate V4.1 Flash on a sample of real tasks
Uses Flash and Pro as mutual fallbacks on DeepSeek's direct APIBoth names reach V4.1 Flash after September 14Replace the pair with routes that still serve different models, for example V4 Flash and V4 Pro on EvoLink, and confirm separately that they do not share a provider, quota or failure mode

Avoid expanding production traffic while a required protocol, billing rule or rollback target is still unknown. You can still prepare test fixtures, configure a candidate route and evaluate noncritical tasks. A small successful text response is the start of validation, not the end.

Keep the first change small, then test the client contract

Keep the existing prompt, tool schema and task fixtures stable during the first comparison. Changing the model, client library, prompt and reasoning settings together makes a regression difficult to diagnose.

Use an active EvoLink API key, set the model to deepseek-v4.1-flash, and start from the request examples on the model page. The DeepSeek Chat documentation describes the shared DeepSeek request format on EvoLink. Do not transplant a direct-provider example without checking its endpoint, authentication and supported fields.

Review these client behaviors separately:

  • Thinking controls: DeepSeek documents thinking as enabled by default on its direct API. Check which setting your requests actually use rather than interpreting "optional" as "off," and record it with each evaluation run. Thinking guide
  • Conversation history: verify which messages, reasoning blocks and tool results must be replayed. A successful first turn does not establish that a multistep conversation works.
  • Tool execution: check tool names, argument parsing, call IDs, result ordering and the next assistant turn. Use harmless test tools before connecting actions with external side effects.
  • Streaming: ensure the client handles completion and interruption events correctly. Record time to first output and time to a complete usable answer separately.
  • Image input: image fields differ by protocol (image_url for Chat Completions, an image block for Messages, input_image for Responses). Test one image on the protocol you use before adding a batch.
  • Usage: inspect the actual response fields and account charges. Missing cached-token data is unknown usage, not automatically zero cache hits.
The V4 Pro tutorial and the Vision Exp tutorial cover the earlier integrations. Read their lifecycle notices before reusing a snippet.

Compare against the model you use today

On EvoLink, V4 Flash, V4 Pro and V4.1 Flash are separate models. Replay the same fixtures against your current ID (deepseek-v4-flash or deepseek-v4-pro) and against deepseek-v4.1-flash, then compare the results side by side.

Vision Exp is the exception: its ID already redirects to V4.1 Flash, so the original model is no longer available to compare against. Use outputs you saved before the redirect. The same applies to the old names on DeepSeek's direct API. Sending one prompt to two names that reach the same model is not a model comparison.

Start with a manageable set of representative tasks. For example, select 30–50 fixtures across routine work, difficult cases, long-context inputs and known failures. This is a suggested starting sample, not a statistical guarantee. Include enough examples from each important workload that one good demo cannot hide a failure elsewhere.

WorkloadPreserve from the current integrationMeasure on the candidate
CodingInput files, requested change, accepted patch and test suiteTest pass rate, unexpected edits, incomplete tasks and review effort
Agent toolsTool schemas, expected call sequence and final stateCorrect arguments, duplicate calls, recovery and successful completion
Structured extractionInputs, expected fields and validation rulesSchema validity, missing values, false values and review rate
VisionOriginal images and labeled visible evidenceField accuracy, invented details and handling of unreadable content
Long-context analysisRequired source passages and reference answerEvidence recall, unsupported claims, latency and task cost

Store the request configuration beside each result: model ID, verification date, output limit, reasoning controls, prompt revision, tool definitions and context size. Repeat cases whose outputs vary enough to affect the decision. Report uncertainty instead of turning a single run into a universal ranking.

Define failure before running the evaluation. An invalid patch, a tool argument that acts on the wrong record, or a fabricated required field should fail even if the response reads well. For less critical style differences, use a separate review category so they do not hide functional regressions.

Migration acceptance record

Keep one record per test case in a shared sheet. It ties each result to the conditions it ran under, the cost it produced and the decision it supports, so a cutover can be approved or paused from the same evidence.

Field groupWhat to record
Identity and conditionsProvider and base URL; current and candidate model ID; protocol; thinking setting and effort; prompt version; fixture-set version
Task and resultCase ID; input type (text or image); expected result; actual output; pass or fail with reason; tool side effects or duplicate calls
Runtime and costTime to first output; time to a complete result; input, cached and output usage; final charge; retry count
Release decisionYour pass threshold (for example, zero critical failures); observation window; condition to expand traffic; condition to pause; fallback target that matches the input type

Example entry (illustrative only, not a measured result):

FieldExample
Case IDINV-017
Input typeImage: scanned invoice
Current → candidateSaved output from deepseek-v4-flash-vision-exp (before the redirect) → deepseek-v4.1-flash
Expected resultJSON with invoice number, date and total
Pass ruleAll three fields match the label; no invented fields
ResultFail: total read from the subtotal line
Usage and chargeRecord the usage fields and final charge for this request
DecisionKeep invoice traffic off the candidate; add similar invoices to the fixture set and re-run
Fallback targetAnother vision model that passed the same invoice set, or human review

Move traffic only after the acceptance checks pass

DeepSeek V4.1 Flash rollout from route verification to historical replay, limited traffic and expansion, with a separate fallback path
DeepSeek V4.1 Flash rollout from route verification to historical replay, limited traffic and expansion, with a separate fallback path

Use a feature flag or routing configuration to select the candidate for a bounded workload. Keep a record of which requests used it. Start with internal or otherwise noncritical work; introduce customer traffic only after the application checks pass.

A practical sequence is:

  1. Confirm the request. Check the exact model ID, protocol, permissions and price source.
  2. Replay offline fixtures. Compare against your current model or stored acceptance criteria and diagnose failures while traffic is unaffected.
  3. Run a limited cohort. Select a small workload or tenant cohort whose errors can be contained. Monitor accepted results, latency and charges.
  4. Expand by task class. Increase use where the model passes. Keep harder or poorly measured tasks on the model that already passes them.
  5. Recheck after provider changes. A stable ID does not exempt the application from future regression tests.

Choose thresholds from your own service requirements. For instance, a team might require no critical tool failures, schema validity above its existing floor and p95 latency within its response budget. These are application gates, not claims about V4.1 Flash performance.

Rollback must name a destination that still serves the previous behavior, and it has to match the input type.

  • Text-only tasks: on EvoLink, deepseek-v4-flash and deepseek-v4-pro remain available, so a text cohort that fails on V4.1 Flash can return to them through configuration.
  • Tasks that depend on image evidence: V4 Flash and V4 Pro are text-only and cannot take these over. Fall back to another model that has passed the same visual evaluation, or stop and send the request to human review. An OCR-plus-text pipeline is a fallback only when you have confirmed that losing layout and pixel detail does not change the result. Never drop the image silently, or replace it with a placeholder, and count the response as a success.
  • Vision Exp: deepseek-v4-flash-vision-exp is not a rollback target, because it already redirects to V4.1 Flash.
On DeepSeek's direct API, none of the old names restores the old model after its transition date. Different models are also not proof of independent failures: check whether two routes share a provider, quota or network path before relying on one as the other's fallback. See the fallback design guide for the broader recovery pattern.

Compare cost per accepted result

Use the model pricing section and account usage rather than a copied rate table. DeepSeek's direct-API prices and EvoLink's account rates are separate schedules. A lower advertised token price can still produce a higher task cost if the model emits more reasoning, retries more often or needs more review.

For an evaluation cohort:

API cost per accepted task = total charged API cost / accepted task count

Include unsuccessful attempts and retries in total charged cost. If no task is accepted, the ratio is undefined; do not report zero cost per success. Track human review and tool-service costs separately, then include them if your decision concerns total operating cost.

A hypothetical comparison makes the distinction clear: 100 tasks costing 1.00 in total with 80 accepted results cost 0.0125 per accepted task. A second configuration costing 0.90 with only 60 accepted results costs 0.015 per accepted task. The lower cohort bill is more expensive per usable result. These are illustrative numbers, not EvoLink prices or test measurements.

For repeated agent prompts, place reusable context before changing content and measure reported cache hits. Cache availability is not guaranteed. Keep fresh input, cached input and output accounting consistent with the selected protocol; do not subtract the same cached tokens twice. DeepSeek caching guide

Diagnose failures without changing several variables at once

SymptomFirst checkUseful next step
Request rejected before generationActive key, endpoint and model IDUse a minimal documented request; distinguish authentication from model availability
Text succeeds but images failImage field and selected protocolTest one supported image before adding a batch or tools
First turn succeeds but agent stopsTool result IDs, history and client parserReproduce a two-step task with deterministic test tools
Output is cut offOutput limit and finish reasonAdjust a bounded limit; avoid an unlimited retry loop
Bill changes despite similar ratesReasoning, cache, output length and failed attemptsCompare final charged cost for the same accepted workload
"Rollback" produces the same behaviorWhether the ID redirects to the new modelFor text tasks, return to an ID that still serves the previous model, such as deepseek-v4-flash on EvoLink; for image tasks, use another verified vision model

Preserve a redacted request, response, time and request identifier for troubleshooting. Do not include API keys or customer-sensitive input in a public bug report. Exact error names and HTTP behavior should come from the response and current documentation, not a prediction based on the spelling of the model ID.

FAQ

Not for deepseek-v4-flash and deepseek-v4-pro: both continue to serve V4 Flash and V4 Pro. deepseek-v4-flash-vision-exp still works but now redirects to V4.1 Flash, so update it to deepseek-v4.1-flash when you are ready and re-run your image checks.
The EvoLink model ID is deepseek-v4.1-flash. The website path uses hyphens, and DeepSeek's direct API uses deepseek-flash. Keep endpoint, provider and identifier together; they are not interchangeable.
DeepSeek's September 10 announcement schedules the direct-API change for September 14, 2026 at 12:00 Beijing time (04:00 UTC). It does not affect deepseek-v4-pro on EvoLink, which continues to serve V4 Pro. If you call DeepSeek's API directly, recheck the announcement before the cutoff.

Can I compare the old and new models side by side?

On EvoLink, yes for V4 Flash and V4 Pro: send the same fixtures to deepseek-v4-flash or deepseek-v4-pro and to deepseek-v4.1-flash. Vision Exp is different because its ID already redirects to V4.1 Flash, so compare against outputs you saved earlier. The same applies to the old names on DeepSeek's direct API.

Does optional thinking mean thinking is disabled?

No. It means a non-thinking mode is available where supported. Check the setting your requests actually use, then log it with your evaluation results.

Will the migration reduce my bill?

That depends on the account rates, token mix, reasoning, cache reuse, retries and acceptance rate. Measure final charges for equivalent tasks. Do not treat direct-provider price cuts or listed rates as a guarantee about your invoice.

They keep running, but on DeepSeek V4.1 Flash. Re-run your visual evaluation set, including small text, tables, missing fields and ambiguous images, and update the model ID to deepseek-v4.1-flash so your configuration matches the model that serves the requests.

What counts as a useful fallback after the migration?

A route that still serves a model you have verified for the same task and the same input type. For text tasks on EvoLink, deepseek-v4-flash and deepseek-v4-pro still serve V4 Flash and V4 Pro. For image tasks, those two models are text-only, so use another verified vision model or a human-review path. An ID that redirects to V4.1 Flash, such as deepseek-v4-flash-vision-exp, is not a rollback to older behavior.

Sources and next step

Provider documentation was checked on September 10, 2026:

Start with the V4.1 Flash model page, then run the smallest representative evaluation that can reveal a failure in your application. The DeepSeek V4 Pro 0813 vs Flash 0731 comparison still describes the two V4 models that remain available on EvoLink.

Ready to Reduce Your AI Costs by 89%?

Start using EvoLink today and experience the power of intelligent API routing.