Quick answer: The DeepSeek Search API is free only inside three coding tools, and only until October 31, 2026 at 16:00 UTC. Search and Fetch calls that Claude Code, Codex or DeepSeek Harness make server-side cost nothing until then. After that, and for every direct call to the endpoints, you pay $0.75 per 1,000 successful requests per endpoint. Failed calls, empty results and timeouts are never charged.
DeepSeek opened its Search and Fetch APIs to everyone on October 17, 2026, alongside the DeepSeek-V4.1-Flash-1017 release. They give an agent fresh web results for a query and a clean Markdown copy of any page. This guide covers what’s free, what it costs after the window, rate limits, a first request, and testing both endpoints with Apidog CLI.
Every fact below comes from DeepSeek’s Search & Fetch guide and pricing page, read on October 28, 2026.
Is the DeepSeek Search API free?
Yes, with two limits: where you call it from, and when. DeepSeek’s docs say server-side Search and Fetch calls made through DeepSeek Harness, Claude Code or Codex are “currently free of charge.” Per-request billing for those calls starts at 00:00 on November 1, 2026 in UTC+8, which is 16:00 UTC on October 31, 2026.
| Route | Search and Fetch cost before Oct 31, 16:00 UTC | After |
|---|---|---|
| Claude Code on a DeepSeek API key | $0 | $0.75 / 1,000 successful calls |
| Codex on a DeepSeek API key | $0 | $0.75 / 1,000 successful calls |
| DeepSeek Harness | $0 | $0.75 / 1,000 successful calls |
Direct POST to /v1/tools/search or /v1/tools/fetch |
$0.75 / 1,000 successful calls | $0.75 / 1,000 successful calls |
Two catches keep this from being a true zero-dollar route:
- You still need a funded DeepSeek API key. The free window covers the search calls, not the model. DeepSeek’s Claude Code integration page says summarizing search results uses extra LLM requests, and those tokens are billed at normal model prices.
- The window covers server-side tool calls only. The docs scope it to those three tools. If your own code calls the endpoints, you pay from the first successful request.
If you’re after a free DeepSeek model rather than free search, our guide to whether DeepSeek is free lists every route, and DeepSeek API key for free covers the key itself.
What the DeepSeek Search and Fetch APIs do
The DeepSeek Search API takes a query and returns structured web results: title, URL, snippet, a longer model-oriented summary, an optional full-page content field, a relevance score and an authority score. The DeepSeek Fetch API takes one URL and returns that page’s title and its content as Markdown. Together they give an agent search plus reading in two calls.
A research agent usually searches once, then fetches two or three pages, and each is a separate billable call after the window. Search supports operators: site:, -site:, "phrase", -term, lang:en,ja, after: and before:.
You can compare this to other options in our roundup of free web search APIs, the Claude web search API and the Perplexity Search API.
DeepSeek Search API pricing after the free window
Once the window closes, both endpoints bill the same way:
| Search API | Fetch API | |
|---|---|---|
| Price | $0.75 per 1,000 successful requests | $0.75 per 1,000 successful requests |
| Per call | $0.00075 | $0.00075 |
| Billed when | HTTP 200 with a non-empty results array |
HTTP 200 with page content |
| Not billed | Failed requests, empty results, timeouts | Failed requests, timeouts |
Does count change the price? |
No | Not applicable |

Charges come out of your DeepSeek balance, and the pricing page says granted balance is used before topped-up balance when you have both.
Some quick math for a research agent that runs 200 tasks a day, each with one search and three fetches:
- 200 searches x $0.00075 = $0.15
- 600 fetches x $0.00075 = $0.45
- Total: $0.60 a day, about $18 a month, before model tokens
Since count doesn’t change the price, ask for up to 50 results in one call instead of paging. For the model side, deepseek-flash costs $0.15 per million input tokens (cache miss, off-peak) and $0.60 per million output, doubled at peak hours; see DeepSeek V4.1 Flash pricing.
DeepSeek Search API rate limits
Some third-party write-ups quote a 5 QPS limit. DeepSeek’s own guide gives different numbers, and those are the ones to plan around:
- Search: 100 queries per second
- Fetch: 25 queries per second, plus a per-domain limit whose value isn’t published
Limits are per account, apply across all your API keys, and are separate from model concurrency. Search and Fetch are metered independently, so a burst of fetches doesn’t eat your search budget. Going over returns HTTP 429.

Watch the per-domain Fetch limit: an agent fetching 20 pages from one docs site can hit it well below 25 QPS. Space out same-domain fetches and retry 429s with backoff.
Endpoints and your first DeepSeek Search API call
Both endpoints are POST, use a bearer token, and take JSON:
- Search:
https://api.deepseek.com/v1/tools/search - Fetch:
https://api.deepseek.com/v1/tools/fetch
Search request fields
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
query |
string | Yes | none | 1 to 128 characters, operators allowed |
count |
integer | No | 10 | 1 to 50 |
ori_question |
string | No | none | The user’s original question, 1 to 128 characters |
localization |
string | No | "" |
An IP address to localize results |
need_content |
boolean | No | false | When false, content stays empty |
A search request, taken from the docs:
curl https://api.deepseek.com/v1/tools/search \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query": "DeepSeek V4 release", "count": 5, "need_content": true}'

