DeepSeek Search & Fetch 官方文件翻譯與 Hacker News 網友反應

DeepSeek 把 agent 用的搜尋與抓取 API 壓到每千次 0.75 美元。本文含官方文件全文翻譯、HN 550 分討論的六個爭點,以及一頁視覺懶人包。

DeepSeek 官方文件新增 Search 與 Fetch 兩支工具 API,讓 agent 與 RAG 應用直接取用即時網路內容。兩支 API 走同一組 bearer 認證,計價按成功請求次數:每 1,000 次 0.75 美元,與回傳幾筆結果無關。

貼上 Hacker News 後,討論聲量不小:一則貼文在 19 小時內收到 550 分、227 則留言(34 則一級留言)。討論方向卻不在「好方便」,而是三件事:價格打到多低、反爬蟲牆能不能過、「會不會付錢給被爬的內容作者」這句,沒有人正面回答。

本文分三部分:官方文件全文翻譯、Hacker News 網友反應整理,最後是一頁視覺懶人包。

官方文件翻譯

搜尋與抓取(Search & Fetch)

Search API 與 Fetch API 讓 agent 與 RAG 應用程式能夠存取即時網路內容。兩者都是純 JSON API,使用與 DeepSeek API 相同的 bearer 認證。Base URL 為 https://api.deepseek.com:

API Endpoint
Search POST https://api.deepseek.com/v1/tools/search
Fetch POST https://api.deepseek.com/v1/tools/fetch

完整的 request 與 response schema 請見官方 Search API Reference 與 Fetch API Reference。

認證

在 request headers 中送出你的 API key 與 JSON content type:

Header 必填 值
Authorization 是 Bearer <DeepSeek API Key>
Content-Type 是 application/json

Search API:請求


curl https://api.deepseek.com/v1/tools/search \
  -H "Authorization: Bearer <DeepSeek API Key>" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "DeepSeek V4 release",
    "count": 5,
    "need_content": true
  }'

import requests

response = requests.post(
    "https://api.deepseek.com/v1/tools/search",
    headers={
        "Authorization": "Bearer <DeepSeek API Key>",
    },
    json={
        "query": "DeepSeek V4 release",
        "count": 5,
        "need_content": True,
    },
)
response.raise_for_status()

for result in response.json()["results"]:
    print(result["title"], result["url"])
    print(result["summary"])

Request 欄位:

欄位 型別 必填 預設值 說明
query string 是 無 搜尋查詢,需含 1 至 128 個 Unicode 字元,不可全為空白,支援下方列出的查詢運算子。
count integer 否 10 回傳結果數量,介於 1 至 50。
ori_question string 否 無 觸發本次搜尋的使用者原始問題,1 至 128 字元,用於增進查詢理解;傳 null 視為未提供。
localization string 否 "" 選用的 IP 位址,用於將搜尋結果本地化。
need_content boolean 否 false 是否在 content 中回傳頁面內容;為 false 時 content 一律為空字串。

request body 中的未知欄位會被忽略。

查詢運算子

查詢會連同其搜尋語法原樣轉送。下列範例為運算子搭配搜尋詞;你可以在單一查詢中組合多個運算子。

運算子 範例 說明
site: DeepSeek site:github.com 將結果限制在指定網站;要指定多個網站,以空格分隔各 site: 子句並用 OR 連接,例如 DeepSeek site:github.com OR site:huggingface.co。
-site: DeepSeek -site:example.com 排除指定網站;多個網站以空格分隔。
- DeepSeek -advertisement 排除含該詞的頁面;多個詞以空格分隔。
-"..." DeepSeek -"release notes" 排除含該完整片語的頁面,片語可含空格;多個片語以空格分隔。
"..." DeepSeek "exact phrase" 比對完整片語;多個片語以空格分隔。
lang: DeepSeek lang:zh,en 將結果限制在指定語言代碼;多個代碼以逗號分隔,例如 lang:zh,en。
after: DeepSeek after:2025 或 DeepSeek after:2025-01-01 將結果限制為在某日期之後發布的頁面。
before: DeepSeek before:2026 或 DeepSeek before:2026-06-01 將結果限制為在某日期之前發布的頁面。

例如:


{
  "query": "DeepSeek site:github.com OR site:huggingface.co lang:en after:2025",
  "count": 10
}

Search API:回應

