DeepSeek Search API Pricing: $0.75/1K and Real Cost per Search
DeepSeek Search and Fetch: $0.75 per 1,000 successful requests, empty results free. Claude Code and Codex searches are billed from Oct 31, 2026, 16:00 UTC.
On this page

DeepSeek's Search API costs $0.75 per 1,000 successful requests, and its Fetch API costs the same $0.75 per 1,000 on a separate meter, as of October 30, 2026, according to DeepSeek's Search & Fetch guide. You pay per request, not per token or per result: a search that returns 50 results costs the same $0.00075 as one that returns a single result, and empty results, failed requests and timeouts cost nothing. Calls you send straight to the API have no free allowance.
The dated change is for agent tools. When Claude Code, Codex or DeepSeek Harness runs on a DeepSeek API key, its web searches go through the same Search and Fetch APIs, and those calls have been free since the launch on October 17, 2026. Billing for them starts on October 31, 2026, at 16:00 UTC, which is noon EDT and 9:00 a.m. PDT. Inside Claude Code the search fee is the smaller part of the bill, because the model also has to read the results: one search works out to roughly $0.002 on deepseek-flash and $0.006–$0.011 on deepseek-v4-pro under the token assumptions shown below.
If you don't want the charge, add "WebSearch" to the deny list in Claude Code's settings.json, and keep web_search = "disabled" in ~/.codex/config.toml, which is what DeepSeek's Codex setup script writes. If you do want search in Claude Code, make sure it isn't sending claude-opus model names, since DeepSeek maps those to the more expensive deepseek-v4-pro.
Is DeepSeek search free? What counts as one billed request
DeepSeek search isn't free for direct API calls, but only requests that return something are billed. Under the billing rule in DeepSeek's guide, a request is billable only when it returns HTTP 200 and produces a result: a non-empty results array for Search, page content for Fetch. Everything else costs nothing, so you can predict the bill from your own success logs.
| What happens | HTTP status | Billed? |
|---|---|---|
Search returns results, with any count from 1 to 50 | 200 | Yes |
Search finds no match and returns an empty results array | 200 | No |
| Fetch returns the page as Markdown | 200 | Yes |
| Fetch can't get usable content (dead URL, blocked by the site, no extractable text) | 404 | No |
| Fetch is rejected by DeepSeek's security policy | 403 | No |
Request is malformed, or count is outside 1–50 | 400 | No |
| Key is missing or invalid, or the balance is empty | 401 / 402 | No |
| Rate limit exceeded | 429 | No |
| Request body or downstream site times out | 408 / 504 | No |

