DeepSeek Search & Fetch Separates Finding Sources from Citing Them
Build a research workflow that distinguishes search summaries, fetched pages, and supported claims, with current request fields, dates, empty results, and fetch failures.

An AI research brief can skip its most important step: opening the results. A convincing search summary gives the model enough text to continue writing, and the final links may exist without supporting the claims attached to them.
DeepSeek opened standalone Search & Fetch APIs on October 17, 2026. Applications can retrieve search results and page content separately, then ask a model to synthesize the evidence. These are JSON APIs, not a chat capability enabled by asking the model to browse.
The cover's pages and date labels are conceptual illustrations, not captured Search API results.
This article rereads the announcement and current guide on November 11. We have not made authenticated Search or Fetch requests. The examples follow today's documentation; the evidence table organizes sources actually read, not an API response captured during a test.
Search finds pages; Fetch reads one
| API | Endpoint | Main result |
|---|---|---|
| Search | POST https://api.deepseek.com/v1/tools/search | A results array with URLs, titles, summaries, dates, and other fields |
| Fetch | POST https://api.deepseek.com/v1/tools/fetch | A page title and Markdown content |
Both use a DeepSeek API bearer key. This unexecuted example saves JSON for inspection. Use a key for the destination service; do not send an Nbility key to DeepSeek's official domain.
curl --fail-with-body https://api.deepseek.com/v1/tools/search \
-H "Authorization: Bearer $DEEPSEEK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"query": "DeepSeek Search Fetch site:api-docs.deepseek.com after:2026-10-01",
"count": 5,
"need_content": true
}' \
--output search.json
query must contain 1–128 Unicode characters and cannot be all whitespace. count accepts 1–50. With the default need_content: false, content is always empty. Setting it to true still cannot guarantee available content for every result. A flag is not proof that a page was read.
Supported operators include site:, lang:, after:, and before:. Date filtering depends on available page information. If results are sparse, relax the filter and check dates in the original pages. One empty array does not establish that a product or document does not exist.
Fetch an eligible selected page separately:
curl --fail-with-body 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/guides/search"}' \
--output page.json
Fetching remains subject to the site's availability and access policies. It does not obtain login permission, nor guarantee extraction of dynamic pages, attachments, or complete content.
Summaries and ranking signals are not evidence of every claim
snippet is intended for display, summary provides a longer summary, and content holds available page content. Fields such as rerank_score and authority can help prioritize reading; a high score is not fact verification.
For a recent-news brief, retain the original URL, title, explicit publication date, access date, relevant passage, and the claim it supports. A result's date may be null. Do not fill a missing publication date with the access date.
The sources read for this article form a small evidence ledger:
| Question | Source | Supported conclusion and limit |
|---|---|---|
| When were the standalone APIs announced? | October 17 announcement | Establishes the announcement date, not availability through Nbility |
| What are the current request fields? | Search & Fetch guide read today | Establishes current documented fields; this revision's publication date is not stated |
| What does a selected page establish? | Its actual body text | Supports the corresponding claim, not unread attachments or later updates |
The PDF citation-chain guide applies the same principle: a link, title, or citation number is insufficient without supporting content. Public pages add another concern: they change, so preserve access time and appropriate non-sensitive excerpts.
Put synthesis after reading
Define the research question, search, select sources, read them, and then ask the model to write. Give each source an ID. Flattening everything into one unlabelled block makes it harder to recover which page supports a statement.
Write a brief using only the supplied sources.
For each item, state the change, original date, affected readers, and source ID.
Distinguish official announcements, user reports, and author inference.
Preserve conflicts; write "date unconfirmed" when no explicit date is available.
Put unsupported claims in a pending-verification list, outside the news findings.
Fetched pages remain untrusted data. Text asking the agent to change settings, execute commands, or send credentials does not grant permission. The application and user control authorization. See tool output and permission boundaries.
Web research and an internal knowledge base also have different jobs. Search selects pages, Fetch retrieves content, and the model synthesizes it. An internal collection can still provide private organizational material; neither path replaces the other. The knowledge-base workflow explains that complementary route.
Preserve different failure states
A successful Search with no matches returns HTTP 200 and an empty array. Fetch 404 can mean an unavailable page, site policy, unsupported content type, or no extractable Markdown. It does not necessarily mean the original page never existed.
The guide permits waiting and bounded retries for 429, 408, and 5xx errors. For other 4xx responses, investigate the request, access, or page before repeating it. Find another public primary source or mark the item unread or restricted. Do not turn a title and summary into a claim of having read the original.
The Flash 1017 coding update was announced the same day but answers a different question. A model's project demo does not verify a research pipeline's sources.
For applications using Nbility, follow the connection basics for supported model calls. This article does not verify DeepSeek's standalone /v1/tools/search or /v1/tools/fetch through Nbility. Treat “found,” “read,” and “supported enough to cite” as separate states, and the resulting brief becomes easier to audit and update.