成功請求會回傳 HTTP 200 與一個 results 陣列。正常搜尋但無結果時,回傳空陣列。


{
  "results": [
    {
      "rerank_score": 2.4,
      "title": "DeepSeek V4 model released",
      "url": "https://example.com/deepseek-v4",
      "snippet": "DeepSeek V4 is now available, with tool calling and long-context support.",
      "summary": "DeepSeek has released the V4 model. The release adds improved tool calling and long-context support for agent workflows.",
      "content": "DeepSeek V4 is now generally available...",
      "site_name": "Example News",
      "site_icon": "https://example.com/favicon.ico",
      "date": "2026-06-01T00:00:00+00:00",
      "authority": 3
    }
  ]
}

results 中每一項包含:

欄位 型別 說明
rerank_score number 0 至 3 的相關性分數,綜合相關性、權威性與時效性等訊號;1.5 以上視為高品質結果。
title string 結果標題。
url string 結果的 URL。
snippet string 與查詢相關的簡短摘要,通常 100 至 200 字元,供 UI 顯示用。
summary string 與查詢相關的長摘要,通常 600 至 800 字元,供模型閱讀用。
content string 頁面內容;當 need_content 為 false 或內容不可用時為空。
site_name string 或 null 網站名稱,不可用時為 null。
site_icon string 或 null 網站 icon 的 URL,不可用時為 null。
date string 或 null 發布時間(UTC),格式為 RFC 3339;未知時為 null。
authority integer 頁面的權威等級,0 至 4(-1 表示未知);3 以上代表高度權威來源。

Fetch API


curl https://api.deepseek.com/v1/tools/fetch \
  -H "Authorization: Bearer <DeepSeek API Key>" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://example.com/article"
  }'

import requests

response = requests.post(
    "https://api.deepseek.com/v1/tools/fetch",
    headers={
        "Authorization": "Bearer <DeepSeek API Key>",
    },
    json={"url": "https://example.com/article"},
)
response.raise_for_status()

page = response.json()
print(page["title"])
print(page["content"])

Request 欄位:

欄位 型別 必填 說明
url string 是 要抓取的頁面 URL,最長 8192 字元,須為帶有 host 的 HTTP 或 HTTPS URL,且不得包含使用者名稱或密碼。

回應:


{
  "title": "Example article",
  "content": "# Example article\n\nArticle content."
}
欄位 型別 說明
title string 頁面標題,取不到時為空字串。
content string 抓取到的頁面內容,以 Markdown 文字表示。

抓取行為受目標網站的可用性與存取政策限制。

錯誤處理

錯誤遵循 OpenAI 相容的錯誤格式,param 欄位一律為 null。


{
  "error": {
    "message": "'count' must be between 1 and 50",
    "type": "invalid_request_error",
    "param": null,
    "code": "invalid_request_error"
  }
}
HTTP 狀態碼 說明
400 request headers 或 body 無效,包含 JSON 格式錯誤或欄位值不合法。
401 API key 缺少或無效。
402 帳戶餘額不足。
403 Fetch 請求被安全政策拒絕。
404 Fetch 無法取得可用的頁面內容,例如 URL 不可用、URL 被網站政策封鎖、目標網站回報錯誤、不支援的 content type,或頁面無可萃取的 Markdown 內容。
408 讀取 request body 逾時。
413 request body 過大。
429 超過 Search 或 Fetch 的 QPS 限制。
500 發生內部伺服器錯誤。
504 下游請求逾時。

Search 與 Fetch 皆為唯讀。遇到 HTTP 408、429 或 5xx 錯誤時,請稍候重試。遇到 HTTP 402 請先儲值再重試。其他 4xx 錯誤在未修改請求內容前不要重試。

計費

Search 與 Fetch 依成功請求次數計費,而非依 token 或回傳結果數量:

API 計價單位 價格
Search 每 1,000 次成功請求 $0.75
Fetch 每 1,000 次成功請求 $0.75

只有在回傳 HTTP 200 且產生結果時才計費:Search 須回傳非空的 results 陣列,Fetch 須回傳頁面內容。失敗的請求、空搜尋結果與逾時都不計費。count 僅控制回傳結果數量,不影響每請求價格。

官方另註明一段優惠:Search API 上線後頭兩週內,從 Claude Code 內建 Web Search 或 Codex web_search 送出的請求,不收費用;兩週後才適用標準價格。

