DeepSeek shipped two things on October 17, 2026. The smaller one is what your agent will feel: alongside the V4.1-Flash-1017 model update, the company opened its Search and Fetch APIs to anyone with a DeepSeek API key. Each endpoint costs $0.75 per 1,000 successful calls.
That price lands hard. Launch-day comparisons put Brave at roughly $5 per 1,000 searches, Exa at $4 to $7, Perplexity at $1 to $5 and Tavily at $8 to $16. The products differ, but for a coding agent that needs three searches to resolve a build error, the gap between eight cents and half a cent decides whether retrieval is a feature you ship or a call you throttle.
The search runs on DeepSeek's own engine, which the company says handles hundreds of millions of requests a day and filters low-quality AI-generated pages and spam. Vendor claims aside, the API shape is documented and specific. Here is how it fits together, and the four limits that will bite you in production.
What $0.75 Buys
A search request is one POST to /v1/tools/search with a query of 1 to 128 characters. You can ask for 1 to 50 results; the default is 10. The response is richer than most search APIs hand you, and the fields are worth reading before you write any prompting:
- rerank_score: a 0 to 3 relevance score that blends relevance, authority and freshness. DeepSeek considers 1.5 and above high quality, which gives you a cheap cutoff for junk.
- summary: a 600 to 800 character write-up written for a model rather than a human. Feed this to the LLM instead of the snippet.
- authority and date: an authority tier from 0 to 4, where 3 and above means highly authoritative and -1 means unknown, plus a UTC publication date when known. Together they are a free spam and staleness filter.
- content: the full page in the response, but only when you set
need_contentto true. Otherwise it comes back as an empty string.
The billing rules matter more than the headline number. You pay only when a search returns results or a fetch returns page content, so failed requests, empty results and timeouts cost nothing. Asking for 50 results with full page content costs the same as asking for one, which makes a broad, content-heavy search the cheapest per useful token in the market.
Two Calls, Any Agent
Both endpoints use the same bearer token as DeepSeek's chat API, so there is no second key, no separate account and no new SDK. In its minimal form the whole integration is two curl calls:
curl -s https://api.deepseek.com/v1/tools/search \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"V4.1-Flash-1017 DeepSWE benchmark","count":5,"need_content":true}'
curl -s https://api.deepseek.com/v1/tools/fetch \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{"url":"https://api-docs.deepseek.com/news/news261017"}'
Fetch takes one URL and returns JSON with a title and the page converted to Markdown, which is the format a language model reads most efficiently. That split is the useful part of the design: search finds candidate pages cheaply, and fetch only converts the two or three you decide to read.
Two parameters do more work than they look like. ori_question passes the user's original question alongside the reformulated query, which DeepSeek says fixes the case where your agent searches for the wrong string. localization takes an IP address to bias results geographically.
Operators work as expected: quoted phrases, site: and -site: all fit inside the query, so site:github.com "context window" is legal. But 128 characters goes fast once you stack operators, so build the string deliberately.
Before You Ship It
- Respect the 5 requests per second cap. Each endpoint is limited per account, search and fetch have separate quotas, and exceeding them returns HTTP 429. Empty results do not bill but still consume a slot, so a fan-out agent hits the ceiling before the invoice.
- Do not read a 404 as a deleted page. On Fetch, a 404 can mean DeepSeek could not read the page, and a 403 means its security policy rejected the request. Wrap both as retrieval failures so your agent does not conclude a source has vanished.
- Use the free window, understand what it covers. Search and Fetch calls through server-side tools in DeepSeek Harness, Claude Code and Codex are free for DeepSeek API users until 16:00 UTC on October 31, 2026. That is people pointing those tools at DeepSeek's API, not a free search feature for every Claude Code or Codex user.
- Keep sensitive queries out. Queries and fetched URLs go to a hosted service, and DeepSeek's privacy policy says it collects, processes and stores personal data in China, with platform terms governed by Chinese law. Regulators in Italy and Germany have already acted against the company over data transfers.
The model update is the quieter half of the story. V4.1-Flash-1017 keeps the same deepseek-flash model ID and the same API price, so existing integrations inherit it with no code change. DeepSeek reports 77.0 on DeepSWE v1.1, up from 74.2, against 74.0 for Anthropic's Opus 5, though seven of eleven published benchmarks still favour Anthropic, so read the table as positioning.
The timing is worth noting. The release came two days after a nearly five-hour API outage on October 15, for which DeepSeek issued credits pegged to the previous week's spend. A cheap search API is only useful if the service stays up, and that is the open question.
So point one test agent at the Search endpoint this week while calls are free, and count how many searches a typical task consumes. If that stays under five per second, the ceiling will not matter.
At $0.75 per thousand calls, retrieval stops being an architecture decision and becomes a default.
Comments