Search and Fetch are counted separately, so one search followed by three page fetches is four billed requests, or $0.003. DeepSeek's launch announcement words the price as "$0.75 per 1,000 calls," but the guide and the DeepSeek pricing page that define billing say "per 1,000 successful requests," which is the rule your bill follows. The Chinese pricing page lists 5 yuan per 1,000, which is a separate CNY list price rather than a conversion of $0.75.
Claude Code and Codex search billing starts October 31, 16:00 UTC
Server-side search and fetch calls made by DeepSeek Harness, Claude Code and Codex on a DeepSeek API key become billable at 00:00 Beijing time on November 1, 2026, which is October 31, 2026, at 16:00 UTC. DeepSeek fixed that date in the pricing page and the launch announcement. From then on, each successful search or fetch those tools run is billed exactly like a direct call, and there is nothing to opt into: billing simply starts.
| Where you are | Billing starts (local time) |
|---|---|
| UTC | Saturday, October 31, 2026, 4:00 p.m. |
| Los Angeles (PDT) | Saturday, October 31, 2026, 9:00 a.m. |
| New York (EDT) | Saturday, October 31, 2026, 12:00 p.m. |
| Madrid (CET) | Saturday, October 31, 2026, 5:00 p.m. |
| Moscow (MSK) | Saturday, October 31, 2026, 7:00 p.m. |
| Beijing (CST) | Sunday, November 1, 2026, 12:00 a.m. |
| Tokyo and Seoul | Sunday, November 1, 2026, 1:00 a.m. |
US clocks fall back on November 1, after the switch, so the US times above are still daylight time; Spain had already moved to winter time on October 25. The local times were converted with the IANA time-zone database. Requests you send yourself to /v1/tools/search or /v1/tools/fetch were never part of the free window, so a direct integration sees no change on that date.
What one web search really costs inside Claude Code on DeepSeek
One Claude Code web search on DeepSeek costs about $0.002 on deepseek-flash at off-peak rates and about $0.011 on deepseek-v4-pro at peak rates, once the tokens the model spends reading the results are added to the $0.00075 search fee. DeepSeek's Claude Code integration guide says both charges apply: summarizing the retrieved content takes extra model requests billed as tokens, and the search requests themselves are billed at Search API pricing.
DeepSeek publishes no token count per search, so the table below, recalculated on October 30, 2026 from DeepSeek's list prices, assumes each search puts 6,000 tokens of results into context as cache misses and the model writes 500 tokens about them. For scale, Anthropic's Claude API pricing page puts an average 10 kB web page at about 2,500 tokens. The formula is 6,000 × the cache-miss input price + 500 × the output price + $0.00075, so you can swap in your own token counts.
| Model Claude Code runs | Hours | Tokens to read results | Search fee | Total per search | Per 100 searches |
|---|---|---|---|---|---|
deepseek-flash | Off-peak | $0.00120 | $0.00075 | $0.00195 | $0.195 |
deepseek-flash | Peak | $0.00240 | $0.00075 | $0.00315 | $0.315 |
deepseek-v4-pro | Off-peak | $0.00495 | $0.00075 | $0.00570 | $0.570 |
deepseek-v4-pro | Peak | $0.00990 | $0.00075 | $0.01065 | $1.065 |

