DeepSeek Search API: how it works, what it costs, and the catches

Rama Adi
Written by

Rama Adi

Katelin Teen
Reviewed by

Katelin Teen

Last edited October 19, 2026

Expert Verified
Hand-drawn illustration of a developer at a laptop while web pages flow from a search bar into a friendly AI agent, next to the DeepSeek whale logo

Why I care about a search API

I build eesel's integrations, the code that pulls help-center articles, macros and tickets into the AI. Most of that job comes down to retrieval, which means finding the right piece of text and then showing where it came from. One hardware support team on an eesel sales call put citations on every answer at the top of their list, and in the same breath asked eesel to crawl a help center that sits behind a login.

That pairing is pretty much the lens I read this launch through. A cheap web search API solves the first half of that problem for public information. For the second half, it does nothing at all. So I went through DeepSeek's docs and billing rules and compared the price against eight other vendors, then also read what developers said in the first two days. I don't have hands-on benchmark numbers of my own, so where I cite speed or quality, it comes from people who measured it.

What is the DeepSeek Search API?

The Search API finds web pages for a query and returns structured results. Its partner, the Fetch API, takes one URL and returns that page as Markdown. DeepSeek's Search & Fetch guide describes both as raw JSON APIs that use the same bearer key as the rest of the DeepSeek API.

The Search & Fetch page in the DeepSeek API docs, listing the two endpoints and the authentication headers, as taken from DeepSeek API Docs
The Search & Fetch page in the DeepSeek API docs, listing the two endpoints and the authentication headers, as taken from DeepSeek API Docs

It shipped the same day as DeepSeek V4.1 Flash 1017, the model update I reviewed separately. The changelog entry says the engine behind DeepSeek's web and API search already handles "hundreds of millions of search requests" a day, indexes "hundreds of billions of web pages," and filters SEO spam and low-quality AI-generated content. Put simply, it's the same search DeepSeek's chatbot was already using, only now it is sold by the request.

APIEndpointWhat it returns
SearchPOST https://api.deepseek.com/v1/tools/searchUp to 50 results with title, URL, snippet, summary, date and scores
FetchPOST https://api.deepseek.com/v1/tools/fetchThe page title and its content as Markdown

How Search and Fetch work together

The two endpoints map onto the loop most research agents already run: search, pick the promising links, read them, answer. The model itself never touches the web at any point. Your code (or a harness like Claude Code) makes the calls and drops the results into the model's context.

Hand-drawn pipeline of five cards: agent has a question, Search API returns up to 50 results, pick the best URLs by rerank score, Fetch API returns the page as Markdown, and the model reads and answers, with the per-request price under Search and Fetch
Hand-drawn pipeline of five cards: agent has a question, Search API returns up to 50 results, pick the best URLs by rerank score, Fetch API returns the page as Markdown, and the model reads and answers, with the per-request price under Search and Fetch

A Search request takes five fields, per the Search API reference:

FieldDefaultWhat it does
queryrequired1 to 128 characters, with search operators
count10Number of results, from 1 to 50
ori_questionnoneThe user's original question, to help DeepSeek understand the query
localization""An IP address to localize results
need_contentfalseReturn full page content in each result

The query supports the operators you would type into a search box: site: and -site:, exact phrases in quotes, lang:zh,en, and after: / before: dates. That 128-character cap is tight, especially for agents that like pasting the whole question in. ori_question is the workaround: keep the query short and pass the full question separately.

Each result also carries two fields, and I haven't seen them packaged quite this way in other APIs. rerank_score runs from 0 to 3, and DeepSeek says 1.5 or above counts as high quality. authority runs from 0 to 4, with 3 and up meaning a highly authoritative source. There is also a summary of 600 to 800 characters that DeepSeek says is "intended to be read by a model." For a RAG pipeline, that means you can drop junk pages and feed summaries to the model before you pay to fetch anything. One caveat from an early builder: across 60 results, they found rerank_score ranged from 0.03 to 2.32 and "barely changes between different queries," which reads more like a page-quality score than a relevance score. My own use for it would be dropping low-quality pages, not ranking answers.

The Fetch API is simpler: send a URL (up to 8,192 characters), get back title and content. If the page can't be read, because the site blocks it or there is nothing to extract, you get a 404. A 403 means DeepSeek's own security policy rejected the request. It's worth handling both in code, rather than letting your agent keep retrying forever.