速率限制

每個帳戶的 Search 與 Fetch 各自獨立限制,兩者流量互不消耗對方配額:

API QPS 上限
Search 5
Fetch 5

QPS(每秒請求數)限制以帳戶層級計算,不論使用哪一組 API key,且與模型併發限制分開計算。超過帳戶層級 QPS 上限的請求會收到 HTTP 429。除帳戶層級限制外,Fetch 另受每個網域的 QPS 限制,超過該限制同樣會收到 HTTP 429。

Hacker News 網友反應

討論串由 fagnerbrack 提交,標題就是價格本身:「DeepSeek search and fetch – $0.75 per 1000 successful requests」。到本文截稿,550 分、227 則留言,其中 34 則是直接回覆。

定價:全場最低,但便宜不等於好用

最大公約數是價格。有網友整理出同業行情,DeepSeek 幾乎是付費搜尋 API 的地板價,只在留言裡被找到一家更低:

供應商 每 1,000 次 備註
Ceramic.ai $0.25 只做詞彙比對,索引偏舊
DeepSeek Search / Fetch $0.75 搜尋與抓取同價
Serper $1 量大有折扣
LinkUp $1(fetch) search 為 $5
SERP API 約 $1.50 擅長繞過 Google 反爬
Mojeek £2 自有索引,不是代理 SERP
Exa $4 語意檢索,訊噪比高
Brave Search API $5 無
Kagi API $12 $10 月費訂閱吃到飽,但拿去接 LLM 違反 TOS

thombles 直接拿 Brave 5 美元、Kagi 12 美元當對照;Havoc 補上 Exa 的 4 美元。frenchtoast8 提醒 Kagi 訂閱制雖然無限搜尋,但憑證接 LLM 屬違反條款。tinyhouse 的結論更直接:這價格讓 Parallel、Exa 這些公司的估值很難自圓其說。

也有人提醒便宜要看品質。loehnsberg 說只看成本會忽略品質差異,反問「DeepSeek 的搜尋與抓取到底多好」;串裡只有 ggnore7452 真的跑了 benchmark,答案不太好。

品質實測:便宜,但沒那麼好用

ggnore7452 說自己在 web-fetch benchmark 上跑了幾個測試,結論是「search 與 fetch 都不太好,雖然真的很便宜」,建議要用免費的直接用 Jina,要付費就選 Parallel、Firecrawl、Tavily 或 Exa。shaunpud 抓到另一個細節:抓一個帶超連結的頁面,回來的只有純文字,連結全掉,實用性打折。

josteink 則對速率限制有意見,5 QPS 讓他無法放進任何有併發使用者的應用,懷疑自己是不是讀錯;alexjurkiewicz 回了兩個字級的答案:「這是給 agentic 用的。」

反爬蟲與倫理:整串最大戰場

節點數最多的一條(子樹 56 則)由 Doohickey-d 開場,問的是最實際的問題:遇到 Cloudflare 驗證或 Anubis 這類反爬牆,回傳的是錯誤、沒用的內容,還是真正想抓的內容?

實務派的答案很一致:能過,但要工。m00dy 直說除了 Google reCAPTCHA v3,其餘都好繞,前提是要有自家的代理池;他自己做過 datamint.xyz,說現行可行組合是打過反指紋修補的 Firefox 分支加高品質住宅代理,光基本設定就要十幾個程式層級的修補。另一位則指出 curl-impersonate 這種把指紋偽裝成 Chrome/Firefox 的工具就很好用。

反對方是這條線真正吵起來的地方。thisismyanon2 直接點名:「謝謝你把正在摧毀網路的軍備競賽又推高了一層」,說他連看 Apple 討論區、保險公司入口網站、繳縣稅、逛 Digikey 都要先過 Cloudflare 或 Anubis。latexr 也直說:「你用自己的獲利,換來所有人更差的生活。」維護方最有力的反駁來自 stavros:只要有利潤,就一定有人做,就像有人為供應鏈攻擊買下整家經銷商。