On deepseek-flash the search fee is 38% of the total off-peak and 24% at peak; on deepseek-v4-pro it falls to 13% and 7%, so the model and the hour move your bill more than the fee does. Which model runs depends on the name Claude Code sends: DeepSeek maps names starting with claude-opus to deepseek-v4-pro, billed at the V4 Pro price, and claude-sonnet or claude-haiku names to deepseek-flash. The setup in DeepSeek's guide sets ANTHROPIC_MODEL and ANTHROPIC_DEFAULT_OPUS_MODEL to deepseek-flash[1m], so a configuration that follows it searches at Flash rates. Peak rates apply from 01:00–04:00 and 06:00–10:00 UTC on weekdays, as explained in DeepSeek API Peak Hours: Current Prices and When to Wait, and the environment variables themselves are covered in Claude Code with OpenRouter and DeepSeek: Setup, Routes, and First-Error Fixes.
The bigger unknown is how many billed searches one WebSearch call turns into. On Anthropic's own backend, the Claude Code tools reference says the tool may issue up to eight backend searches per call and returns only titles and URLs; reading a page is a separate WebFetch call with its own model call. DeepSeek doesn't say how many Search requests one call triggers on its side, or whether Claude Code's WebFetch goes through its Fetch API. One Reddit user, quoted in eesel.ai's DeepSeek Search API write-up, saw a single research subagent make 85 searches against $0.07 of model work; at the new price those searches come to about $0.06. Treat the table as a per-search price and count the actual searches in your DeepSeek usage records once billing starts.
If Claude Code runs through laozhang.ai rather than DeepSeek's own endpoint, this billing doesn't reach you, because DeepSeek's Search and Fetch exist only on api.deepseek.com and Claude Code's WebSearch isn't available through laozhang.ai; its own web search is a separate feature for GPT and Grok models at $0.01 per search and Gemini at $0.014 per search, plus result tokens.
Disclosure: laozhang.ai is our own service. Its prices are platform pricing, not an independent comparison.
Does DeepSeek web search work with deepseek-flash?
It depends on the client. In Claude Code, yes: DeepSeek says its Anthropic-format API natively supports Claude Code's WebSearch, and the setup in its guide runs everything on deepseek-flash. In Codex and the Responses API, no: DeepSeek's Codex guide says built-in web search is available only with deepseek-v4-pro, and the Responses API reference lists the web_search tool as supported on deepseek-v4-pro and ignored on deepseek-flash.
To turn it on in Codex, switch the model and the search setting in ~/.codex/config.toml, then restart Codex. Each search is billed at Search API pricing on top of V4 Pro tokens.
model = "deepseek-v4-pro"
web_search = "live"Instructions that pair deepseek-v4-flash with web_search predate the current setup. That name is now a legacy alias served by DeepSeek-V4.1-Flash-1017 at the Flash price, and the Responses API ignores the search tool on it, so the model answers without searching.
Monthly bill for an app: billed requests × $0.00075
For direct API use, the monthly bill is the number of searches and fetches that return something, multiplied by $0.00075, plus whatever your own model spends reading the results. Because count doesn't change the price, the cheapest way to get more results is one request with a higher count. The request schema has no pagination or offset field, so you can't page through results: sending the same query again returns the same top results and is billed again.
| App shape (recalculated October 30, 2026) | Searches a month | Fetches a month | Search and Fetch bill |
|---|---|---|---|
| Chat feature: 1 search per question, 10,000 questions | 10,000 | 0 | $7.50 |
| RAG: 1 search and 3 fetches per question, 10,000 questions | 10,000 | 30,000 | $30.00 |
| Research agent: 6 searches and 4 fetches per task, 2,000 tasks | 12,000 | 8,000 | $15.00 |
| Monitoring: 500 queries checked every hour for 30 days | 360,000 | 0 | $270.00 |
These are upper bounds, since empty searches and failed fetches drop out of the count. Your model's share is usually the larger number, and the response format lets you control it: each result carries a snippet of 100–200 characters for display and a summary of 600–800 characters meant for a model, while full page content is only returned when you set need_content to true. Feeding the model summaries instead of full pages keeps the token side of the bill down.
Is DeepSeek cheaper than Brave, Tavily, Exa, OpenAI, Anthropic or Gemini search?
On list price, yes, by a wide margin. At 30,000 searches a month (1,000 a day), DeepSeek's Search API comes to $22.50, Exa, the next cheapest raw search API, comes to $110 after its monthly credit, and the built-in search tools of OpenAI, Anthropic and Gemini cost $300–$350 before result tokens. The figures below use pay-as-you-go list prices as of October 30, 2026.
| Provider | Price per 1,000 searches | Free allowance a month | 30,000 searches | Not included |
|---|---|---|---|---|
| DeepSeek Search API | $0.75 | None | $22.50 | Your model's tokens to read results |
| Exa search (base, up to 10 results) | $4.00 | $10 credit | $110.00 | Page text at $1 per 1,000 pages |
| Brave Search API | $5.00 | $5 credit | $145.00 | Your model's tokens |
| Tavily basic search, pay-as-you-go | $8.00 | 1,000 credits | $232.00 | Advanced depth uses more credits |
| OpenAI web search tool | $10.00 | None | $300.00 | Search content tokens at model rates |
| Anthropic web search tool | $10.00 | None | $300.00 | Result tokens billed as input |
| Gemini Grounding with Google Search | $14.00 | 5,000 requests (Gemini 3 and newer) | $350.00 | Daily cap of 1,500 requests |
The table compares prices, not equal products. DeepSeek, Brave, Exa and Tavily are raw search APIs that hand results to your own model, so their real cost includes your tokens; the OpenAI, Anthropic and Gemini tools run inside the model call and bill result tokens on top of the per-search fee. At 1,000 a day the volume stays under Gemini's published daily cap of 1,500 grounded requests. Brave's page shows both "$5 in free credits every month" on the plan card and an "up to $20" banner, and the table counts the $5; Tavily's monthly plans bring its credit price down to $0.005–$0.0075. Billing rules differ too: Anthropic counts each web search regardless of how many results it returns, while DeepSeek doesn't bill a search that comes back empty. Search quality isn't priced in, and it's where DeepSeek has the most open questions.
DeepSeek Search API rate limits: 100 per second, not 5
As of October 30, 2026, each DeepSeek account can make 100 Search requests per second (QPS) and 25 Fetch requests per second, counted independently and across every API key on the account, according to the rate-limit section of DeepSeek's guide. Going over returns HTTP 429, which isn't billed. Fetch also has a per-domain limit whose value DeepSeek doesn't publish, and these limits are separate from model concurrency.
If you see "5 QPS per account," that's the launch-day figure. An archived copy of the guide from October 17, 2026 shows 5 requests per second for both Search and Fetch, and the copy from October 20 shows 100 and 25. DeepSeek published no announcement, so the increase is dated only by those snapshots, around October 19–20. At the current limits the ceiling is 8.64 million searches and 2.16 million fetches a day, well beyond a job of 360,000 searches a month.
Calling /v1/tools/search directly, and what a 401 does and doesn't tell you
A Search call is one POST to https://api.deepseek.com/v1/tools/search with your normal DeepSeek API key as a bearer token. query is required, takes 1–128 characters and supports operators such as site:, -site:, "exact phrase", lang:en, after: and before:; count runs from 1 to 50 and defaults to 10. Fetch works the same way at /v1/tools/fetch with a single url field and returns the page title and Markdown content.
curl https://api.deepseek.com/v1/tools/search \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "DeepSeek V4.1 release notes site:api-docs.deepseek.com",
"count": 10
}'Don't treat a 401 as proof that the rest of the request is right. On October 29, 2026, at 16:24 UTC, eight requests were sent from one Mac to DeepSeek's endpoints with no key or with a made-up key, and every one came back 401 in about 1.1 seconds: a valid Search body, count: 60, malformed JSON, a Fetch call, a GET instead of a POST, the wrong path /v1/search, and an Anthropic-format message with a web search tool. DeepSeek checks the key before the path, method or body, so a 401 tells you only that the key is wrong, and the documented 400 for an out-of-range count can only appear once the key is valid. Those probes couldn't be billed and no search ran with a real key, so the quality and latency reports further down come from DeepSeek's users, not from these probes.
Once the key works, the error table in DeepSeek's guide tells you what to do next. For 408, 429 and 5xx responses, wait and retry; for 402, top up the balance first; for any other 4xx, change the request before sending it again. None of these errors is billed.
How to stop Claude Code and Codex from running up search charges
Claude Code's permission rules and Codex's config file both let you turn web search off or keep it behind a prompt, and the settings work the same before and after billing starts. Apply the ones that match how you work:
-
To remove search from Claude Code entirely, add a bare deny rule to
~/.claude/settings.jsonfor every project, or to.claude/settings.jsonfor one project. A bare tool name removes the tool from Claude's context, so the model never tries to call it. For a single session, start Claude Code withclaude --disallowedTools WebSearchinstead.{ "permissions": { "deny": ["WebSearch"] } } -
To approve each search yourself, put
"WebSearch"in anasklist instead ofdeny. WebSearch already asks in Manual mode, but answering "Yes, and don't ask again" saves a permanent allow for that repository, and anaskrule still prompts even when such an allow rule exists, according to Claude Code's permissions docs. -
To stop page reads too, set
CLAUDE_CODE_DISABLE_WEB_FETCH=1(Claude Code v2.1.285 or later) or add"WebFetch"todeny. DeepSeek doesn't say whether WebFetch uses its Fetch API, but every fetch runs an extra model call billed as tokens either way. -
In Codex, keep
web_search = "disabled"in~/.codex/config.toml, the value DeepSeek's setup script writes, and restart Codex after any change. Ondeepseek-flashthe tool is ignored anyway, so the charge only appears once you switch todeepseek-v4-prowithweb_search = "live".
Is DeepSeek search any good? Filtered results and a data path to China
As of October 30, 2026, the quality reports available are user observations without published numbers. In the Hacker News thread on DeepSeek search and fetch on October 18, 2026, one user found that typical "politically sensitive" queries return zero results, and that Fetch traffic appeared to leave from Huawei Cloud in Hong Kong with a Linux Firefox user agent and the language set to Chinese. Another ran quick tests on a personal web-fetch benchmark and concluded that DeepSeek's search and fetch "aren't very good (is quite cheap tho)," without publishing numbers. A third pointed out that the search call becomes a data path to China even if your model runs in the EU.
A filtered query costs nothing, because empty results aren't billed, but your agent gets nothing back either. The one detailed cost report is second-hand: the Reddit user cited by eesel.ai ran 353 queries and 196 fetches through the new API and through DeepSeek's older token-billed search, and saw cost fall from $0.64 to $0.41 and search latency drop from 4.3 seconds to under 0.9 seconds. That post was written up by DeepSeek's own model from the user's logs and didn't compare Brave, Exa or Tavily.
Look elsewhere if your queries touch topics that are filtered in China, if your data can't pass through Chinese infrastructure, or if you need more than 25 page fetches a second. Otherwise, run a sample of your own real queries before you commit: at this price, 1,000 test searches cost $0.75.
DeepSeek Search API: other questions
Can the DeepSeek API do web search?
Yes, since October 17, 2026. You can call the standalone Search and Fetch endpoints yourself, or let Claude Code (through DeepSeek's Anthropic-format endpoint at api.deepseek.com/anthropic) or Codex (through the Responses API on deepseek-v4-pro) run searches as server-side tools. Older DeepSeek statements that the API doesn't support search predate that launch.
Does DeepSeek's granted balance pay for Search and Fetch?
Yes. DeepSeek's pricing page says Search and Fetch fees are deducted from your topped-up or granted balance, using the granted balance first when both are available. With no balance left, requests return HTTP 402 and aren't billed.
Sources18
External pages this guide links to, in the order they appear. Last updated Oct 30, 2026.
Sources18
External pages this guide links to, in the order they appear. Last updated Oct 30, 2026.
- 1.DeepSeek's Search & Fetch guideapi-docs.deepseek.com/guides/search
- 2.launch announcementapi-docs.deepseek.com/news/news261017
- 3.DeepSeek pricing pageapi-docs.deepseek.com/quick_start/pricing
- 4.DeepSeek's Claude Code integration guideapi-docs.deepseek.com/quick_start/agent_integrations/claude_code
- 5.Claude API pricing pageplatform.claude.com/docs/en/about-claude/pricing
- 6.Claude Code tools referencecode.claude.com/docs/en/tools-reference
- 7.eesel.ai's DeepSeek Search API write-upeesel.ai/blog/deepseek-search-api
- 8.DeepSeek's Codex guideapi-docs.deepseek.com/quick_start/agent_integrations/codex
- 9.Responses API referenceapi-docs.deepseek.com/guides/responses_api
- 10.Exa searchexa.ai/pricing
- 11.Brave Search APIbrave.com/search/api
- 12.Tavilydocs.tavily.com/documentation/api-credits
- 13.OpenAI web search toolplatform.openai.com/docs/pricing
- 14.Gemini Grounding with Google Searchai.google.dev/gemini-api/docs/pricing
- 15.archived copy of the guide from October 17, 2026web.archive.org/web/20261017084301/https://api-docs.deepseek.com/guides/search
- 16.the copy from October 20web.archive.org/web/20261020015305/https://api-docs.deepseek.com/guides/search
- 17.Claude Code's permissions docscode.claude.com/docs/en/permissions
- 18.Hacker News thread on DeepSeek search and fetchnews.ycombinator.com/item





