diff --git a/AGENTS.md b/AGENTS.md
index 9dc6bac..48fd8e1 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -66,7 +66,7 @@ Key flags:
| Flag | Effect |
| --- | --- |
-| `-m, --model` | `deepseek-v4-flash` (default) or `deepseek-v4-pro` |
+| `-m, --model` | `deepseek-flash` (default) or `deepseek-v4-pro` |
| `--think on\|off` | thinking mode; default is the API's own, which is on |
| `-e, --effort low\|high\|max` | reasoning effort |
| `--max-tokens N` | cap generated tokens |
@@ -106,7 +106,10 @@ deepseek pricing --json # the schedule and the billing period right now
```
Pricing has been time-of-day since 2026-08-16 16:00 UTC: peak hours
-01:00–04:00 and 06:00–10:00 UTC bill at twice the off-peak rate. Never
+01:00–04:00 and 06:00–10:00 UTC, Monday to Friday, bill at twice the
+off-peak rate. Since 2026-09-10 flash is `deepseek-flash` (V4.1) on a
+lower card; the retired names `deepseek-v4-flash` and
+`deepseek-v4-flash-vision-exp` still work and bill as flash. Never
quote a DeepSeek price without saying which period it is — `pricing`
computes the current one locally, no network, nothing spent, from the
same schedule the cost estimates use.
@@ -163,8 +166,7 @@ deepseek free off # forget the enrolment on this machine
Free-tier limits, per UTC day: 30 requests, 60K input tokens, 20K output
tokens, 3 web searches, 4K output per call, 128KB per request body,
-`deepseek-v4-flash` only. A request for pro is **refused, not
-downgraded**. `models` and `status` cost no quota; everything that can
+flash only. A request for pro is **refused, not downgraded**. `models` and `status` cost no quota; everything that can
generate a token does.
`respond --web-search` works on the free tier and spends one of the three
@@ -265,21 +267,24 @@ Every call prints a usage line to stderr and appends to
for a quiet run.
- Costs are estimates from the published USD rate card, not billed
amounts. Token counts are exact.
-- Cached input tokens cost about 30× less than uncached ones. Put the
- stable part of a prompt first — the same system prompt and files across
+- Cached input tokens cost 50× less than uncached ones on flash, 30× on
+ pro. Put the stable part of a prompt first — the same system prompt and files across
calls — and `deepseek usage` will show the saving. Prompt structure is
still the biggest lever on a bill; the hour of the day comes second,
and it is worth at most 2×.
## Cautions
-- **Text only.** Images, documents and search-result blocks are rejected
- by the API in every format.
+- **Text only, from this CLI.** Since 2026-09-10 `deepseek-flash` takes
+ images through chat and Responses, and pro does not; the CLI has no
+ flag that sends one.
- **The thinking surcharge depends on effort**, and not as documented.
The template added to your input is fixed per level, constant across
- prompt length, measured live on 2026-08-05:
+ prompt length, measured live on 2026-08-05 on V4 Flash (retired
+ 2026-09-10; `deepseek-flash` is not re-measured, and one probe read +26
+ at `high`):
- | `--effort` | flash | pro |
+ | `--effort` | V4 flash | pro |
| --- | --- | --- |
| `none` | +0, thinking off | +0, thinking off |
| `minimal`, `low` | +0 | +0 |
diff --git a/Makefile b/Makefile
index 98a7e9d..93434a4 100644
--- a/Makefile
+++ b/Makefile
@@ -87,7 +87,8 @@ gateway-check: gateway-test
# cost estimates, gateway/internal/meter/meter.go for the gateway's
# budget — because they are separate modules and neither can import the
# other. Drift would mean the gateway believed it had spent a different
-# amount than it had. This is what catches that.
+# amount than it had. This is what catches that, for the numbers and for
+# the dated instants that switch between them.
.PHONY: price-check
price-check:
@pattern='CacheHitInput: [0-9.]+, CacheMissInput: [0-9.]+, Output: [0-9.]+'; \
@@ -100,7 +101,15 @@ price-check:
echo "FAIL: the CLI and gateway rate cards have drifted"; \
echo " cli: $$cli"; echo " gateway: $$gw"; exit 1; \
fi; \
- echo "rate cards match:"; echo "$$cli" | sed 's/^/ /'
+ echo "rate cards match:"; echo "$$cli" | sed 's/^/ /'; \
+ when='time\.Date\([^)]*\)'; \
+ cli=$$(grep -oE "$$when" internal/deepseek/pricing.go | sort); \
+ gw=$$(grep -oE "$$when" gateway/internal/meter/meter.go | sort); \
+ if [ "$$cli" != "$$gw" ]; then \
+ echo "FAIL: the CLI and gateway switch cards at different instants"; \
+ echo " cli: $$cli"; echo " gateway: $$gw"; exit 1; \
+ fi; \
+ echo "and switch at the same instants:"; echo "$$cli" | sed 's/^/ /'
# The site is generated HTML plus one page that is an application. The
# generator has its own --check; these cover the parts it cannot see —
diff --git a/README.md b/README.md
index d11bbc3..140319c 100644
--- a/README.md
+++ b/README.md
@@ -14,7 +14,7 @@
-
+
| Per 1M tokens | v4-flash | v4-pro | GPT-5.6 Sol | pro is cheaper by |
|---|---|---|---|---|
| Per 1M tokens | flash | v4-pro | GPT-5.6 Sol | pro is cheaper by |
| input, cache miss | $0.22 / $0.44 | $0.66 / $1.32 | $5.00 | 7.6x / 3.8x |
| input, cache hit | $0.007 / $0.014 | $0.022 / $0.044 | $0.50 | 23x / 11x |
| output | $0.66 / $1.32 | $1.98 / $3.96 | $30.00 | 15x / 7.6x |
| input, cache miss | $0.15 / $0.30 | $0.66 / $1.32 | $5.00 | 7.6x / 3.8x |
| input, cache hit | $0.003 / $0.006 | $0.022 / $0.044 | $0.50 | 23x / 11x |
| output | $0.60 / $1.20 | $1.98 / $3.96 | $30.00 | 15x / 7.6x |
DeepSeek cells read off-peak / peak, on the -card in force since 2026-08-16 16:00 UTC; they are a conversion of the RMB +
DeepSeek cells read off-peak / peak: pro on the
+card in force since 2026-08-16 16:00 UTC, flash (deepseek-flash,
+V4.1) on the lower card of 2026-09-10. They are a conversion of the RMB
card (pro: ¥4.5 / ¥0.15 / ¥13.5 per 1M off-peak, double at peak)
at one consistent rate. GPT-5.6 Sol prices are from OpenAI's own listing.
The pricing page has the full schedule.
https://api.deepseek.com
-ok GET /models 141ms deepseek-v4-flash, deepseek-v4-pro
+ok GET /models 141ms deepseek-flash, deepseek-v4-pro
ok GET /user/balance 126ms 18.48 CNY
ok POST /chat/completions 651ms 5 in / 1 out
ok POST /anthropic/v1/messages 590ms 5 in / 1 out
@@ -744,9 +744,10 @@ def jstr(s):
Costs are estimates. Computed from DeepSeek's published
USD rate card, not from your invoice. Token counts are exact, and they are what
gets stored, so old calls can be repriced when the card changes.
-Text only. DeepSeek rejects image, document and
-search-result content blocks in every format – that is the API, not a
-gap here.
+Text only. The CLI sends text. Since 2026-09-10
+deepseek-flash also takes images through chat completions and
+Responses, and deepseek-v4-pro does not; the CLI has no flag
+that sends one.
""",
))
@@ -874,7 +875,7 @@ def jstr(s):
Flag Effect
--m, --modeldeepseek-v4-flash (default) or deepseek-v4-pro
+-m, --modeldeepseek-flash (default) or deepseek-v4-pro
-s, --systemSystem prompt, inline or @file
--think on|offThinking mode. Default is the API's own, which is on
-e, --effortlow, high or max
@@ -1101,14 +1102,14 @@ def jstr(s):
("Does DeepSeek's Anthropic endpoint count tokens the same way?",
"No. On /anthropic/v1/messages the usage.input_tokens field excludes cache reads, so the full prompt is input_tokens plus cache_read_input_tokens. The OpenAI chat and Responses formats use the opposite convention, where the input count already includes cached tokens. Treating them the same misprices every cached call."),
("What happens if I send a Claude model name to DeepSeek?",
- "It is remapped server-side. Model names starting with claude-opus map to deepseek-v4-pro; claude-sonnet and claude-haiku map to deepseek-v4-flash; anything unrecognised also falls back to deepseek-v4-flash."),
+ "It is remapped server-side. Model names starting with claude-opus map to deepseek-v4-pro; claude-sonnet and claude-haiku map to deepseek-flash; anything unrecognised also falls back to deepseek-flash."),
("Can DeepSeek accept images?",
- "No. DeepSeek is text only. Image, document and search-result content blocks are rejected or replaced with placeholder text in every format."),
+ "deepseek-flash does, since the V4.1 Flash release of 2026-09-10: JPEG, PNG, GIF and WebP, through the chat completions and Responses formats. deepseek-v4-pro does not. The deepseek CLI sends text only."),
]),
body="""
Four wire formats
DeepSeek exposes the same two models –
-deepseek-v4-flash and deepseek-v4-pro – through
+deepseek-flash and deepseek-v4-pro – through
four different request shapes, so that existing ecosystems can point at it
without code changes. They are not interchangeable.
@@ -1184,8 +1185,8 @@ def jstr(s):
You send You get
claude-opus-*deepseek-v4-pro
-claude-sonnet-*, claude-haiku-*deepseek-v4-flash
-anything unrecognised deepseek-v4-flash
+claude-sonnet-*, claude-haiku-*deepseek-flash
+anything unrecognised deepseek-flash
deepseek-flash takes images through chat completions and
+Responses; deepseek-v4-pro is text only.--effort: +79 input tokens on flash at the default,
-+92 at max, and nothing at all at
-low – where the model still reasons.
+depends on --effort: on V4 flash it was +79 input tokens at the
+default, +92 at max, and nothing at all at
+low – where the model still reasons. V4.1 Flash has not
+been re-measured.
The measured table.: keep-alive comments for up to ten minutes before inference
@@ -1229,13 +1232,13 @@ def jstr(s):
slug="cost/",
crumb="cost",
title="What DeepSeek actually costs: cache math and a local usage ledger",
- description="DeepSeek's context cache makes a cached input token 50x cheaper than an uncached one. How the deepseek CLI prices every call, what the local usage ledger records, and the caveats on every figure it prints.",
- keywords="deepseek pricing, deepseek api cost, deepseek context cache, deepseek cache hit tokens, deepseek token cost calculator, deepseek v4 flash price, deepseek usage tracking",
+ description="DeepSeek's context cache makes a cached input token 50x cheaper than an uncached one on flash and 30x on pro. How the deepseek CLI prices every call, what the local usage ledger records, and the caveats on every figure it prints.",
+ keywords="deepseek pricing, deepseek api cost, deepseek context cache, deepseek cache hit tokens, deepseek token cost calculator, deepseek flash price, deepseek v4.1 flash price, deepseek usage tracking",
jsonld=tech_article("What DeepSeek actually costs", "Pricing, context-cache savings, and the deepseek CLI usage ledger.", "cost/"),
body="""
DeepSeek's headline feature is a disk-backed context cache that -makes a repeated prompt prefix roughly thirty times cheaper. Since +makes a repeated prompt prefix thirty to fifty times cheaper. Since 2026-08-16 a second lever sits on top of it: the hour of the day, worth 2×. Neither is visible unless something is counting – so this counts.
@@ -1249,22 +1252,23 @@ def jstr(s):| Model | Period | Input (cached) | Input (miss) | Output |
|---|---|---|---|---|
deepseek-v4-flash | off-peak | $0.007 | $0.22 | $0.66 |
| peak | $0.014 | $0.44 | $1.32 | |
deepseek-v4-flash-vision-exp | off-peak | $0.007 | $0.22 | $0.66 |
| peak | $0.014 | $0.44 | $1.32 | |
deepseek-flash | off-peak | $0.003 | $0.15 | $0.60 |
| peak | $0.006 | $0.30 | $1.20 | |
deepseek-v4-pro | off-peak | $0.022 | $0.66 | $1.98 |
| peak | $0.044 | $1.32 | $3.96 |
ds models prints the card in force next to the live model
+
The retired names deepseek-v4-flash and
+deepseek-v4-flash-vision-exp still work: V4.1 Flash serves them,
+at the deepseek-flash price. ds models prints the card in force next to the live model
list, so the price is on screen when you pick, and ds pricing
prints the full schedule with the period you are in right now.
On flash, a cache hit costs 1/31st of a miss per token. -The same 2,900-token prompt, sent twice:
+On flash, a cache hit costs 1/50th of a miss per token; +on pro, 1/30th. The same 2,900-token prompt, sent twice, on the V4 flash +card of the day, where the ratio was 1/31st:
$ ds chat "..." --system @prefix.txt
@@ -1279,7 +1283,8 @@ def jstr(s):
same prefix again. It is 15× and not 31× because the 3% that
changed – the tail of the prompt, and the question itself –
still bills at the miss rate: the realised saving is always the rate ratio
-times how much of the prompt you kept identical. Hence the practical rule:
+times how much of the prompt you kept identical. On today's flash card the
+same call drops about 20×. Hence the practical rule:
put the stable part of a prompt first – same system
prompt, same files, in the same order – and let the variable part come
last.
@@ -1305,7 +1310,7 @@ def jstr(s):
---effortflash pro thinking
+--effortV4 flash pro thinking
none+0 +0 off entirely
minimal, low+0 +0 on
@@ -1314,6 +1319,11 @@ def jstr(s):
+The flash column is V4 Flash, which was retired on 2026-09-10.
+deepseek-flash, and the retired names that now route to it,
+have not been re-measured: a single probe on 2026-09-18 read +26 at
+high, not +79. Treat the column as history until the table
+is re-run.
Two of those levels are in no DeepSeek documentation at all.
none is documented only for the Responses API, but the chat
@@ -1392,19 +1402,21 @@ def jstr(s):
slug="pricing/",
crumb="pricing",
title="DeepSeek API pricing: the schedule, the peak hours, and the period right now",
- description="DeepSeek has billed peak/off-peak since 16:00 UTC on 2026-08-16: peak hours 01:00-04:00 and 06:00-10:00 UTC, Monday to Friday, at twice the off-peak rate, with weekends off-peak all day since 2026-08-22. The full schedule, the numbers per model in both periods, the flat card it replaced, and a strip that reads your clock and names the billing period you are in right now.",
- keywords="deepseek pricing, deepseek api pricing, deepseek price increase 2026, deepseek repricing, deepseek peak hours, deepseek off-peak pricing, deepseek peak off-peak billing, deepseek api cost, deepseek v4 flash price, deepseek v4 pro price, deepseek pricing 2026-08-16, deepseek new rate card, deepseek token price, deepseek weekend off-peak, deepseek peak weekdays only, deepseek v4 flash vision exp price",
+ description="DeepSeek has billed peak/off-peak since 16:00 UTC on 2026-08-16: peak hours 01:00-04:00 and 06:00-10:00 UTC, Monday to Friday, at twice the off-peak rate, with weekends off-peak all day since 2026-08-22. Since the V4.1 Flash release of 2026-09-10, deepseek-flash costs $0.003 / $0.15 / $0.60 per 1M off-peak. The full schedule, the numbers per model in both periods, the cards they replaced, and a strip that reads your clock and names the billing period you are in right now.",
+ keywords="deepseek pricing, deepseek api pricing, deepseek price increase 2026, deepseek repricing, deepseek peak hours, deepseek off-peak pricing, deepseek peak off-peak billing, deepseek api cost, deepseek v4 flash price, deepseek v4 pro price, deepseek pricing 2026-08-16, deepseek new rate card, deepseek token price, deepseek weekend off-peak, deepseek peak weekdays only, deepseek v4 flash vision exp price, deepseek flash price, deepseek v4.1 flash price, deepseek price cut 2026-09-10",
jsonld=faq([
("What does the DeepSeek API cost right now?",
- "It depends on the hour and the day. Per 1M tokens (cache hit / cache miss / output): deepseek-v4-flash is $0.007 / $0.22 / $0.66 off-peak and $0.014 / $0.44 / $1.32 peak; deepseek-v4-pro is $0.022 / $0.66 / $1.98 off-peak and $0.044 / $1.32 / $3.96 peak. Peak hours are 01:00-04:00 and 06:00-10:00 UTC, Monday to Friday; every other hour, and the whole weekend, is off-peak at half the peak rate. deepseek-v4-flash-vision-exp bills at exactly the deepseek-v4-flash rates."),
+ "It depends on the hour and the day. Per 1M tokens (cache hit / cache miss / output): deepseek-flash is $0.003 / $0.15 / $0.60 off-peak and $0.006 / $0.30 / $1.20 peak; deepseek-v4-pro is $0.022 / $0.66 / $1.98 off-peak and $0.044 / $1.32 / $3.96 peak. Peak hours are 01:00-04:00 and 06:00-10:00 UTC, Monday to Friday; every other hour, and the whole weekend, is off-peak at half the peak rate. The retired names deepseek-v4-flash and deepseek-v4-flash-vision-exp are served by V4.1 Flash and bill at the deepseek-flash rates."),
("What are DeepSeek's peak hours?",
"01:00-04:00 and 06:00-10:00 UTC, Monday to Friday. The boundaries are defined in UTC; in Beijing time (UTC+8) they read 09:00-12:00 and 14:00-18:00. Every other hour is off-peak, at half the peak rate. Since 16:00 UTC on 2026-08-22 weekends bill off-peak all day, on the Beijing calendar, so the weekend starts at 16:00 UTC on Friday and peak is 35 hours a week rather than 49."),
("When did DeepSeek's peak/off-peak pricing start?",
"At 16:00 UTC on August 16, 2026, which is midnight in Beijing. Before that instant every hour billed at the flat card published 2026-08-02; from it, DeepSeek bills peak/off-peak on a new, higher card."),
("How much did DeepSeek raise its API prices?",
"Against the flat card it replaced, deepseek-v4-pro peak is 3x on cache-miss input ($0.435 to $1.32 per 1M), 4.6x on output ($0.87 to $3.96) and 12x on cache-hit input ($0.003625 to $0.044). Off-peak is half of each of those, so the smallest increase at any hour is still 1.5x on cache-miss input. The rise is steepest where the old card was cheapest."),
+ ("Did DeepSeek cut prices with V4.1 Flash?",
+ "Yes, on Flash only. From the V4.1 Flash release of 2026-09-10, deepseek-flash costs $0.003 / $0.15 / $0.60 per 1M tokens off-peak (cache hit / cache miss / output), down from $0.007 / $0.22 / $0.66 for deepseek-v4-flash: 57% less on cached input, 32% on uncached input, 9% on output. Peak is still double. deepseek-v4-pro did not change. DeepSeek published the date but no time; the deepseek CLI switches cards at 11:00 UTC that day, an inferred instant."),
("Is DeepSeek's off-peak price the same as the old price?",
- "No. Off-peak is half of peak, but on a new, higher base card: a flash cache-miss input token went from $0.14 to $0.22 per 1M off-peak and $0.44 peak. Even the cheapest hour now costs more than any hour did before the switch."),
+ "No. Off-peak is half of peak, but on a higher base than the flat card of 2026-08-02. Even after the V4.1 Flash cut, a flash cache-miss input token costs $0.15 per 1M off-peak against the flat card's $0.14, and output $0.60 against $0.28: the cheapest hour still costs more than any hour did before the switch."),
("How do I check the current DeepSeek billing period from the terminal?",
"Run `deepseek pricing`. It prints the period in effect (flat, off-peak or peak) with your local, UTC and Beijing time, when the period next changes, and both rate cards, all computed locally from the same schedule the CLI's cost estimates use. `deepseek pricing --json` emits the same as JSON."),
]),
@@ -1412,8 +1424,8 @@ def jstr(s):
Pricing
Since 16:00 UTC on 2026-08-16, what a DeepSeek token costs
depends on the hour you spend it in – and, since 2026-08-22, on the
-day of the week too. This page carries the schedule, both
-rate cards, and a strip that reads your clock – the same data the
+day of the week too. Since 2026-09-10 Flash costs less at every hour. This
+page carries the schedule, every card, and a strip that reads your clock – the same data the
CLI's estimates switch on, so the page and ds pricing can
never disagree.
@@ -1453,33 +1465,53 @@ def jstr(s):
hold it for Saturday instead.
The card
-USD per 1M tokens, in force since 2026-08-16 16:00 UTC. Off-peak is half
-of peak by construction, but on a higher base than the flat card it
-replaced – even the cheapest hour now costs more than any hour did
-before. A flash cache-miss input token went from $0.14 to $0.22 per 1M
-off-peak, and to $0.44 in peak hours:
+USD per 1M tokens, in force since the V4.1 Flash release of 2026-09-10.
+Off-peak is half of peak by construction. Flash got cheaper on every item
+– 57% on cached input, 32% on uncached input, 9% on output –
+and pro did not change:
Model Period Input (cached) Input (miss) Output
-deepseek-v4-flashoff-peak $0.007 $0.22 $0.66
-peak $0.014 $0.44 $1.32
+deepseek-flashoff-peak $0.003 $0.15 $0.60
+peak $0.006 $0.30 $1.20
deepseek-v4-prooff-peak $0.022 $0.66 $1.98
peak $0.044 $1.32 $3.96
+The retired names deepseek-v4-flash and
+deepseek-v4-flash-vision-exp still work: V4.1 Flash serves them,
+at the deepseek-flash price.
+DeepSeek dated the cut and published no time, so the instant the
+CLI switches cards is inferred: 11:00 UTC on 2026-09-10. Our docs
+mirror fetched the old card at 04:50 UTC that day and the new one at 11:27
+UTC; 11:00 is the last whole hour between the two, so an estimate for a call
+made in that gap can overstate what it cost and never understate it.
The context cache stays the biggest
-lever: a cached input token costs about 1/30th of a miss, against 1/50th
-(flash) and 1/120th (pro) on the card this replaced. Prompt structure
-still dominates a bill – it is worth up to 30×, where the hour
-of the day is worth 2×.
+lever: a cached input token costs 1/50th of a miss on flash and 1/30th on
+pro. Prompt structure still dominates a bill – it is worth up to
+50×, where the hour of the day is worth 2×.
What it replaced
-The flat card published 2026-08-02, billed at every hour until the
-switch. It is here because the ledger
-keeps token counts rather than dollars, so a call made before 2026-08-16
-16:00 UTC still reprices under the card it was actually billed at:
+Two superseded cards. They are here because the
+ledger keeps token counts rather than
+dollars, so every call reprices under the card it was actually billed
+at.
+From 2026-08-16 16:00 UTC to the V4.1 cut, flash was
+deepseek-v4-flash on a card more than twice as dear on cached input; pro's
+rows were the same as today's:
+
+
+Model Period Input (cached) Input (miss) Output
+
+deepseek-v4-flashoff-peak $0.007 $0.22 $0.66
+peak $0.014 $0.44 $1.32
+
+
+
+Before that, the flat card published 2026-08-02 billed at every hour
+until 2026-08-16 16:00 UTC:
Model Input (cached) Input (miss) Output
@@ -1490,8 +1522,9 @@ def jstr(s):
Peak output on pro is 4.6× that card; peak cached input is
-12× it. The published increase is steepest exactly where the old card
-was cheapest.
+12× it. The published increase was steepest exactly where the old
+card was cheapest, and the V4.1 cut has not brought flash back under it
+at any hour.
The same answer in the terminal
ds pricing # period right now, local + UTC + Beijing, both cards
@@ -1499,7 +1532,7 @@ def jstr(s):
Computed locally from the same schedule – no network call, nothing
spent. The cost estimates price each call with
the card in force at the moment it was made, which is what lets one ledger
-span both eras. The ledger stores exact
+span every era. The ledger stores exact
token counts rather than dollar amounts, so historical calls can always be
repriced under whatever card was, or becomes, real.
@@ -1513,7 +1546,8 @@ def jstr(s):
They are also checked against the bill. A 188,542-token cache-miss call
to pro, made off-peak on 2026-08-17, settled at 0.84 CNY
– 4.46 CNY per 1M against the published off-peak 4.5, where the old
-flat card would have made it 3.0. The page and the billing system agree.
+flat card would have made it 3.0. The page and the billing system agree.
+The V4.1 Flash card has not been checked against a bill yet.
""",
@@ -1637,16 +1671,17 @@ def jstr(s):
no reason to be chosen. The lever is price, and the gap is not small:
-Per 1M tokens v4-flash v4-pro GPT-5.6 Sol pro is cheaper by
+Per 1M tokens flash v4-pro GPT-5.6 Sol pro is cheaper by
-input, cache miss $0.22 / $0.44 $0.66 / $1.32 $5.00 7.6x / 3.8x
-input, cache hit $0.007 / $0.014 $0.022 / $0.044 $0.50 23x / 11x
-output $0.66 / $1.32 $1.98 / $3.96 $30.00 15x / 7.6x
+input, cache miss $0.15 / $0.30 $0.66 / $1.32 $5.00 7.6x / 3.8x
+input, cache hit $0.003 / $0.006 $0.022 / $0.044 $0.50 23x / 11x
+output $0.60 / $1.20 $1.98 / $3.96 $30.00 15x / 7.6x
-DeepSeek cells read off-peak / peak, on the
-card in force since 2026-08-16 16:00 UTC; they are a conversion of the RMB
+
DeepSeek cells read off-peak / peak: pro on the
+card in force since 2026-08-16 16:00 UTC, flash (deepseek-flash,
+V4.1) on the lower card of 2026-09-10. They are a conversion of the RMB
card (pro: ¥4.5 / ¥0.15 / ¥13.5 per 1M off-peak, double at peak)
at one consistent rate. GPT-5.6 Sol prices are from OpenAI's own listing.
The pricing page has the full schedule.
@@ -1713,10 +1748,12 @@ def jstr(s):
PAGES.append(dict(
slug="news/",
crumb="news",
- title="DeepSeek API news: the repricing is live, dsh ships, V4-Pro GA",
- description="What is changing around the DeepSeek API: peak/off-peak billing went live at 2026-08-16 16:00 UTC and is confirmed against a real bill, DeepSeek ships dsh (DeepSeek Harness), its official open-source agent harness, V4-Pro's official release (DeepSeek-V4-Pro-0813), V4-Flash's official release, and what each one means for a call.",
- keywords="deepseek harness, dsh, @deepseek-ai/dsh, install dsh, dsh plugins, dsh skills, dsh-plugin, dsh vs claude code, deepseek cli vs dsh, deepseek v4 pro release, deepseek v4 pro ga, deepseek-v4-pro-0813, deepseek api price increase, deepseek price rise 2026, deepseek peak hour pricing, deepseek peak off-peak billing, deepseek repricing 2026-08-16, deepseek new prices live, deepseek api news, deepseek api changelog, deepseek v4 flash release, deepseek pricing change",
+ title="DeepSeek API news: V4.1 Flash cuts the Flash price, the repricing is live, dsh ships",
+ description="What is changing around the DeepSeek API: DeepSeek-V4.1-Flash shipped 2026-09-10 as deepseek-flash, on a lower Flash card, with the V4 Flash names retired; peak/off-peak billing went live at 2026-08-16 16:00 UTC and is confirmed against a real bill, DeepSeek ships dsh (DeepSeek Harness), its official open-source agent harness, V4-Pro's official release (DeepSeek-V4-Pro-0813), V4-Flash's official release, and what each one means for a call.",
+ keywords="deepseek v4.1 flash, deepseek-flash, deepseek v4.1 flash price, deepseek price cut, deepseek-v4-flash retired, deepseek harness, dsh, @deepseek-ai/dsh, install dsh, dsh plugins, dsh skills, dsh-plugin, dsh vs claude code, deepseek cli vs dsh, deepseek v4 pro release, deepseek v4 pro ga, deepseek-v4-pro-0813, deepseek api price increase, deepseek price rise 2026, deepseek peak hour pricing, deepseek peak off-peak billing, deepseek repricing 2026-08-16, deepseek new prices live, deepseek api news, deepseek api changelog, deepseek v4 flash release, deepseek pricing change",
jsonld=faq([
+ ("What is DeepSeek-V4.1-Flash?",
+ "DeepSeek's Flash model since 2026-09-10, with native image input, called as deepseek-flash. It retired V4 Flash and V4 Flash Vision Exp; their names, deepseek-v4-flash and deepseek-v4-flash-vision-exp, are still accepted, are served by V4.1 Flash and bill at the Flash price. The Flash card fell to $0.003 / $0.15 / $0.60 per 1M tokens off-peak (cache hit / cache miss / output), from $0.007 / $0.22 / $0.66. deepseek-v4-pro continues with its card unchanged."),
("Is DeepSeek V4-Pro officially released?",
"Yes. On 2026-08-12 the model version on DeepSeek's Models & Pricing page changed to DeepSeek-V4-Pro-0813, ending the preview that had run since 2026-04-24. The model ID is unchanged (deepseek-v4-pro), the rate card is unchanged, and the release focuses on agentic post-training rather than new pretraining."),
("What is dsh (DeepSeek Harness)?",
@@ -1726,7 +1763,7 @@ def jstr(s):
("Did DeepSeek raise its API prices?",
"Yes. The increase took effect at 16:00 UTC on 2026-08-16 and is live: DeepSeek now bills peak/off-peak, with peak hours 01:00-04:00 and 06:00-10:00 UTC, Monday to Friday, at twice the off-peak rate; every other hour, and the whole weekend since 2026-08-22, is off-peak. The flat card is gone from the official pricing page. Against it, deepseek-v4-pro peak is 3x on cache-miss input, 4.6x on output and 12x on cache-hit input; off-peak is half of each. This resolved both the undated broad price rise announced on 2026-08-06 and the undated peak-hour policy announced in June 2026."),
("What are DeepSeek's current API prices?",
- "Per 1M tokens (cache hit / cache miss / output), on the card in force since 16:00 UTC on 2026-08-16: deepseek-v4-flash is $0.007 / $0.22 / $0.66 off-peak and $0.014 / $0.44 / $1.32 peak; deepseek-v4-pro is $0.022 / $0.66 / $1.98 off-peak and $0.044 / $1.32 / $3.96 peak. In RMB, pro is 0.15 / 4.5 / 13.5 yuan off-peak and 0.3 / 9 / 27 yuan peak. Peak hours are 01:00-04:00 and 06:00-10:00 UTC, Monday to Friday; every other hour, and the whole weekend, is off-peak."),
+ "Per 1M tokens (cache hit / cache miss / output), deepseek-flash is $0.003 / $0.15 / $0.60 off-peak and $0.006 / $0.30 / $1.20 peak, on the card in force since the V4.1 Flash release of 2026-09-10; deepseek-v4-pro, unchanged since 16:00 UTC on 2026-08-16, is $0.022 / $0.66 / $1.98 off-peak and $0.044 / $1.32 / $3.96 peak. In RMB, flash is 0.02 / 1 / 4 yuan off-peak and 0.04 / 2 / 8 yuan peak, and pro is 0.15 / 4.5 / 13.5 yuan off-peak and 0.3 / 9 / 27 yuan peak. Peak hours are 01:00-04:00 and 06:00-10:00 UTC, Monday to Friday; every other hour, and the whole weekend, is off-peak."),
("Which hours are cheapest on the DeepSeek API?",
"Every hour outside 01:00-04:00 and 06:00-10:00 UTC, Monday to Friday, which bill at half the peak rate — and since 2026-08-22 the whole weekend, on the Beijing calendar, so the cheap window opens at 16:00 UTC on Friday. Those peak windows are 09:00-12:00 and 14:00-18:00 Beijing time, the Chinese working day, so the whole European and American working day is off-peak. Batch and agent work that can be scheduled should run off-peak; the saving is exactly 2x."),
("Where can I follow DeepSeek API changes?",
@@ -1739,6 +1776,38 @@ def jstr(s):
live API where that is possible; the in-terminal feed is
ds docs changelog.
+2026-09-10 · V4.1 Flash, on a cheaper cardprice cut
+DeepSeek-V4.1-Flash is on the API as deepseek-flash, with
+native image input. V4 Flash and V4 Flash Vision Exp are retired; their names,
+deepseek-v4-flash and deepseek-v4-flash-vision-exp,
+still work, are served by V4.1 Flash, and bill at the Flash price.
+GET /models now lists exactly two ids: deepseek-flash
+and deepseek-v4-pro.
+The Flash card came down on every item. Off-peak, per 1M tokens, with peak
+still exactly double:
+
+
+Per 1M tokens, off-peak V4 flash, until 2026-09-10 deepseek-flash, from 2026-09-10 change
+
+input, cache hit $0.007 (¥0.05) $0.003 (¥0.02) −57%
+input, cache miss $0.22 (¥1.5) $0.15 (¥1) −32%
+output $0.66 (¥4.5) $0.60 (¥4) −9%
+
+
+
+The cut is deepest on the cheapest token, the mirror image of August: a
+cache hit on flash is back to 1/50th of a miss, where the flat card had it.
+Pro's card did not move, and DeepSeek says it will "continue providing API
+services for DeepSeek V4 Pro after September 14, 2026, with the billing method
+remaining unchanged." The peak windows and the weekend rule are unchanged
+too.
+The changelog dates the release and not the price change. ds
+pricing and the cost estimates switch cards at 11:00 UTC on
+2026-09-10, an inferred instant: our docs mirror fetched the old card
+at 04:50 UTC that day and the new one at 11:27 UTC, and a call estimated in
+that gap can only be overstated. The
+pricing page has both cards.
+
2026-08-22 · weekends are off-peak, all daynot in the changelog
From 16:00 UTC on 2026-08-22 – 00:00 Beijing on
Sunday 23 August – a Saturday or Sunday bills at the off-peak card for
@@ -1782,8 +1851,8 @@ def jstr(s):
ability, in their framing, close to Opus-4.8. Those are the vendor's numbers,
not ours; we have not run them.
Because it shipped after the 2026-08-16 switchover it has no flat
-card, so there is nothing to reprice for it before that date. It is in
-ds pricing from v0.5.1 on.
+card, so there is nothing to reprice for it before that date. It was retired
+on 2026-09-10; the name still works and bills as deepseek-flash.
2026-08-16 · the repricing is liveconfirmed against a bill
It landed on schedule. At 16:00 UTC on 2026-08-16 –
@@ -2316,7 +2385,7 @@ def jstr(s):
person draining it for everyone, enrolling asks your browser to solve a small
proof-of-work puzzle. That puzzle is the whole signup.
- - model deepseek-v4-flash
+ - model deepseek-flash (V4.1 Flash)
- per day 30 requests · 60k input · 20k output tokens
- privacy prompts are relayed to DeepSeek and are not stored or
logged by the gateway; only token counts and cost are recorded
diff --git a/site/commands/index.html b/site/commands/index.html
index f374744..73c18a8 100644
--- a/site/commands/index.html
+++ b/site/commands/index.html
@@ -105,7 +105,7 @@ chat
Flag Effect
--m, --modeldeepseek-v4-flash (default) or deepseek-v4-pro
+-m, --modeldeepseek-flash (default) or deepseek-v4-pro
-s, --systemSystem prompt, inline or @file
--think on|offThinking mode. Default is the API's own, which is on
-e, --effortlow, high or max
diff --git a/site/cost/index.html b/site/cost/index.html
index 33b996c..a518f38 100644
--- a/site/cost/index.html
+++ b/site/cost/index.html
@@ -4,8 +4,8 @@
What DeepSeek actually costs: cache math and a local usage ledger
-
-
+
+
@@ -13,7 +13,7 @@
-
+
@@ -21,7 +21,7 @@
-
+
@@ -87,7 +87,7 @@
Cost
DeepSeek's headline feature is a disk-backed context cache that
-makes a repeated prompt prefix roughly thirty times cheaper. Since
+makes a repeated prompt prefix thirty to fifty times cheaper. Since
2026-08-16 a second lever sits on top of it: the hour of the day, worth 2×.
Neither is visible unless something is counting – so this counts.
@@ -101,22 +101,23 @@ The rate card
Model Period Input (cached) Input (miss) Output
-deepseek-v4-flashoff-peak $0.007 $0.22 $0.66
-peak $0.014 $0.44 $1.32
-deepseek-v4-flash-vision-expoff-peak $0.007 $0.22 $0.66
-peak $0.014 $0.44 $1.32
+deepseek-flashoff-peak $0.003 $0.15 $0.60
+peak $0.006 $0.30 $1.20
deepseek-v4-prooff-peak $0.022 $0.66 $1.98
peak $0.044 $1.32 $3.96
-ds models prints the card in force next to the live model
+
The retired names deepseek-v4-flash and
+deepseek-v4-flash-vision-exp still work: V4.1 Flash serves them,
+at the deepseek-flash price. ds models prints the card in force next to the live model
list, so the price is on screen when you pick, and ds pricing
prints the full schedule with the period you are in right now.
What the cache is worth
-On flash, a cache hit costs 1/31st of a miss per token.
-The same 2,900-token prompt, sent twice:
+On flash, a cache hit costs 1/50th of a miss per token;
+on pro, 1/30th. The same 2,900-token prompt, sent twice, on the V4 flash
+card of the day, where the ratio was 1/31st:
$ ds chat "..." --system @prefix.txt
@@ -131,7 +132,8 @@ What the cache is worth
same prefix again. It is 15× and not 31× because the 3% that
changed – the tail of the prompt, and the question itself –
still bills at the miss rate: the realised saving is always the rate ratio
-times how much of the prompt you kept identical. Hence the practical rule:
+times how much of the prompt you kept identical. On today's flash card the
+same call drops about 20×. Hence the practical rule:
put the stable part of a prompt first – same system
prompt, same files, in the same order – and let the variable part come
last.
@@ -157,7 +159,7 @@ The thinking surcharge
---effortflash pro thinking
+--effortV4 flash pro thinking
none+0 +0 off entirely
minimal, low+0 +0 on
@@ -166,6 +168,11 @@ The thinking surcharge
+The flash column is V4 Flash, which was retired on 2026-09-10.
+deepseek-flash, and the retired names that now route to it,
+have not been re-measured: a single probe on 2026-09-18 read +26 at
+high, not +79. Treat the column as history until the table
+is re-run.
Two of those levels are in no DeepSeek documentation at all.
none is documented only for the Responses API, but the chat
diff --git a/site/formats/index.html b/site/formats/index.html
index 38f3b06..95e6731 100644
--- a/site/formats/index.html
+++ b/site/formats/index.html
@@ -30,7 +30,7 @@