IronStratum Get an API key

deepseek-v4.1-flash: DeepSeek V4.1 Flash, the September 10 model behind three API names

deepseek-v4.1-flash is this platform's serving alias for DeepSeek V4.1 Flash, the model DeepSeek released on September 10, 2026. It is the smallest model of a new architecture family. That family is a 552 billion parameter mixture-of-experts on a causal encoder-decoder design. It brings native vision and a 1 million token context window. The naming is why this page exists. On the publisher's own API, three names now reach this one model, and two of them retired the day it shipped. Search results for its name mix in pages about the older V4 Flash generation. That is a different model that still exists as open weights. This page fixes that map first. Then it gives the spec sheet with every number owned by its source, then the request shape that works here. The model id works on this platform today. Requests that name it are served, confirmed by a live request on September 24, 2026. The row is listed in the public models index and on the pricing page as of September 25, 2026, and the posture is stated plainly below.

Last verified: 2026-09-25

What it is

DeepSeek V4.1 Flash shipped September 10, 2026, with the new prices effective 04:00 UTC that day. Per the official release note, it is the smallest model in a new architecture family. It was built, in the note's words, for a higher capability ceiling. The note also names faster inference, higher throughput, and scaling to larger models. The architecture is the real break from the V4 generation. The official model card states it in numbers:

FactValueOwner of the number
Backbone552B mixture-of-experts; 8B active per input token, 16B per generated tokenofficial model card
Architecturecausal encoder-decoder, 40 layers (20 encoder, 20 decoder); 384 routed experts plus 1 shared, 6 active per tokenofficial model card
Memory and decodingEngram conditional memory, 196B; DSpark speculative decoding: semi-autoregressive draft generation with confidence-scheduled verificationofficial model card
Visionnative image-text-to-text; vision encoder and projector fused from the start of pre-trainingofficial model card and release note
Context1M tokens, trained with sparse attention at 64K and extended mid-pre-training; the publisher's row lists 384K max outputofficial model card; publisher pricing row
Reasoninga reasoning model; effort control documented on a 1 to 100 scale on the weightsofficial model card
LicenseMIT, weights and technical report publicofficial model card
First-party aliasdeepseek-flashpublisher pricing page

In plain terms, an encoder reads your input and a decoder writes the answer. Only a small slice of the network fires on any token. That is how a 552B model answers at flash-tier speed and cost. The speculative decoding module works like a fast drafter with a careful verifier. It guesses the next stretch of text and the network checks it. That pushes generation speed up without waiting on the full network for every token. The vision path is not a bolted-on adapter. The card describes images as fused with text from the beginning of pre-training. The card also claims the attention design holds the memory cost of long contexts to about a quarter of the previous flash generation's. That is what makes the 1M window practical rather than theoretical. The weights are public under MIT with a technical report. Like the July snapshot, the release ships no Jinja chat template. A reference encoding script and a toolkit handle the model's input format, and serving stacks configured for the family apply it for you.

Three names, one model: the naming trap

On the publisher's first-party API, three names now reach this model:

Name on the publisher's APIWhat it hits today
deepseek-flashthe current alias; the pricing page's model-version row maps it to DeepSeek-V4.1-Flash, 1M context
deepseek-v4-flashretired September 10; still accepted, temporarily routed to V4.1-Flash, served and billed at the Flash price
deepseek-v4-flash-vision-expretired September 10; the same temporary routing

The footnote on the publisher's pricing page is the load-bearing sentence. Requests to the retired names are served by the V4.1-Flash model and billed at the Flash price. The change log adds the qualifier most pages drop. The routing is temporary, and no end date is published. If your integration holds a retired name, you are calling V4.1-Flash now, whatever your notes say.

And the fourth name, the one that is not this model: DeepSeek-V4-Flash-0731, the July 31 open-weights snapshot. It is a 284B sparse mixture-of-experts text model. It did not stop existing on September 10. The retirement changed first-party routing, not the weights. On this platform it serves under its own pinned alias. Its page carries that side of the family in full. The two models share a family name and a price tier and little else.

DateEvent in the V4 era
2026-04-24the V4 generation launches as previews, the 0423 checkpoints
2026-07-31V4 Flash official release: the 0731 open-weights snapshot
2026-08-13V4 Pro general availability, the 0813 line
2026-08-21V4 Flash Vision Exp, an experimental vision model
2026-09-10V4.1-Flash releases; V4 Flash and the vision experiment retire from the hosted API; legacy names route to V4.1-Flash; flash-tier prices are reduced