Each item in the results array carries title, url, snippet, summary, content, site_name, site_icon, date (UTC RFC 3339 or null), rerank_score and authority. Filter on two of them before you fetch:
rerank_scoreruns from 0 to 3. DeepSeek treats 1.5 or above as high quality.authorityruns from 0 to 4, with -1 for unknown. 3 or above means a highly authoritative source.
A fetch request takes one field, url (HTTP or HTTPS, up to 8,192 characters, no embedded username or password):
curl https://api.deepseek.com/v1/tools/fetch \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url": "https://example.com/article"}'
It returns title (which may be empty) and content in Markdown.
Errors you’ll see
| Code | Meaning | Retry? |
|---|---|---|
| 400 | Bad header, body or field value | Fix the request first |
| 401 | Missing or invalid key | No |
| 402 | Insufficient balance | Top up, then retry |
| 403 | Fetch blocked by security policy | No |
| 404 | Fetch couldn’t get usable content | No |
| 408 / 429 / 5xx | Timeout, rate limit, server error | Yes, after waiting |
The error body follows the OpenAI shape: message, type, param (always null) and code.
Using Search from Claude Code or Codex vs calling it directly
The free window only applies when a coding tool makes the call for you, so the setup decides the bill.
Claude Code. Point Claude Code at DeepSeek’s Anthropic-compatible endpoint and DeepSeek’s API runs the Web Search tool server-side. The core variables from DeepSeek’s page:
export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic
export ANTHROPIC_AUTH_TOKEN=<your DeepSeek API key>
export ANTHROPIC_MODEL=deepseek-flash[1m]
Copy the full block, which sets a few more model variables, from DeepSeek’s page.

Codex. Codex’s built-in web search works only with deepseek-v4-pro, per DeepSeek’s Codex integration page. The setup script turns web search off by default, so set these two lines in ~/.codex/config.toml and restart:
model = "deepseek-v4-pro"
web_search = "live"

The trade: deepseek-v4-pro costs more per token than deepseek-flash.
Direct calls. Call the endpoints yourself when you’re building your own agent or want count, need_content and the operators under your control. You pay from the first successful call. If you only want an agent that looks things up while it codes, use Claude Code or Codex during the window.
Let your coding agent test the DeepSeek Search API with Apidog CLI
Before you wire Search and Fetch into a product, prove the auth, response shape and errors behave as documented. Your coding agent can build and run those checks with Apidog CLI, so the tests live in a project your team reruns in CI.
Set it up once:
npm install -g apidog-cli@latest
apidog auth login --with-token <YOUR_APIDOG_TOKEN>
npx -y skills add https://apidog.com # pick your agent when prompted
Then give Claude Code, Codex or whichever agent you use one prompt:
In Apidog project <projectId>, add the DeepSeek endpoints POST /v1/tools/search
and POST /v1/tools/fetch with base URL https://api.deepseek.com and bearer auth
from the DEEPSEEK_API_KEY variable. Create test cases that assert: search returns
200 with a results array whose rerank_score values are between 0 and 3; fetch on
https://example.com returns 200 with non-empty content; a bad key returns 401.
Run them against the deepseek environment and summarize any failures.
The agent reads each payload schema, validates its JSON and then writes and runs the tests:
apidog environment create deepseek --project <projectId> --base-url https://api.deepseek.com
apidog cli-schema get endpoint-create
apidog cli-schema validate endpoint-create --file search-endpoint.json
apidog endpoint create --project <projectId> --file search-endpoint.json
apidog cli-schema get test-case-create
apidog test-case create --project <projectId> --file search-case.json
apidog run --test-case <caseId> --project <projectId> -e <envId> -r cli,json
Each full run makes two billable calls after the window (one search, one fetch), so it costs $0.0015. The 401 check costs nothing because failed requests aren’t billed. The same apidog run ... -r junit line drops into a pipeline, as shown in running Apidog CLI in CI/CD. If Claude Code is your agent, Apidog CLI in Claude Code walks through the skill install.
Apidog’s Free plan covers up to 4 users, so a small team can share the project and its test history.
FAQ
Is the DeepSeek Search API free after October 31? No. From 16:00 UTC on October 31, 2026, Search and Fetch calls through Claude Code, Codex and DeepSeek Harness cost $0.75 per 1,000 successful requests, the same as direct calls.
Is the DeepSeek Fetch API free? Only on the same terms as Search: free when Claude Code, Codex or DeepSeek Harness calls it server-side before the cutoff, then $0.75 per 1,000 successful requests.
Do I need a DeepSeek API key to use free search in Claude Code? Yes. Claude Code has to run on a DeepSeek API key through https://api.deepseek.com/anthropic, and the model tokens it spends summarizing results are billed normally.
What is the DeepSeek Search API rate limit? DeepSeek’s guide lists 100 QPS for Search and 25 QPS for Fetch per account, plus an unpublished per-domain limit on Fetch. Exceeding them returns HTTP 429.
Am I charged when a search returns nothing? No. Empty results, failed requests and timeouts aren’t billed. Search bills only on HTTP 200 with a non-empty results array.
Does asking for more results cost more? No. The count field (1 to 50) doesn’t change the price, so one 50-result search costs the same as a 5-result search.