What does the DeepSeek Search API cost?

Search and Fetch bill per successful request, not by tokens and not by the number of results. Here is the whole price list from DeepSeek's pricing page:

APIUnitPrice
SearchPer 1,000 successful requests$0.75
FetchPer 1,000 successful requests$0.75

The billing rule is on the generous side. A request counts only when it returns HTTP 200 and actually produces something: a non-empty results array for Search, page content for Fetch. Empty results, failed requests and timeouts are free, and asking for 50 results costs the same as asking for one.

Hand-drawn two-column chart: you pay for HTTP 200 with results, Fetch returning a page, and Claude Code or Codex calls from November 1; you do not pay for empty results, failed requests, timeouts, or asking for 50 results instead of 1
Hand-drawn two-column chart: you pay for HTTP 200 with results, Fetch returning a page, and Claude Code or Codex calls from November 1; you do not pay for empty results, failed requests, timeouts, or asking for 50 results instead of 1

The other half of the bill comes from the model reading whatever you pulled in. Those tokens bill at normal Flash pricing or V4 Pro rates. Off-peak prices are half of peak, and peak hours are 01:00 to 04:00 and 06:00 to 10:00 UTC on weekdays:

Model (per 1M tokens)Input, cache missInput, cache hitOutput
deepseek-flash, off-peak$0.15$0.003$0.60
deepseek-flash, peak$0.30$0.006$1.20
deepseek-v4-pro, off-peak$0.66$0.022$1.98
deepseek-v4-pro, peak$1.32$0.044$3.96

One date is worth putting in your calendar. When you use the DeepSeek API through DeepSeek Harness, Claude Code or Codex, the agent's server-side searches already go through these endpoints. The guide says those calls are free for now and that per-request billing starts at 00:00 Beijing time on November 1, 2026 (16:00 UTC on October 31). If you have been leaving web search on in Claude Code because it costs nothing, that changes in under two weeks.

How it compares with other search APIs

I pulled each vendor's own pricing page on October 19, 2026. The units are not the same across vendors, so check the second column before you compare any numbers.

Hand-drawn bar chart of price per 1,000 web searches: DeepSeek $0.75, Perplexity Fast $1, Exa Instant $4, Brave $5, Perplexity $5, Tavily $8, OpenAI $10 plus tokens, Anthropic $10 plus tokens, Gemini $14
Hand-drawn bar chart of price per 1,000 web searches: DeepSeek $0.75, Perplexity Fast $1, Exa Instant $4, Brave $5, Perplexity $5, Tavily $8, OpenAI $10 plus tokens, Anthropic $10 plus tokens, Gemini $14
VendorBilling unitPrice per 1,000Result tokens billed too?Free tierRate limit
DeepSeek SearchSuccessful request$0.75NoNone listed5 per second
Perplexity SearchRequest (up to 5 queries)$5 standard, $1 Fast SearchNoNone listed50 per second
ExaRequest (up to 10 results)$4 Instant, $7 Fast/Auto, $12 DeepNo, page text $1 per 1,000 pages$10 a month10 to 25 per second
Brave Search APIRequest$5No$5 credit a month50 per second
TavilyCredit (basic search = 1)$8 pay-as-you-go, $5 to $7.50 on plansNo1,000 credits a month100 to 1,000 per minute
Firecrawl searchCredits (2 per 10 results)About $1.20 to $7.60 by planNo1,000 credits a monthPlan-based
OpenAI web searchTool call$10YesNone listedModel limits
Anthropic web searchSearch$10YesNone listedPer organization
Gemini groundingSearch query$14Not for results5,000 a monthModel limits

Tavily and Firecrawl figures are my arithmetic from their credit rates, assuming basic depth and 10 results.

Three things stood out to me. First, DeepSeek undercuts every list price here, and the closest rivals at $1 to $1.20 are a fast tier or a $599-a-month plan. Second, the "plus tokens" rows matter: OpenAI and Anthropic charge $10 per thousand searches and then bill the results as input tokens on top, on models like GPT-5.6 and Claude (see Anthropic API pricing) that cost far more per token than DeepSeek Flash. Third, DeepSeek's rate limit is the lowest in the table, and by a wide margin.