Search the model's name with pricing intent and the result page shows the trap live. Rate aggregators and guide pages hold most of the seats, and the publisher's own docs hold two. At least two ranking rows are about the older model. One is a marketplace listing for the previous-generation checkpoint. The other is an aggregator page titled on V4.1 Flash whose address names the older model. A buyer can read about the wrong model and never notice. The defense is the same everywhere. Pin the exact id your door serves. When a family has shipped more than one generation, pin the generation too.

What changed on September 10

Three changes landed together, all recorded in the change log the same day. First, the release itself, effective 04:00 UTC. Second, the retirement of the two V4 Flash names from the hosted API. The temporary compatibility routing is described above. Third, a price event: in the change log's words, with the release of V4.1-Flash, API prices have been reduced accordingly. The flash tier bills on a peak and off-peak split, with off-peak at half of peak. Peak windows run 01:00 to 04:00 and 06:00 to 10:00 UTC on weekdays. Weekends and Chinese public holidays are off-peak entirely. This page quotes the structure and not the amounts. Rates belong to the publisher's dated page and to each host's own card.

One contradiction on the publisher's own pages deserves dating rather than resolving. The release note says V4 Pro is being phased out. From 04:00 UTC on September 14, all deepseek-v4-pro requests would route to V4.1-Flash at V4.1-Flash rates until a V4.1 Pro launches. The change log, published the same day, commits to continuing V4 Pro's API service with its billing method unchanged. A live read of the publisher's pricing page on September 24 still listed and billed the pro name. The flash retirement happened. The pro reroute, as of that read, had not. This page states both facts and asserts nothing about the future in either direction.

Use cases

The architecture and the publisher's release-day table point at the same jobs:

  • Agentic and terminal work. The publisher's table puts the model at 90.6 on Terminal-Bench 2.1, 30.0 on Terminal-Bench 3.0, 31.2 on Terminal-Bench 4.0, and 74.2 on DeepSWE v1.1. The route here accepts and forwards the standard OpenAI tool shapes, tools and tool_choice, which is the plumbing agent loops run on.
  • Hard reasoning, math, and code. 90.9 on GPQA Diamond, a 3471 Codeforces rating, 65.6 on MathArena Apex, and 36.8 on HLE rising to 63.9 with tools, all publisher-run. The with-tools rows are the ones that match how you would actually deploy it.
  • Security review work. The publisher ran it at 88.1 on CyberGym, 62.8 on SEC-Bench Pro, and 15.3 on ExploitGym; the last number is stated plainly because a low row on an exploit benchmark is itself information.
  • Reading documents and images. Native image input plus the card's multimodal rows, 95.6 on DocVQA and 56.5 on MMMU-Pro, make page and chart reading a first-class job rather than a workaround through a separate vision model.
  • Long-context loads. A 1M window holds whole repositories, transcripts, or document sets in one request, and the publisher and this platform's own model data agree on the window, so there is no cap-surprise story to tell here.
  • What it is not. It is not the 0731 snapshot (that lane serves those weights by pinned id), it is not an image generator, and it is not a casual self-host.

Open weights or a hosted lane: the honest split

MIT makes self-hosting a real option, and for some readers the right one.

Run the weights locally when traffic is steady. It also wins when the data must stay inside a boundary you control, or when you need to fine-tune. Know the lift going in. The release is roughly 763B parameters of files including the conditional-memory module. There is no Jinja chat template, so the encoding reference and toolkit are required reading before any raw serving. And the publisher's own note says inference support and deployment options for the new architecture are still being worked out with the open-source community. Early local runs on this architecture should be treated as pioneering, not routine.

Call a hosted lane when traffic is bursty, you want the window without cap surprises, or you want metering wrapped around the model. That means per-call cost stamped on every response, a prepaid wallet as the backstop, and per-key revocation. On this platform the model id serves today, and the row is listed in the public catalog.

API usage

The route is POST /v1/chat/completions, Bearer-keyed from the console, OpenAI-compatible in shape, base URL https://api.ironstratum.com/v1. The model id is deepseek-v4.1-flash. The full parameter surface sits in the API reference; the fields that matter day to day:

FieldNotes
modeldeepseek-v4.1-flash
messagesstandard OpenAI message shapes
streamstreaming and non-streaming both work on the route
max_tokens / max_completion_tokensboth accepted, identical behavior
tools, tool_choicestandard OpenAI tool shapes, forwarded as sent
reasoning_effortaccepted at this parameter: minimal, low, medium, high

