Skip to content

DeepSeek peak-hour pricing

With the full release of the V4 series DeepSeek both updated its prices and moved to time-of-day pricing. During peak hours every token item costs twice the standard rate. LLMTR passes this through unchanged; no margin is added to model prices.

The new prices take effect at 2026-08-16 16:00 UTC.

  • Before that instant: the current card below applies and there is no peak multiplier — every hour of the day bills the same.
  • From that instant: the new card applies and the peak multiplier is in force.

The cutover happens on its own; which card a request bills against is decided by the moment the request reaches LLMTR.

The windows are fixed in UTC:

WindowUTCBeijing (UTC+8)
First01:00 - 04:0009:00 - 12:00
Second06:00 - 10:0014:00 - 18:00

Windows are half-open: 04:00 UTC already bills at the standard rate, while 03:59 UTC is still peak. Neither UTC nor Beijing observes daylight saving, so these boundaries hold year round.

Per 1M tokens, USD.

ModelItemStandardPeak
deepseek/deepseek-v4-flashInput (cache miss)0.220.44
deepseek/deepseek-v4-flashCache read0.0070.014
deepseek/deepseek-v4-flashOutput0.661.32
deepseek/deepseek-v4-proInput (cache miss)0.661.32
deepseek/deepseek-v4-proCache read0.0220.044
deepseek/deepseek-v4-proOutput1.983.96

The multiplier is uniform across every item: cache reads double during peak too.

Current card (before 2026-08-16 16:00 UTC)

Section titled “Current card (before 2026-08-16 16:00 UTC)”

This card has no peak split — the same rate applies at every hour.

ModelInput (cache miss)Cache readOutput
deepseek/deepseek-v4-flash0.140.00280.28
deepseek/deepseek-v4-pro0.4350.0036250.87

The deepseek/deepseek-chat and deepseek/deepseek-reasoner identifiers are routed to V4-Flash by DeepSeek and bill exactly like V4-Flash, peak multiplier included.

The rate is chosen from the moment the request reaches LLMTR. A single instant is used per request, so the reservation and the final charge always agree. A call that starts at 09:59:59 UTC and finishes at 10:00:20 UTC is billed entirely at the peak rate rather than split across both.

You can determine whether you are currently in a peak window from the UTC clock:

from datetime import datetime, timezone
PEAK_WINDOWS = [(60, 240), (360, 600)] # UTC minutes of day
def is_peak(moment: datetime) -> bool:
utc = moment.astimezone(timezone.utc)
minute_of_day = utc.hour * 60 + utc.minute
return any(start <= minute_of_day < end for start, end in PEAK_WINDOWS)
print(is_peak(datetime.now(timezone.utc)))
const PEAK_WINDOWS = [
[60, 240],
[360, 600]
];
function isPeak(date = new Date()) {
const minuteOfDay = date.getUTCHours() * 60 + date.getUTCMinutes();
return PEAK_WINDOWS.some(([start, end]) => minuteOfDay >= start && minuteOfDay < end);
}

Both examples read UTC. Using local time gives the wrong answer depending on where your server runs.

  • Move batch and schedule-tolerant work outside the peak windows. 17 hours of each day bill at the standard rate.
  • Use prompt caching. The cache-read rate is far below the input rate and stays cheaper than standard input even during peak.
  • Prefer deepseek-v4-flash for latency-tolerant work.

Every row on the Usage page stores the unit price applied to that request. Historical records are never re-priced; whatever a request was charged is what its record keeps.