Last updated: November 1, 2026
The DeepSeek Search API, opened to all developers on October 17, 2026, returns ranked web results from DeepSeek’s own search engine, and a companion Fetch API turns any page into Markdown. Both cost $0.75 per 1,000 successful requests, and calls made through Claude Code, Codex and DeepSeek Harness became billable on November 1, 2026 (Beijing time).
Contents
- What’s new
- Endpoints and authentication
- How to make your first search
- Query operators
- What the response contains
- Using the Fetch API
- Pricing and the November 1 billing change
- Rate limits and errors
- How it compares
- Practical workflows and limitations
- Frequently asked questions
What’s new with the DeepSeek Search API
DeepSeek’s change log entry for October 17, 2026 says the company is “opening up the in-house search API” that already powers search in its web app and model API. DeepSeek says the engine indexes hundreds of billions of pages and filters SEO spam and low-quality AI-generated content.
The same release shipped DeepSeek-V4.1-Flash-1017, covered in our DeepSeek V4.1 Flash guide. The search tools work with any agent or retrieval pipeline, whichever model you use.
Endpoints and authentication
Both are plain JSON APIs on the base URL https://api.deepseek.com, per the Search and Fetch guide.
| API | Endpoint | What it does | Price | Account QPS limit |
|---|---|---|---|---|
| Search | POST /v1/tools/search |
Finds pages for a query and returns structured results | $0.75 per 1,000 successful requests | 100 |
| Fetch | POST /v1/tools/fetch |
Retrieves one page and returns it as Markdown | $0.75 per 1,000 successful requests | 25 (plus a per-domain limit) |
Authentication is the same as the model API: send Authorization: Bearer <DeepSeek API Key> and Content-Type: application/json.
How to make your first DeepSeek search
- Create or copy an API key on the DeepSeek platform and make sure the account has a balance, since an empty balance returns HTTP 402.
- Send a POST request to
https://api.deepseek.com/v1/tools/searchwith a JSON body that containsquery(1 to 128 characters). - Set
countfrom 1 to 50 (default 10) to choose how many results come back. - Add
need_content: trueif you want page text in each result; otherwisecontentis an empty string. - Optionally pass
ori_questionwith the user’s original question to improve query understanding, andlocalizationwith an IP address to localize results. - Read the
resultsarray, keep items with arerank_scoreof 1.5 or higher, and pass thesummaryfield to your model.
A minimal request body looks like {"query": "DeepSeek V4 release", "count": 5, "need_content": true}.
Query operators
The query is forwarded with its search syntax intact, so you can combine operators in one string:
site:and-site:restrict or exclude a domain; join several sites withOR."exact phrase"matches a phrase, and-termor-"phrase"excludes pages containing it.lang:zh,enrestricts results to language codes.after:2025-01-01andbefore:2026filter by publication date.
For example, DeepSeek site:github.com OR site:huggingface.co lang:en after:2025 is the pattern DeepSeek itself documents.
What the response contains
A successful call returns HTTP 200 with a results array, which is empty when nothing matches. Each item includes:
rerank_score: 0 to 3, combining relevance, authority and freshness; 1.5 or above counts as high quality.snippet: about 100 to 200 characters, meant for display in a UI.summary: about 600 to 800 characters, meant to be read by a model.authority: a tier from 0 to 4, with 3 or above marking highly authoritative sources and -1 meaning unknown.title,url,content,site_name,site_iconanddate(RFC 3339 in UTC, or null).
Passing summary instead of full content keeps prompts short, and you can fetch full text only for the few pages you actually cite. If you then need finer ordering, a reranker such as Cohere Rerank 5 can sit after the search step.
Using the Fetch API
Fetch takes a single field, url, which must be an HTTP or HTTPS address of at most 8,192 characters with no username or password. It returns title and content, with the page converted to Markdown. A page with no extractable content returns HTTP 404.
Pricing and the November 1 billing change
Search and Fetch are billed per successful request, not by tokens or number of results, according to the DeepSeek pricing page. A request is billable only when it returns HTTP 200 and produces a result: a non-empty results array for Search, or page content for Fetch. Failed requests, empty searches and timeouts are free.
The change power users should notice today concerns agent tools. When you run the DeepSeek API through DeepSeek Harness, Claude Code or Codex, server-side tool calls already hit these APIs. The October 17 announcement said those calls were free for DeepSeek API users until 16:00 UTC on October 31, 2026, which is 00:00 Beijing time on November 1. From then on they bill at the same $0.75 per 1,000 rate. If DeepSeek powers your Claude Code or the Codex CLI sessions, watch your usage page.
Model tokens are billed separately. Our explainer on whether DeepSeek is free covers the app and API pricing side.
Rate limits and errors
Limits are per account, not per key. Search allows 100 requests per second and Fetch 25, and traffic to one does not use the other’s quota. Common errors:
- 400: invalid headers, body or field value.
- 401: missing or invalid API key.
- 402: insufficient balance; top up before retrying.
- 403: a Fetch request rejected by the security policy.
- 429: QPS limit exceeded, including Fetch’s per-domain limit.
- 408, 500 and 504: wait and retry.
How the DeepSeek Search API compares
The closest comparison is Perplexity. Its pricing page lists the Perplexity Search API at $5.00 per 1,000 requests, or $1.00 with Fast Search, and it bills a successful request even when it returns no results. Inside Perplexity’s Agent API, the web_search tool costs $2.50 per 1,000 calls and fetch_url $0.0005 per call. Our Perplexity Agent API guide covers those tools.
On listed price, DeepSeek Search is cheaper per request and does not charge for empty results. Perplexity accepts up to five queries in one billed request and offers country biasing, while DeepSeek takes one query per request and localizes by IP address. Test result quality on your own queries.
Practical workflows and limitations
- Cheap RAG loop: search with
count10 and no content, keep the top results byrerank_scoreandauthority, then call Fetch on two or three URLs. - Freshness: add
after:with a date when the user asks about recent events, and surface thedatefield in citations. - Better intent: rewrite the user’s question into a short keyword query and send the original as
ori_question.
Limitations: queries are capped at 128 characters, results at 50 per call, and Fetch returns text only as Markdown.
Frequently asked questions
What is the DeepSeek Search API?
It is a raw JSON endpoint, POST https://api.deepseek.com/v1/tools/search, that returns structured web results from DeepSeek’s in-house search engine. Each result includes a title, URL, short snippet, longer model-oriented summary, optional page content, date, authority tier and a relevance score.
How much does the DeepSeek Search API cost?
DeepSeek lists $0.75 per 1,000 successful requests for Search and the same price for Fetch. The count parameter does not change the price, and failed requests, empty results and timeouts are not billed.
Do I need a separate API key for Search and Fetch?
No. Both use the same bearer authentication as the DeepSeek model API, so you send your existing DeepSeek API key in the Authorization header with a JSON content type.
Are Search and Fetch calls from Claude Code or Codex still free?
No longer. DeepSeek says server-side Search and Fetch calls made through DeepSeek Harness, Claude Code and Codex were free at launch, with per-request billing starting at 00:00 Beijing time on November 1, 2026, which is 16:00 UTC on October 31.
What are the rate limits?
Each account can send 100 Search requests and 25 Fetch requests per second. The limits are separate from each other and from model concurrency limits, and Fetch also has a per-domain limit. Requests over a limit get HTTP 429.
How does it compare with the Perplexity Search API?
Perplexity’s pricing page lists its Search API at $5.00 per 1,000 requests, or $1.00 with Fast Search, and it bills successful requests even when no results come back. DeepSeek charges $0.75 per 1,000 and does not bill empty results.
Sources
- DeepSeek API Docs: Search and Fetch
- DeepSeek API Docs: Change Log
- DeepSeek API Docs: DeepSeek-V4.1-Flash-1017 announcement
- DeepSeek API Docs: Models and Pricing
- Perplexity API Platform: Pricing
Image: DeepSeek logo, by DeepSeek, MIT License, via Wikimedia Commons. Placed on a white background and resized. FreeAnswers is not affiliated with DeepSeek.