DeepSeek search and fetch – $0.75 per 1000 successful requests
TL;DR Highlight
DeepSeek launched web Search and Fetch APIs at $0.75 per 1,000 successful requests
Who Should Read
Backend developers adding live web search and page fetching to agents or RAG who are comparing search API costs
Core Mechanics
- Search and Fetch are separate APIs
- The Search API finds web pages for a query and returns structured results.
- The Fetch API takes one URL and returns its content as Markdown.
- Both are JSON APIs using the same bearer auth as the DeepSeek API.
- Search returns model-friendly fields
- snippet is 100-200 chars for UI display, and summary is 600-800 chars meant for a model to read.
- Set need_content to true to get page content; with the default false, content is an empty string.
- rerank_score runs 0 to 3, and 1.5 or above counts as high quality.
- Query operators pass through intact
- You can use site:, -site:, lang:, after:, before: and exact phrases in the query.
- A query is 1-128 characters, and count is 1-50 (default 10).
- Billing is per successful request
- Search and Fetch are each $0.75 per 1,000 successful requests, not billed by tokens.
- Only HTTP 200 with a result is billed; failures, empty results and timeouts are free.
Community Reactions
- Several comments compared prices
- Commenters cited $5 for Brave Search API, $12 for Kagi API and $4 for Exa.
- Another comment pointed to an Artificial Analysis table of search API costs.
- A commenter said DIY tools are far cheaper
- One built search and fetch MCP tools on third-party scrapers a year ago and found them 15-20x cheaper than OpenAI and Anthropic built-in tools.
- Another said free tools like searxng-ai-kit are more cost effective for personal use.
- A benchmark report found quality mediocre
- One commenter ran DeepSeek on their own web-fetch bench and found search and fetch not very good, though cheap.
- They suggested free Jina or paid Parallel, Firecrawl, Tavily and Exa instead.
- Questions came up about fetch output and anti-bot
- One user fetched a page with hyperlinks and got only text back.
- Another asked how pages behind Cloudflare or Anubis are handled.
How to Apply
- Call Search once with curl
- Today, send a query with count 5 and need_content true using your API key and check summary and rerank_score.
- Run 3 of your agent's real questions and count how many results score 1.5 or above.
- Switch your agent search tool to operator queries
- Restrict trusted domains with site: and filter stale pages with after:.
- Feed the model summary first instead of full content to save tokens.
- Add retry and 402 handling to your wrapper
- Retry 408, 429 and 5xx with exponential backoff.
- Don't retry 402; alert instead, and block other 4xx until the request is fixed.
- Compare against your current provider on the same queries
- Run the same 20 questions through your existing search and fetch provider.
- Tabulate success rate, link preservation and cost per 1,000 requests.
Try It
# Paste into a terminal (pip install requests, needs the DEEPSEEK_API_KEY env var)
import os, requests
H = {"Authorization": "Bearer " + os.environ["DEEPSEEK_API_KEY"]}
r = requests.post(
"https://api.deepseek.com/v1/tools/search",
headers=H,
json={"query": "{{question}} lang:en after:2025", "count": 5, "need_content": False},
)
r.raise_for_status()
for x in r.json()["results"]:
print(x["rerank_score"], x["title"], x["url"])
print(x["summary"])
# Next: fetch the first result URL and check whether links are preserved
url = r.json()["results"][0]["url"]
p = requests.post("https://api.deepseek.com/v1/tools/fetch", headers=H, json={"url": url})
p.raise_for_status()
print(p.json()["content"][:500])Terminology
Related Papers
Same Simulation, Different Evidence: Where Retrieved Tool Output Costs LLM Agents Accuracy
Saving long tool output to files cut GPT-5.1 accuracy by 11.3 points; naming the authoritative file restored it.
Fake News, Real Crashes: Information Injection Attacks on LLM Financial Trading Agents
Fake headlines hijacked LLM trading agents 62% of the time versus 14% for prompt injection.
Harness Engineering 101: The LLM is the brain, the harness is the body
An agent is a loop managing a JSON array; 16 chapters build one from scratch
Harness2 by Google Research – Recursive Agent Harnessing
Recursively refining the harness with fixed model weights raised benchmark scores by up to 11.8 points.
Ousted Savannah police officer gave ICE agent husband access to Flock system
A police officer shared her Flock login with her ICE-agent husband; an audit found 983 searches and she was fired
Tmux and Claude Code: Sessions, Send-Keys, and the Ceiling
Running Claude Code agents in tmux works well, but limits appear around four agents.