另一條分支吵得更兇:美國大廠的 agent 是不是也在繞牆。weird-eye-issue 說 Claude 與 ChatGPT 會送明確的 user agent,讓站方好擋;ReptileMan 立刻反駁說最近的爆料讓這句話很可疑。bulder 補上觀察:這些工具遇到被封鎖時,會改叫 curl 或自己寫 Python 送不同的 user agent,而不是尊重站方意願。gvfsa 一派則回:「它們服務的是使用者,不是網站主;不想被存取就別放上網。」站長 MintsJohn 的證詞跟這條線最相關:真正逼他掛上 Anubis 的是 Anthropic、OpenAI 與 Perplexity,這三家佔了他流量的 99%,而且完全無視 robots.txt。

中國審查與出口 IP:一則匿名實測

整串最具體的爆料來自 czk,他實測後指出三件事:政治敏感的查詢會回傳 0 則結果;Fetch 的出口 IP 看起來在華為雲香港;Fetch 工具的 UA 是 Linux Firefox 149、語言設為中國,而且會執行 JavaScript,推測底層是 camoufox 一類的方案。larme 則從另一個角度問:這有沒有審查?如果沒有,中國大陸使用者可以拿它當繞過防火牆的工具。arational 認為照慣例會分成國內與國際兩套。

截至截稿,DeepSeek 沒有在串裡回應這條。

「這些服務會存在,只因 Google 不做付費 API」

mjmvisser 一句話定調:這類服務之所以存在,是因為 Google 拒絕提供付費搜尋 API。底下多數人同意,ijidak 覺得這對 Google 是現成的生意,還能在新創與企業端綁住使用者;jsrozner 的看法更陰謀論:Google 的目標不是提供搜尋,而是蒐集關於人的資料並變現,一開 API 就毀了自己的監控體系。londons_explore 提了個折衷做法:把廣告引擎照跑一遍、估出損失的廣告收入,再向呼叫方收取等值費用。

londons_explore 在另一則留言還預測,既然 SEO 是門大生意、agent 搜尋又是未來,未來搜尋 API 可能變成負價:供應商倒貼使用者,換取影響網路上誰能被看見的權力。

模型定位,以及離題的 vibe coding 大戰

dsco 認為 DeepSeek Flash 挑在 Anthropic IPO 前出現,時機對後者不利,並稱它與 SOTA 模型並駕齊驅,搜尋是它的差異點。這句被反駁得很徹底:redox99 說跟 Opus 5.5 根本不是同級;altmanaltman 說連 DeepSeek 自己都不敢這樣宣稱;lejalv 則提出折衷版「把成本算進去可能領先」。Rodmine 的說法最生動:這不是並駕齊驅,而是 DeepSeek 明顯站得更高,高到對方的脖子只到它腰部。

這條支線後來整條走偏,變成「vibe coding 會不會殺死 SaaS」的長篇論戰:IshKebab 說公司內部有人一週就 vibe code 出取代第三方 SaaS 的版本,Jira 這種工具沒人會再付每人每月 15 美元;shafyy 反問誰來維護,rjh29 則指出還有人要 on-call 與 SLA。

值得注意的業配密度

這串的閱讀門檻不只在長度,還在利益揭露。至少五處是自家產品或雇主:nikvdp 推自己的 searxng-ai-kit、m00dy 提自己的 datamint.xyz、jeromechoo 表明自己在 Diffbot、BrunoBernardino 是 uruky 創辦人主動現身、apiclay 說自家的搜尋 API 週一上線。看「又便宜又好用」這類評論時,先打折扣。

其他雜訊裡的訊號

WHOIS 級的抱怨也有幾則。Jskewel 說自家公司對每頁被爬收 1 美元,想知道帳單該寄給誰,結果被嘲諷式回敬;0-bad-sectors 問 DeepSeek 會不會付錢給被爬的內容作者,回應一面倒:不會,而且這會讓寫內容的動機更弱。deepseek 的商業結構也有人提:vitaflo 提醒 DeepSeek 由 High Flyer 持有、並非本業,母公司主要收入來自對沖基金。

串裡也有正面體驗。lifeisloving 說這幾個月來,DeepSeek 瀏覽器版已取代他的日常搜尋,不推銷東西、找得到冷門論文與中文研究,還抱怨這種正面評論馬上被 downvote。

一頁懶人包

討論串太長,另做了一頁視覺懶人包:一份結論、六大爭論主題、同業價格對照、值得看的實測與業配提醒,一分鐘看完。

手機版若 iframe 顯示不全,可直接開備援連結:https://static.blog.derekhsu.net/deepseek-search-fetch-hn.html

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *