AIREITER

DeepSeek Search API 定價與限制(2026 指南)

最近更新: 2026-10-17 19:07:55

DeepSeek Search API 每 1,000 次成功請求收費 $0.75,看起來很便宜;但真正決定它是否適合你的,並不只有單價。Search 與 Fetch 都各自有每帳號每秒 5 次請求的配額。對重視成本的 Agent 來說,這很有吸引力,但前提是你得控制重複 Fetch、重試邏輯、來源覆蓋率,以及模型 Token 的消耗。

先用一張表決定怎麼用

需求建議起點原因
低成本、結構化的網頁探索直接使用 DeepSeek Search API以 JSON 回傳 URL、摘要片段、摘要內容、日期與權威度中繼資料
讀取一個已知的公開 URLDeepSeek Fetch API每 1,000 次成功 Fetch 收費 $0.75,將單一頁面轉為 Markdown
以英文研究為主、且需要廣泛來源覆蓋DeepSeek 搭配第二家搜尋供應商早期使用者測試顯示來源覆蓋存在差異,YouTube 與微信搜尋尤其偏弱
高扇出研究型 Agent選擇吞吐量更高的供應商或架構DeepSeek 對各端點分開設限,仍會限制每個工作池的吞吐量

原生 API 提供哪些能力?

DeepSeek 文件列出兩個唯讀 JSON 端點,兩者的驗證方式相同:對 api.deepseek.com 傳送 Authorization: Bearer <DeepSeek API Key> 與 Content-Type: application/json。

操作端點輸入輸出
SearchPOST /v1/tools/search搜尋字串,以及選用的結果控制參數依排名排序的結果物件
FetchPOST /v1/tools/fetch一個 HTTP 或 HTTPS URL頁面標題與擷取出的 Markdown

原生 API 與託管式聊天產品是分開的。擁有 DeepSeek API Key,不代表一般的 Chat Completions 請求會自動上網瀏覽。你的應用程式必須自行呼叫 Search 或 Fetch,或採用 DeepSeek 文件所列、已提供工具層的用戶端整合方式。

Search 與 Fetch 怎麼分工?

Search 必填的 query 長度介於 1 到 128 個 Unicode 字元。選填欄位包含介於 1 到 50 的 count、ori_question、基於 IP 的 localization 值,以及 need_content。count 預設為 10,need_content 預設為 false。

設定 need_content: true 後,Search 可能會在每筆結果的 content 欄位直接帶回頁面文字。如果內容有成功取得,就能省下一次獨立的 Fetch 呼叫。不過這不是保證:頁面無法存取或遭封鎖時,content 仍可能是空的。

Fetch 適合用在你已挑選好的 URL。它會回傳 Markdown,但每次請求只能送一個 URL。DeepSeek 表示,Fetch 是否成功取決於目標網站的可用性與存取政策,因此 Search 找得到結果,並不代表 Fetch 一定讀得到頁面。

Search 結果會包含 0 到 3 的 rerank_score,以及 -1 到 4 的 authority 等級。文件將至少 1.5 的分數,以及至少 3 的權威度值視為高品質訊號。不過這些是服務本身提供的中繼資料,並不是獨立的搜尋品質基準。

查詢語法支援不少實用篩選條件,例如 site:、-site:、引號精確片語、lang:、after: 與 before:。例如:

"DeepSeek Search API" site:api-docs.deepseek.com lang:en after:2026-10-01

這個定價會如何影響系統架構

DeepSeek 對 Search 與 Fetch 的定價皆為每 1,000 次成功請求 $0.75官方定價頁面。

請求結果是否計費?
Search 回傳 HTTP 200,且 results 陣列非空是
Search 回傳 HTTP 200,但沒有結果否
Fetch 成功回傳頁面內容是
Fetch 沒有回傳可用內容否
逾時、請求失敗或回傳錯誤否
Search 回傳 1 筆結果或 50 筆結果單次請求價格相同

端點費用並不是 AI 研究任務的完整成本。模型輸入/輸出 Token,以及檢索前後額外的 Agent 回合,仍會另外計費。

比較貼近實務的成本公式

以簡單工作流程來看,檢索成本可寫成:

successful Search calls * $0.00075
+ successful Fetch calls * $0.00075
+ model input and output token charges

若每次 Search 都有結果,進行 10,000 次搜尋的費用是 $7.50。若應用程式再為每個結果各 Fetch 一個頁面,額外 10,000 次成功 Fetch 會再增加 $7.50,尚未計入模型 Token。要求 Search 回傳 50 筆結果不會讓單次請求費用倍增,但可能提高模型需要處理的文字量。

這也是為什麼 need_content 應該有明確策略。頁面集合較小時可直接啟用;如果你想先依分數、網域、日期或權威度篩選,則適合先做純中繼資料的 Search,再針對選中的結果 Fetch。

@haolv511482 表示:「在加入 fetch 迴圈前,先檢查 content 欄位。Search 可以透過 need_content=true 回傳頁面文字……否則你的 agent 可能會花錢讀取同一頁兩次。」來源

設計時必須處理的限制與失敗情境

官方指南指出,單次 Search 最多可取得 50 筆結果;Search 與 Fetch 則各自有每帳號每秒 5 次請求的配額。即使部署多個 worker,仍需為不同端點分別設置限流器。