If you want to switch providers without rewriting code, Cloudflare's Web Search API puts three of them behind one endpoint. For deep multi-step research rather than single queries, Exa Agent Ultra is a different product at a different price.

If you mostly need page-to-Markdown at scale, Firecrawl's pricing is the one to compare Fetch against.

The 5 QPS limit is the number to plan around

Search and Fetch each allow 5 requests per second per account. Since the limit is account-wide, adding more API keys won't raise it. It is also separate from DeepSeek's model concurrency limits, and Fetch adds a per-domain cap on top. Anything over the line gets HTTP 429.

Five per second sounds tiny, but do the math: it is 432,000 searches a day per endpoint, which is more volume than almost anyone needs. Where it actually bites is bursts. A research agent that fans out 20 parallel searches, or 10 users hitting your app in the same second, will trip the limit even if your monthly volume is small. Brave and Perplexity allow 50 per second, so this is where DeepSeek's low price shows its tradeoff.

The fix is boring and works, and it's the same pattern any AI agent API integration needs: put a queue in front of the API with a token-bucket limiter, retry 429s with backoff, and fan out fetches across domains rather than hammering one site. DeepSeek's error guide says to retry on 408, 429 and 5xx, top up your balance on 402, and leave other 4xx errors alone until you change the request.

What does one agent task really cost?

Let me walk through a worked example. Say a research agent runs 2,000 tasks a month, and each task makes 4 searches and fetches 3 pages. That is 8,000 searches and 6,000 fetches, or $10.50 a month in DeepSeek fees. The same 8,000 searches would cost $40 on Brave, $64 on Tavily pay-as-you-go, and $80 on OpenAI before its token charges.

Now for the part people tend to skip. Those 6,000 fetched pages go into the model. If a page averages 6,000 tokens (my assumption, real pages vary a lot), that is 36 million input tokens: $5.40 on Flash off-peak, $10.80 on Flash at peak, or $23.76 on V4 Pro off-peak. On V4 Pro, the pages you read cost more than the searches that found them.

On small jobs, it flips the other way. A Reddit user who logged a week of agent work found one research subagent made 85 searches against just $0.07 of model work. At $0.75 per thousand, those searches cost about $0.06, nearly as much as the model itself. So on cheap Flash calls, the search fee can end up matching the model bill. Plug in your own numbers below.

The estimator leaves out output tokens and the search summaries, so treat it as a floor. Two levers move the bill more than anything else. The first is need_content: true, which returns page text inside the search results so you can skip separate fetches. The builder of a Perplexity-style answer engine said it took one question "from 31s to 7s," with 15 results and about 119,000 characters in one billable call. That trades fetch fees for tokens, since 119,000 characters is roughly 30,000 tokens for the model to read. The second lever is timing: run batch jobs off-peak, where every DeepSeek token costs half. And if Flash isn't smart enough to pick good sources, compare it against Kimi K3 or step up using my Flash vs Pro notes before you pay for more fetches.

Using it from Claude Code, Codex and Harness

Most people will run into this API without ever calling it directly. DeepSeek's Claude Code guide says the API "natively supports the Web Search feature in Claude Code." When the model decides a question needs the web, Claude Code calls the Web Search tool and DeepSeek runs the search on its side.

Claude Code running on deepseek-v4-pro, making two Web Search calls for Rust tutorials and then answering with a curated list, as taken from DeepSeek API Docs
Claude Code running on deepseek-v4-pro, making two Web Search calls for Rust tutorials and then answering with a curated list, as taken from DeepSeek API Docs

The same page spells out the cost: summarizing search results takes extra model requests, so "additional model token costs will be incurred," and the searches themselves bill at Search API rates. That lines up with what I said earlier. On Claude Code, the search fee is the small line on the invoice. If you're tuning spend, my Claude Code pricing guide covers the rest, and the environment variables post shows how to point Claude Code at another API.

The model gating is an easy thing to miss. In the Responses API, the built-in web_search tool is "Supported with deepseek-v4-pro" and "Ignored with deepseek-flash." The Codex integration is the same (my Codex pricing post covers OpenAI's own plans): web search only works when Codex runs on deepseek-v4-pro, and DeepSeek's setup script writes web_search = "disabled" until you change it to "live". So if you moved Codex to Flash to save money and search quietly stopped working, that is why. The standalone endpoints don't care which model you use, since your code makes the calls.

DeepSeek Harness, DeepSeek's own agent app, is the third route in the free window (see Harness alternatives if it isn't your tool). Its trajectory view shows every tool call in a session, which is the easiest way I know to see how many searches an agent really makes before you start paying for them.

DeepSeek Harness trajectory view, showing a timeline of tool calls and a list of bash steps with a detail panel, as taken from DeepSeek Harness
DeepSeek Harness trajectory view, showing a timeline of tool calls and a list of bash steps with a detail panel, as taken from DeepSeek Harness

What developers are saying

The first reaction was about price, and it was loud. The Hacker News thread on the launch ran the comparison people care about:

Hacker News

"For comparison that's $5 with Brave Search API and $12 with Kagi API"

Developers who had already built their own search tools, often as an MCP server, were impressed too:

Hacker News

"About a year ago I built my own search and fetch MCP tools for agents based on third-party scraping providers. It is about 15-20x more cost-effective than what OpenAI and Anthropic is offering with their integrated web search and fetch tools. Very impressive that DeepSeek has such a competitive offering today."

The most detailed data point came from a Reddit user who ran 353 queries and 196 fetches through both the new API and DeepSeek's older search path, which billed by tokens. Their numbers: cost fell from $0.64 to $0.41, and search latency from 4.3 seconds to under 0.9 seconds. (The post says DeepSeek's own model wrote it up from the user's logs, and it didn't compare against Tavily, Exa or Brave.) Their take on what matters, beyond the snippets and dates they now get instead of bare URLs:

Reddit

"The 2.4× is nice. The real win is that the price is now predictable"

On quality, the reviews are more mixed. A developer who runs their own fetch benchmark wasn't impressed:

Hacker News

"Ran a few quick tests on my web-fetch bench. As much as I like DeepSeek, its search and fetch aren't very good (is quite cheap tho). You'd probably be better off using free services like Jina directly, or if you're going paid, Parallel, Firecrawl, Tavily and Exa are all pretty good now."

Another probed what sits behind the API:

Hacker News

"as expected, the typical "politically sensitive" search queries return 0 results"

The same comment says fetch traffic exits through Huawei Cloud in Hong Kong. Neither of the testers gave hard numbers, so I'd treat them as reasons to test rather than verdicts. The open question is the one the widget above tries to answer:

Reddit

"At $0.75 per 1000 requests, I want to know how many calls an agent makes in the background. Has anyone calculated the cost for typical research task?"

And for teams who just want to get going, the boring advantage got a mention:

Reddit

"I have been looking for Search API that will scale and no one is close to Deepseek's API search pricing. Deepseek also makes it easy to pay - just a credit card and you don't need to jump through any hoops to add money."

Where it falls short

The price is real, and so are the limits. Before you swap your search provider, check these:

  • Rate limit. 5 requests per second per account is a tenth of what Brave and Perplexity allow. Fine for one agent, tight for a busy product.
  • Short queries. 128 characters per query, so long natural-language questions need to go in ori_question.
  • Data location. DeepSeek's privacy policy says personal data may be stored on servers in the People's Republic of China, and lists improving its models among the uses of user input, with an opt-out right. Search queries can carry customer details, so that is a compliance check, not a footnote.
  • No published retention terms for search. Brave describes zero data retention by design, and Exa and Firecrawl offer it on enterprise plans. I didn't find an equivalent statement for DeepSeek's search endpoints.
  • Filtered results. One tester reported that politically sensitive queries return zero results, and that fetches go out through Huawei Cloud in Hong Kong. If your agent researches news, policy or China-related topics, expect gaps (and remember empty results are at least free).
  • An index outsiders haven't tested at scale. DeepSeek says its engine handles hundreds of millions of searches a day. How well it ranks English-language niche results against Google-backed or Brave-backed APIs is something to test on your own queries, not take on faith.

None of these is a dealbreaker for a side project or an internal research tool. For anything customer-facing, though, they add up quickly.

Is it useful for customer support?

This is the part where I'd slow down. A cheap web search API makes it tempting to build a support bot that "just looks it up." For a small slice of questions, that works: a shipping carrier's public holiday schedule, a changelog for a third-party tool your product integrates with, a regulation that changed last week.