Three laws of this lane save debugging time:

  1. Pin the id, not the family name. The retired names belong to the publisher's compatibility routing, not to this platform. The bare name deepseek-v4-flash is not an alias here at all: this platform's V4-era flash lanes are the suffixed 0731 snapshot and this row, and each id names its model. An id that names its model is the whole defense against the naming trap, on every door.
  2. The listing, stated exactly. The model appears in the public models index, on the pricing page, and in the /v1/models listing, as of September 25, 2026. Before that date the id still served by direct request: a September 24, 2026 request returned 200 with a full usage payload, cached-token fields included, and the metering ran. The listing posture of this page and the catalog now agree.
  3. Metering and the wallet. Usage meters per token against a prepaid wallet: input, output, and cached input at its own lower leg. Every response carries a usage object with the retail cost of that call. The balance is the spend stop: a request arriving after the balance is gone is refused with a named error and bills nothing. Keys are revocable singly, and per-key spend caps are roadmap, not shipping. The model's rates render on the pricing page.

curl

curl -X POST "https://api.ironstratum.com/v1/chat/completions" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4.1-flash",
    "messages": [
      {"role": "user", "content": "Two clocks start at noon. One gains 40 seconds per hour, the other loses 25. When do they next agree? Show the check."}
    ],
    "max_tokens": 2048
  }'

python

import os
import requests

resp = requests.post(
    "https://api.ironstratum.com/v1/chat/completions",
    headers={"Authorization": "Bearer " + os.environ["KEY"]},
    json={
        "model": "deepseek-v4.1-flash",
        "messages": [
            {"role": "user", "content": "Read this error chain and name the root cause: retry storm, then queue overflow, then 503s."},
        ],
        "max_tokens": 4096,
    },
    timeout=300,
)
resp.raise_for_status()

message = resp.json()["choices"][0]["message"]
# When reasoning content comes back it lands in its own field, separate
# from the answer, and meters as output tokens.
print("reasoning:", (message.get("reasoning_content") or "")[:400])
print("answer:", message["content"])
print("usage:", resp.json()["usage"])

openai-sdk

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://api.ironstratum.com/v1",
    api_key=os.environ["KEY"],
)

response = client.chat.completions.create(
    model="deepseek-v4.1-flash",
    messages=[
        {"role": "user", "content": "Draft the migration note for renaming a retired model alias in a client library."},
    ],
    reasoning_effort="low",
    max_tokens=4096,
)

print(response.choices[0].message.content)

An integration already on the OpenAI SDK moves with two lines: the base URL and the model id. The publisher's own API is OpenAI-compatible too, so first-party integrations transfer the same way. One difference is worth repeating: the first-party alias is deepseek-flash, while this platform's alias names the model itself.

Benchmarks

Every number in this section is the publisher's own, from the September 10 release-day table. The runs used the instruct model's max reasoning effort per the card's label. The parenthetical HLE number is the text-only subset, as the publisher footnotes it. The table appears in two official places, the change log and the model card. At our September 24 read the two agree on every cell except one. NL2Repo-Bench prints 65.4 in the change log and 64.0 on the card, and this page prints the change log's value. None of it is this platform's measurement.

BenchmarkV4.1-Flash
GPQA Diamond90.9
HLE (full set; text-only subset)36.8 (39.1)
HLE with tools63.9
Codeforces, rating3471
MathArena Apex65.6
Terminal-Bench 2.190.6
Terminal-Bench 3.030.0
Terminal-Bench 4.031.2
DeepSWE v1.174.2
ProgramBench20.3
NL2Repo-Bench65.4
CyberGym88.1
SEC-Bench Pro62.8
ExploitGym15.3
Automation-Bench54.8
Agents' Last Exam31.8
Chartography, with tools78.9
BabyVision, with tools89.6
ZeroBench-main, with tools49.0

The release note's own summary is that results sit ahead of flagship models, including the V4 Pro tier. It adds that early third-party tests reportedly put the model ahead of that tier. The claimed edges are performance, cost, speed, and total runtime. Both sentences are the publisher grading its own release, quoted as such.

For the cross-generation question, three benchmark names are shared cleanly between the September 10 table and the July 31 card's table. The two tables were published six weeks apart:

Shared benchmarkV4.1-Flash, Sept 10V4 Flash 0731, July 31
Terminal-Bench 2.190.682.7
CyberGym88.176.7
Agents' Last Exam31.825.2

Read that with its caveat in the same breath. These are two publisher tables, six weeks apart, under different methodology notes. Some same-named rows differ in version or variant between them, DeepSWE v1.1 against DeepSWE for one. The direction is consistent on every shared row. The deltas are not a controlled experiment. If a workload matters, run it on your own tasks, on this platform or any other.