限制或錯誤應用程式的處理方式
每帳號 5 QPS使用共享佇列與受控並行數
最多 50 筆結果透過更精準的查詢或日期區間,在應用層自行分頁
查詢上限 128 字元產生精簡的搜尋字串,並在 ori_question 保留原始問題
HTTP 429、408 或 5xx延遲後重試,並採用指數退避
HTTP 400、401、403 或無效 URL修正請求,不要盲目重試
Fetch 回傳 HTTP 404將頁面標記為無法取得,改選其他結果
HTTP 200 但結果集為空視為有效的無結果回應,不是傳輸失敗

Fetch 對網站行為特別敏感。官方文件僅承諾受目標網站可用性與存取政策所限,並未保證 JavaScript 執行、瀏覽器工作階段、User-Agent 選擇器、截圖或保留原始 HTML。早期測試中,@jiangkoumo_ 指出高度依賴 JavaScript 渲染的網站可能回傳 404,而一般公開頁面則可成功轉成 Markdown。來源

同一批早期測試也揭露了重要的覆蓋率取捨。@bei351009016 表示,在 29 個查詢與 12 個平台的測試中,DeepSeek 與 Exa 的重疊率只有 2.1%;他形容 DeepSeek 對中文來源速度快、內容新,但在微信與 YouTube 上較弱。來源

這些早期測試僅能作為方向性參考,仍應針對你真正需要的來源類型自行驗證。

最小可行的實作模式

以下範例將檢索與答案生成分開處理;Search 已回傳內容時不再呼叫 Fetch,並在這個程序中將呼叫間隔控制在每秒 5 次。若是多 worker 部署,仍需要一個共享限流器。

import os
import threading
import time
import requests

BASE = "https://api.deepseek.com"
HEADERS = {
    "Authorization": f"Bearer {os.environ['DEEPSEEK_API_KEY']}",
    "Content-Type": "application/json",
}
RATE_LOCK = threading.Lock()
LAST_CALL = 0.0


def post_json(path, payload, attempts=3):
    global LAST_CALL
    for attempt in range(attempts):
        with RATE_LOCK:
            wait = 0.2 - (time.monotonic() - LAST_CALL)
            if wait > 0:
                time.sleep(wait)
            LAST_CALL = time.monotonic()
        response = requests.post(
            BASE + path, headers=HEADERS, json=payload, timeout=30
        )
        if response.status_code in {408, 429, 500, 502, 503, 504}:
            if attempt == attempts - 1:
                response.raise_for_status()
            time.sleep(2 ** attempt)
            continue
        response.raise_for_status()
        return response.json()


search = post_json(
    "/v1/tools/search",
    {
        "query": 'DeepSeek Search API pricing site:api-docs.deepseek.com',
        "count": 10,
        "need_content": True,
    },
)

usable = [
    result for result in search.get("results", [])
    if result.get("rerank_score", 0) >= 1.5
]

for result in usable:
    content = result.get("content") or ""
    if not content:
        fetched = post_json("/v1/tools/fetch", {"url": result["url"]})
        content = fetched.get("content", "")
    # Store title, URL, date, authority, score, and content before summarizing.
    print(result["title"], result["url"], len(content))

哪些情況不該只靠 DeepSeek?

DeepSeek 很適合低成本的來源探索,特別是你的資料語料涵蓋中文來源,而且應用可以接受每帳號 5 QPS 的限制時。但若工作負載高度依賴 YouTube、微信、重度客戶端渲染頁面,或特定搜尋引擎的排序結果,它就不是理想的單一供應商選擇。

更穩妥的是採用混合式架構:

  1. 先將廣泛且成本敏感的探索查詢送到 DeepSeek。
  2. 依網域、日期、權威度與 rerank score 篩選。
  3. 針對 DeepSeek 容易漏掉的來源類別,使用第二家供應商。
  4. 只 Fetch 篩選後的 URL。
  5. 將答案依據與已儲存的來源文字比對。

資料處理也是部署時必須評估的面向。在送出敏感查詢前,請先檢閱 DeepSeek 現行條款與自身的合規要求;社群疑慮並不能證明某種特定的資料保留政策。來源

上線前的營運檢查清單

  1. 分開記錄 Search 與 Fetch 呼叫,才能核對帳單。
  2. 在 Fetch Search 回傳的 URL 前,先檢查 content。
  3. 為所有 worker 與 subagent 設置共享的 5 QPS 限流器。
  4. 只重試 408、429 與暫時性的 5xx 回應。
  5. 儲存 URL、標題、日期、權威度、rerank score 與擷取時間。
  6. 在任何由使用者控制的 Fetch 路徑中,拒絕不支援的 scheme 與私有網路 URL。
  7. 將頁面文字視為不受信任的資料,而不是工具指令。
  8. 建立涵蓋英文官方頁面、中文來源、論壇、影片頁面與高度 JavaScript 化網站的測試集。
  9. 衡量任務總成本,包含模型 Token 與重試成本,不要只報告 Search 的價格。

DeepSeek Search API 常見問題

透過 OpenAI 相容呼叫,就會自動取得 API 搜尋能力嗎?

不會。原生 Search 端點是獨立的 POST /v1/tools/search 路由。即使用戶端採用 OpenAI 相容的 base URL,一般模型請求也不會因此自動瀏覽網頁。你需要自行加入 Search/Fetch 呼叫,或使用 DeepSeek 文件列出的用戶端整合方式。

DeepSeek Search 是所有搜尋供應商的最佳替代方案嗎?

不是。它是很有競爭力的低成本檢索選項,但早期使用者測試發現它與 Exa 的來源覆蓋不同,且在 YouTube 與微信方面存在缺口。在將它作為唯一供應商前,請先以符合自身工作負載的小型測試集驗證。