Most support answers aren't on the open web, though, which is why AI search engines are bad at them. They sit in your help center (often behind a login, like that hardware team's), in past tickets, in macros, and in internal docs. That's the job of an AI knowledge base, not a search engine. A web search API can't reach any of that, and pointing one at the public web invites the bot to quote a competitor's docs or a three-year-old forum post as if it were your policy. eesel learned a version of this the hard way: a confident-sounding answer is not the same as a right one, which is why every eesel rollout is simulated against historical tickets before it touches a live customer.

So for support, I'd treat web search as a narrow tool you allow for specific public sources, with site: filters, not the main knowledge layer. The main layer is your own content, with citations on every answer. If you're wiring that up yourself, my notes on MCP for customer support cover where web tools fit and where they don't.

Try eesel

The DeepSeek Search API is infrastructure: a cheap, fast way for your code to find and read public pages. You'd still have to build everything that makes an AI safe to put in front of customers. eesel is the employee, one of a roster of AI teammates. Its AI helpdesk teammate connects to Zendesk, Freshdesk, Gorgias and the rest, learns from your help center, macros and past tickets (including help centers behind a login), cites its sources, and runs against hundreds of your historical tickets before it answers anyone.

If you're the kind of builder who reads search API docs for fun, you'll probably want to drive it from a terminal. The eesel CLI does that: npx @eesel/cli init chat-bubble --site <your-site> spins up a free 7-day workspace with no account, eesel integrations connect zendesk wires in your helpdesk, eesel instructions edits the teammate's standing rules, and eesel activity shows what it did and why. Every command prints JSON, writes accept --dry-run, and eesel mcp token turns your workspace into an MCP server, so Claude Code or Codex can manage your support teammate the way they manage your repo. If you write content instead of answering tickets, the same roster includes an AI blog writer.

The eesel AI helpdesk dashboard overview, showing connected knowledge sources and ticket activity
The eesel AI helpdesk dashboard overview, showing connected knowledge sources and ticket activity

It's free to start with 100 credits and no card. Try eesel on last month's tickets and see what it would have answered, and where it would have cited your docs instead of the open web. Plans are on the pricing page.

Frequently Asked Questions

How much does the DeepSeek Search API cost?

The DeepSeek Search API costs $0.75 per 1,000 successful requests, and the Fetch API costs the same. A request is billed only when it returns HTTP 200 with results, so empty searches, failures, and timeouts are free. The full breakdown is on DeepSeek's billing section, and you can compare it with other model costs in my DeepSeek Flash pricing post.

Is DeepSeek web search free in Claude Code?

For now, yes. When you run Claude Code, Codex, or DeepSeek Harness on the DeepSeek API, server-side web searches hit the Search and Fetch APIs for free until 00:00 Beijing time on November 1, 2026. After that they bill at the normal DeepSeek Search API rate, plus the model tokens used to read the results.

What is the rate limit on the DeepSeek Search API?

Search and Fetch each allow 5 requests per second per account, no matter how many API keys you use. Fetch also has a per-domain limit. Requests over the limit get HTTP 429, so parallel AI agents need a queue or a retry with backoff.

Does the DeepSeek Search API work with DeepSeek Flash?

The standalone Search and Fetch endpoints work with any model, since you call them yourself and pass the results in. The built-in web_search tool in the Responses API and in Codex only runs on deepseek-v4-pro and is ignored on deepseek-flash. My Flash vs Pro comparison covers the rest of the differences.

How does the DeepSeek Search API compare with Brave, Exa, and Tavily?

On list price it is the cheapest I found: $0.75 per 1,000 searches against $5 for Brave, $4 for Exa Instant, and $8 for Tavily's pay-as-you-go basic search. The tradeoff is a lower rate limit (5 per second) and an index that is newer to outside developers. If you want a choice of providers behind one endpoint, the Cloudflare Web Search API is another option.

Can I use the DeepSeek Search API for a customer support chatbot?

You can, but it only finds public web pages. Most support answers live in a login-gated help center, past tickets, and macros that no web search reaches. An AI helpdesk teammate like eesel learns from those private sources instead, and you can test it on past tickets before it goes live.

What does the DeepSeek Fetch API return?

The Fetch API takes one URL and returns the page title plus the content as Markdown. It costs the same $0.75 per 1,000 successful requests as the DeepSeek Search API, and pages it cannot read return a 404 that is not billed. It plays the same role as a scraper like Firecrawl, minus the crawling and formatting options.

Share this article