Getting started

  1. Open an account. The signup page runs the invite flow while the platform is in beta; an account can call every served model the day it appears.
  2. Issue an API key. One key per project, each an independent off switch: revoke a compromised key and the rest keep serving.
  3. Understand the meter before the first token. Per-token legs with cached input at its own leg, a usage cost on every response, and the wallet balance as the spend stop. Its rates are on the pricing page, rendered from the same model data the meter reads.
  4. Make the first call. Lift the curl tab, put your key in KEY, and hold the request small so the reply lands fast. Once one call returns with its usage object, scaling is a longer messages array.

The chat catalog lays out the platform's chat lanes. The models index carries the catalog's current state, with this row in it.

What the platform serves

Chat and reasoning models — context window, price per million tokens in and out and cached, capabilities
ModelContext$/1M in$/1M out$/1M cached inCapabilities
deepseek-v4.1-flash1,000,0000.190.710.06streaming

The same data GET /v1/models serves. A dash means the value isn't set.

Questions

What is DeepSeek V4.1 Flash?
The model DeepSeek released on September 10, 2026. The official release note describes it as the smallest model in a new architecture family. It is a 552 billion parameter mixture-of-experts on a causal encoder-decoder design. It carries 8 billion parameters active per input token and 16 billion per generated token. It adds native image understanding and a 1 million token context window. The weights are open under MIT on Hugging Face with a technical report. It is a reasoning model, the successor to the Flash tier's name on the publisher's first-party API. As of the September 10 changes, it is the model that three API names there now reach.
Is DeepSeek V4.1 Flash the same model as V4 Flash?
No, and the difference is architectural, not a version bump. V4 Flash, the April preview and the July 31 GA snapshot, is a 284B sparse mixture-of-experts. It has about 13B active per token and no image input. V4.1 Flash is a 552B causal encoder-decoder. It has native vision and a different active-parameter split. On September 10, 2026 the publisher retired V4 Flash and the V4 Flash Vision experiment from its hosted API. Their names still parse there but are temporarily routed to V4.1 Flash and billed at the Flash price. The 0731 snapshot itself did not stop existing. It remains a separate open-weights model, and on this platform it serves under its own pinned alias with its own page.
What does the deepseek-flash model name mean?
It is the current first-party alias. The publisher's pricing page carries a model-version row that maps deepseek-flash to DeepSeek-V4.1-Flash. The row lists 1M context and 384K max output. That makes three names reaching one model on that API: deepseek-flash today, plus the two retired names, deepseek-v4-flash and deepseek-v4-flash-vision-exp. Per the pricing page's footnote, both retired names are served by the V4.1-Flash model. They are billed at the Flash price. The change log's own word for the legacy routing is temporarily, and no end date is published. An integration holding a retired name should treat the routing as a compatibility bridge, not a contract.
Does DeepSeek V4.1 Flash accept images?
On the publisher's own API, yes. The model is image-text-to-text, with a vision encoder and projector fused from the start of pre-training. The release note says the API exposes it with native multimodal support. The publisher's card carries multimodal rows. They include 95.6 on DocVQA and 56.5 on MMMU-Pro. On this platform's lane, a September 24 check exercised the text path and returned a full usage payload. Image parts were not part of that check. Test them against the lane before building a vision pipeline on it.
Is V4.1 Flash a reasoning model, and how do you control the thinking?
It is a reasoning model. The platform's own model data marks it as one. The publisher attributes its gains partly to larger-scale reinforcement-learning post-training. On the raw weights, the official card documents reasoning effort as a 1 to 100 scale. On this platform's chat route, the accepted control is the top-level reasoning_effort parameter. The values are minimal, low, medium, and high. How those four values map to the model's internal depth is not a documented promise. Treat the parameter as the request-side knob and read the response. When reasoning content comes back it arrives in its own field, separate from the answer, and it meters as output.
Is DeepSeek V4.1 Flash open source, and can you run it locally?
The weights are public under the MIT license, with a technical report, on Hugging Face. Downloading, running, and building on them commercially is permitted. Running them locally is a heavy lift rather than a weekend project. The release ships roughly 763B parameters of files including the conditional-memory module. There is no Jinja chat template. The card ships a reference encoding script and a toolkit instead. The publisher's own note says it plans to work with the open-source community on inference support and deployment options for the new architecture. Local wins when traffic is steady and the data must stay inside your boundary. A hosted lane wins for bursty traffic and per-call metering.
How do you call it on this platform, and what does it cost?
One request shape: POST /v1/chat/completions with a Bearer key, OpenAI-compatible, and the model id deepseek-v4.1-flash. The code tabs on this page are the whole contract. The model id works today. Requests that name it are served and metered, confirmed by a live request on September 24, 2026. The row is listed in the models index and on the pricing page as of September 25, 2026. Metering is per token against a prepaid wallet, with input, cached-input, and output legs. Every response carries its own usage cost, and the wallet balance is what stops spending.