DeepSeek API Off-Peak Pricing: Beijing Time Hours and Monthly Cost
The DeepSeek API now bills at two rates, peak and off-peak, and the off-peak rate is half the peak rate. Per the official pricing page, peak hours are just two windows on weekdays, which in Beijing time (UTC+8) are 09:00-12:00 and 14:00-18:00. Everything else, including weekends and Chinese public holidays, is off-peak. To save money, move batch jobs, offline evals and data cleaning to evenings and weekends. Everything below is accurate as of October 2026; the official pricing page is the source of truth.
When did this rule start?
- On August 13, 2026, DeepSeek announced peak/off-peak pricing in its changelog. Off-peak is half the peak price, and the new prices took effect at 16:00 UTC on August 16.
- On September 10, 2026, DeepSeek released V4.1-Flash, exposed in the API as
deepseek-flash, at a lower price than the previous generation. It kept the peak/off-peak scheme, and the announcement suggests scheduling deferrable workloads in off-peak hours.
For details on the new model, see our other post: DeepSeek V4.1-Flash-1017 is live: deepseek-flash has new weights, do you need to change code?
What are the peak hours in Beijing time?
DeepSeek publishes the windows in UTC: Monday to Friday 01:00-04:00 and 06:00-10:00 are peak, and Chinese public holidays are not peak. Beijing time = UTC + 8:
| Period (Beijing time) | UTC | Rate |
|---|---|---|
| Weekdays 09:00-12:00 | 01:00-04:00 | Peak |
| Weekdays 12:00-14:00 | 04:00-06:00 | Off-peak |
| Weekdays 14:00-18:00 | 06:00-10:00 | Peak |
| Weekdays 18:00 to 09:00 next day | 10:00 to 01:00 next day | Off-peak |
| Saturday and Sunday | All day | Off-peak |
| Chinese public holidays | All day | Off-peak |
Note that the lunch break, 12:00-14:00, is also off-peak. China sometimes moves a weekend day to a working day to make up for a holiday; the official page does not say how those days are billed, so check DeepSeek's own notes.
What does a million tokens cost now?
Numbers from the official pricing page (USD per million tokens, off-peak / peak):
| Item | deepseek-flash | deepseek-v4-pro |
|---|---|---|
| Input, cache hit | $0.003 / $0.006 | $0.022 / $0.044 |
| Input, cache miss | $0.15 / $0.3 | $0.66 / $1.32 |
| Output | $0.6 / $1.2 | $1.98 / $3.96 |
One caveat: the official changelog and the September 10 announcement both mention routing changes for model names (old names are temporarily routed to V4.1-Flash, and the two places do not describe the routing of deepseek-v4-pro in exactly the same way). For actual routing and billing, rely on DeepSeek's announcements and pricing page on the day you read this.
Why is it worth optimizing for cache hits?
The table shows that a cache-hit input costs roughly one fiftieth of a cache-miss input (flash peak: $0.006 vs. $0.3). For long-context agents, or any workload that resends the same system prompt or documents, put the unchanging content at the very start of the request and the changing part after it, so the prefix is reused as much as possible. See the official docs for the exact cache-hit rules. The idea is similar to Claude's approach; see How to use Claude prompt caching to save money.
How do you estimate the monthly bill?
The formula is simple: cost = cache-hit input x hit price + cache-miss input x miss price + output x output price, in millions of tokens.
Here is a hypothetical monthly workload (an example only): 20M cache-hit input tokens, 100M cache-miss input tokens and 20M output tokens, priced at the official rates:
| Model | All at peak | All off-peak |
|---|---|---|
| deepseek-flash | $54.12 | $27.06 |
| deepseek-v4-pro | $212.08 | $106.04 |
Your real cost depends on your peak/off-peak mix. Moving half of the deferrable work to off-peak cuts the total by about a quarter; plug your own usage into the formula for exact numbers.
How do you schedule batch jobs into off-peak with cron?
Assuming the server timezone is Asia/Shanghai, start jobs after 18:30 on weekdays and finish before 09:00:
# Start the batch job at 19:00 on weekdays (off-peak)
0 19 * * 1-5 /opt/jobs/run_batch.sh
# Run evals at 02:00 on Saturday
0 2 * * 6 /opt/jobs/run_eval.sh
A few points:
- Make jobs resumable. If a run is still going at 09:00 the next day, the remainder is billed at the peak rate. Have the script check the time and pause when the window closes.
- Checking in UTC inside the script is less error-prone than using a local timezone, for example with
date -u +%u%H. - Chinese public holidays are off-peak all day, but cron knows nothing about holidays. Maintain your own calendar, or schedule big jobs by hand during long holidays.
- Do not push interactive requests (where a user is waiting for the answer) into the night just to save money. Only move work that can wait.
How do you find out when prices change?
DeepSeek says prices may be adjusted, so check the pricing page regularly. cdnping's Changes page monitors the changelogs and pricing pages of DeepSeek and others, records additions and removals line by line, and offers RSS. DeepSeek API status shows whether the endpoint is healthy, and Model watch shows availability and price-change records across inference providers. For a fuller approach, see How to find out right away when an LLM API price changes.
Another change that affects your bill is web search: DeepSeek opens a web Search & Fetch API covers how it is charged from November 1.
What if you would rather not schedule jobs yourself?
If you prefer to pay monthly in RMB and switch between several capability groups, AGI Plan is an option. Disclosure: AGI Plan is a commercial partner of cdnping. It is a gateway sold as a monthly subscription and metered in CUs; check agiplan.dev/models for the models and regions actually available. Its pricing is a separate system from the DeepSeek official API, so the off-peak table above does not apply to it.