// how to

How to Cut Your DeepSeek API Costs: Off-Peak Hours and Caching

Run flexible jobs outside DeepSeek’s peak hours, when every rate is half price. Start every request with the same instructions so repeated text is billed at the much lower cache-hit rate. Use deepseek-flash rather than deepseek-v4-pro unless you need it, and turn thinking off or lower the effort for simple tasks.

By Published Last updated 2 min read

The short version

Two levers matter most on the DeepSeek API: when you run, and how your prompts start. Off-peak halves the bill. A fixed opening turns repeated input into cache hits that cost a small fraction of normal input.

The prices that matter (deepseek-flash, per million tokens)

Off-peak Peak
Input, cache hit $0.003 $0.006
Input, cache miss $0.15 $0.30
Output $0.60 $1.20

From DeepSeek’s pricing page on October 29, 2026. deepseek-v4-pro costs more at every line.

Step by step

1. Move batch jobs off-peak

Peak hours are 01:00 to 04:00 and 06:00 to 10:00 UTC on weekdays (excluding Chinese public holidays). Schedule summaries, classification and reports for other hours, or weekends.

2. Put the fixed part first

DeepSeek’s cache matches the start of a request. Put your instructions, examples and reference text at the beginning, identical every time, and the changing part (the review, the email, the question) at the end.

3. Keep conversations growing, not changing

In a multi-turn chat, sending the earlier messages unchanged plus a new one lets the earlier part hit the cache. Editing earlier messages can break the match.

4. Pick the right model and effort

Use deepseek-flash by default. Thinking mode is on by default with “high” effort; for simple tasks, disable it with "thinking": {"type": "disabled"}, or set reasoning_effort to low.

5. Limit output

Output costs more than input. Ask for short formats (“one line”, “JSON with these three fields”) and set max_tokens.

6. Watch usage

Check the platform’s Usage page by key and time range, and export it to see which jobs cost most.

Prompts to copy

A cache-friendly system message (keep it identical across requests):

text
You classify customer messages for [business].
Categories: billing, delivery, product question, complaint, other.
Reply with JSON only: {"category": "...", "urgent": true/false, "summary": "under 15 words"}

Then send only the customer message as the user content each time.

Example

Job: classify 2,000 support emails a day, about 300 tokens each, with a 500-token instruction block.

Cheaper setup: the instruction block is identical, so after the first requests it’s billed at the cache-hit rate. The job runs at 14:00 UTC, off-peak. Thinking is off and the answer is a short JSON object, which keeps output tokens low.

Mistakes to avoid

  • Putting a timestamp or user ID at the start of every prompt. It changes the opening and kills cache hits. Put variable parts last.
  • Leaving thinking on for simple tasks. It adds reasoning you don’t need.
  • Asking for long explanations you won’t read.
  • Assuming prices are fixed. DeepSeek says it may adjust prices; check the pricing page before big jobs.

Good to know

The Search and Fetch APIs are billed separately at $0.75 per 1,000 successful requests each. Fees come out of your topped-up balance, with any granted balance used first.

Related: use the DeepSeek API and use DeepSeek in Claude Code and other tools.

Frequently asked questions

When are DeepSeek's off-peak hours?

DeepSeek's pricing page says peak hours are 01:00 to 04:00 and 06:00 to 10:00 UTC, Monday to Friday, excluding Chinese public holidays. Every other hour is off-peak, including weekends and Chinese public holidays, and off-peak rates are half the peak rates.

What is a cache hit?

DeepSeek caches requests on disk automatically. If a new request starts with exactly the same text as an earlier one, that overlapping part is a cache hit and billed at the cache-hit price. No code change is needed.

How many tokens is my text?

DeepSeek's docs estimate about 0.3 tokens per English character, so 1,000 characters is roughly 300 tokens. The exact count comes back with each API response.

Sources

  1. DeepSeek API Docs: models and pricing
  2. DeepSeek API Docs: context caching
  3. DeepSeek API Docs: token and token usage
  4. DeepSeek API Docs: thinking mode