DeepSeekの検索・取得API:成功リクエスト1000件あたり0.75ドル
DeepSeek search and fetch – $0.75 per 1000 successful requests (api-docs.deepseek.com)
要約
DeepSeekは、エージェントやRAGアプリケーション向けに、ライブWebコンテンツにアクセスするためのSearch APIとFetch APIを発表しました。Search APIはクエリに基づいてWebページを検索し、Fetch APIは指定されたURLのページコンテンツをMarkdown形式で取得します。これらのAPIは、それぞれ1000件の成功リクエストあたり0.75ドルの料金体系で提供されます。
全文翻訳
Search & Fetch
Search APIとFetch APIは、エージェントやRAGアプリケーションにライブのウェブコンテンツへのアクセスを提供します。
- Search API: クエリに基づいてウェブページを検索し、構造化された結果を返します。DeepSeek独自の検索エンジンによって駆動されています。
- Fetch API: 単一のウェブページを取得し、そのコンテンツをMarkdown形式で返します。
どちらも生のJSON APIです。DeepSeek APIと同じベアラートークン認証を使用します。
ベース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 |
完全なリクエストおよびレスポンススキーマについては、Search API Reference および Fetch API Reference を参照してください。
認証
リクエストヘッダーにAPIキーとJSONコンテンツタイプを送信してください。
| Header | Required | Value |
|---|---|---|
Authorization | Yes | Bearer <DeepSeek API Key> |
Content-Type | Yes | application/json |
Search API
リクエスト
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"])
リクエストフィールド:
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
query | string | Yes | - | 検索クエリは1〜128 Unicode文字を含み、空白のみであってはならず、以下のクエリ演算子をサポートします。 |
count | integer | No | 10 | 返される結果の数。1から50の間です。 |
ori_question | string | No | - | 検索をトリガーしたユーザーの元の質問。1〜128文字で、クエリの理解を向上させるために使用されます。null は提供なしとして扱われます。 |
localization | string | No | "" | 検索結果をローカライズするために使用されるオプションのIPアドレス。 |
need_content | boolean | No | false | content でページコンテンツを返すかどうか。false の場合は常に空文字列です。 |
リクエストボディ内の不明なフィールドは無視されます。
クエリ演算子
クエリは検索構文をそのまま転送します。以下の例は演算子と検索語を組み合わせていますが、1つのクエリに複数の演算子を組み合わせることができます。
| Operator | Example | Description |
|---|---|---|
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
}
レスポンス
成功したリクエストは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 の各項目には以下が含まれます。
| Field | Type | Description |
|---|---|---|
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 or null | サイト名。利用できない場合は null です。 |
site_icon | string or null | サイトアイコンのURL。利用できない場合は null です。 |
date | string or null | UTCでの公開時間。RFC 3339形式。不明な場合は null です。 |
authority | integer | ページの権威性ティア。0〜4(-1 は不明)。3以上の値は非常に権威のあるソースを示します。 |
Fetch API
リクエスト
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"])
リクエストフィールド:
| Field | Type | Required | Description |
|---|---|---|---|
url | string | Yes | フェッチするページURL。最大8192文字で、ホストを持つHTTPまたはHTTPS URLである必要があり、ユーザー名やパスワードを含んではいけません。 |
レスポンス
{
"title": "Example article",
"content": "# Example article\n\nArticle content."
}
| Field | Type | Description |
|---|---|---|
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 Status | Description |
|---|---|
| 400 | リクエストヘッダーまたはボディが無効です。JSONの形式が不正な場合や、フィールドの値が無効な場合を含みます。 |
| 401 | APIキーが欠落しているか無効です。 |
| 402 | アカウントの残高が不足しています。 |
| 403 | Fetchリクエストがセキュリティポリシーによって拒否されました。 |
| 404 | Fetchが、URLが利用できない、サイトポリシーによってURLがブロックされている、ターゲットサイトからのエラー、サポートされていないコンテンツタイプ、または抽出可能なMarkdownコンテンツがないページなどにより、使用可能なページコンテンツを取得できませんでした。 |
| 408 | リクエストボディの読み取りがタイムアウトしました。 |
| 413 | リクエストボディが大きすぎます。 |
| 429 | SearchまたはFetchのQPS制限を超過しました。 |
| 500 | 内部サーバーエラーが発生しました。 |
| 504 | ダウンストリームリクエストがタイムアウトしました。 |
SearchとFetchは読み取り専用です。HTTP 408、429、または5xxエラーの場合は、待ってから再試行してください。HTTP 402の場合は、アカウントにチャージしてから再試行してください。他の4xxエラーは、リクエストを変更せずに再試行しないでください。
請求
SearchとFetchは、トークン数や返される結果の数ではなく、成功したリクエストごとに課金されます。
| API | Unit | Price |
|---|---|---|
| Search | Per 1,000 successful requests | $0.75 |
| Fetch | Per 1,000 successful requests | $0.75 |
リクエストは、HTTP 200を返し、結果を生成した場合(Searchは空でない results 配列を返す必要があり、Fetchはページコンテンツを返す必要があります)にのみ課金対象となります。失敗したリクエスト、空の検索結果、タイムアウトは課金されません。count は返される結果の数を制御するだけで、リクエストあたりの価格には影響しません。
注意: DeepSeek Harness、Claude Code、またはCodexを通じてDeepSeek APIを使用する場合、サーバーサイドのツールコールは既にSearchおよびFetch APIにヒットしています。これらのコールは現在無料です。リクエストあたりの課金は、北京時間2026年11月1日午前0時に開始されます。
レート制限
アカウントごとに、SearchとFetchは独立して制限され、一方へのトラフィックは他方のクォータを消費しません。
| API | QPS Limit |
|---|---|
| Search | 100 |
| Fetch | 25 |
QPS(Requests Per Second)制限は、どのAPIキーが使用されているかに関わらず、アカウントレベルで計算され、モデルの同時実行制限とは別です。アカウントレベルのQPS制限を超えるリクエストはHTTP 429を受け取ります。アカウントレベルの制限に加えて、FetchはドメインごとのQPS制限も対象となり、その制限を超えるリクエストもHTTP 429を受け取ります。