
2026/10/18 15:50
DeepSeek の検索・取得機能 – 1,000 件あたり 0.75 ドル(成功したリクエストごと)
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
DeepSeek は Web データ向けの 2 つの必須 JSON API を提供しています:自社検索エンジンを使用して構造化結果を返す Search API と、単一のページを Markdown 形式で取得する Fetch API です。両サービスとも
https://api.deepseek.com を介して動作し、エンドポイントは /v1/tools/search と /v1/tools/fetch で、Bearer トークン認証と JSON コンテンツタイプが必要です。Search API は必須の query(1〜128 文字)を受け付け、count(最大 50)などのオプションフィールドを支持し、site:, lang:, 引用フレーズなどの演算子をサポートして高度なフィルタリングが可能です。応答には title, url, snippet, summary, content, rerank_score, authority など豊富なメタデータが含まれます。Fetch API は url(最大 8192 文字、HTTP/HTTPS のみ、埋め込み認証情報は不可)を必要とし、ページタイトルと Markdown コンテンツを返します。課金は成功したリクエスト(HTTP 200 で結果/コンテンツがあるもの)あたり 1,000 件ごとに 0.75 ドルで、タイムアウト、空の応答、抽出失敗は含まれません。DeepSeek Harness、Claude Code、Codex を介したサーバーサイドツール呼び出しは現在無料ですが、2026 年 11 月 1 日よりリクエスト単位課金に切り替わります。レート制限としては、両 API でアカウントレベルで最大 5 リクエスト/秒が適用され、Fetch は追加のドメイン別制約があります。エラーハンドリングは重要です:HTTP 400/401/403/404 はリクエストの修正や残高確認が必要、402 は即座にアカウントへのチャージが必要です、408/429/5xx エラーは再試行前に待機する必要があります。取得された URL には埋め込み認証情報が含まれておらず、アクセスポリシーブロックを回避しなければなりません。これらのガイドラインに従うことで、信頼性の高いインテグレーションが確保され、API ランドスケープの進化に伴う予期せぬ失敗や課金上の驚きを防ぐことができます。本文
Search API と Fetch API の概要
Search API と Fetch API は、エージェントや RAG アプリケーションに対し、ライブの Web コンテンツへのアクセスを提供します。両 API は生の JSON API であり、DeepSeek API と同じ**ベアラ認証(Bearer 認証)**を使用します。
- Search API: クエリに対して Web ページを検索し、構造化された結果を返します。(DeepSeek の社内検索エンジンによる提供)
- Fetch API: 単一の Web ページを取得し、内容をMarkdown 形式で返します。
ベース URL:
https://api.deepseek.com
エンドポイント
| メソッド | 種別 | パス | URL |
|---|---|---|---|
| POST | Search | | 検索 |
| POST | Fetch | | 取得 |
詳細なスキーマについては公式リファレンスを参照してください。
認証
すべてのリクエストにおいて、以下のヘッダーを送信してください。
| ヘッダー | 必須 | 値の例 |
|---|---|---|
| はい | |
| はい | |
リクエスト例
cURL (Search)
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 }'
Python (requests)
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(f"Title: {result['title']}") print(f"URL: {result['url']}") print(f"Summary: {result['summary']}\n")
Search API の詳細
リクエストパラメータ
| フィールド | タイプ | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
| string | はい | なし | 検索クエリ(1~128 バイト、空白のみで構成されない)。演算子サポート。 |
| integer | いいえ | | 返す結果数(範囲:1~50)。 |
| string | いいえ | なし | ユーザーの元の質問。クエリ理解向上用(最大 128 文字)。 |
| string | いいえ | | 地域最適化用の IP アドレス。 |
| boolean | いいえ | | ページ本文を含むかどうか。false の場合、常に空文字列が返る。 |
注: リクエストボディ内の不明瞭なフィールドは無視されます。
検索演算子
クエリに以下の演算子を組み合わせて使用できます。複数の演算子は
OR で結合可能です。
| 演算子 | 例 | 説明 |
|---|---|---|
| | 指定サイトのみへの結果制限(複数:スペース区切り)。 |
| | 除外するサイトの指定。 |
| | 特定の単語を含むページを除外。 |
| | 正確なフレーズを含むページを除外。 |
| | 正確なフレーズに一致する結果のみ返す。 |
| | 言語コードによる制限(カンマ区切り)。 |
| | 指定日付以降の結果制限。 |
| | 指定日付以前の結果制限。 |
演算子使用例
{ "query": "DeepSeek site:github.com OR site:huggingface.co lang:en after:2025", "count": 10 }
レスポンス形式
成功(HTTP 200)時、
results アレイが返されます。一致しない場合は空アレイ {} が返ります。
| フィールド | タイプ | 説明 |
|---|---|---|
| number | 関連度スコア(0~3)。1.5 以上が高品質と判断されます。 |
| string | 検索結果のタイトル。 |
| string | 結果の URL。 |
| string | UI 表示用の短いサマリー(約 100~200 文字)。 |
| string | モデルによる読解用の長めサマリー(約 600~800 文字)。 |
| string | ページ本文。need_content=false の場合空。 |
| string | null |
| string | null |
| string | null |
| integer | 権威レベル(0~4;-1 は不明。3 以上は高権威)。 |
Fetch API の詳細
リクエストパラメータ
| フィールド | タイプ | 必須 | 説明 |
|---|---|---|---|
| string | はい | 取得対象の URL。最大 8192 文字。HTTP/HTTPS、ホスト必須。ユーザー名・パスワード不可。 |
リクエスト例
cURL
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" }'
Python
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"]) # Markdown 形式で取得
レスポンス形式
| フィールド | タイプ | 説明 |
|---|---|---|
| string | ページタイトル(利用不可な場合空)。 |
| string | Markdown テキスト形式のページ内容。 |
注意: Fetch は対象サイトの利用可能性とアクセスポリシーにより制限されます。
エラーハンドリング
エラーは OpenAI 互換形式に従います。
param フィールドは常に null です。
{ "error": { "message": "'count' must be between 1 and 50", "type": "invalid_request_error", "param": null, "code": "invalid_request_error" } }
HTTP ステータスコード一覧
| ステータス | 原因 |
|---|---|
| リクエストヘッダーまたはボディが無効(JSON 破損など)。 |
| API キーの欠落または無効。 |
| 口座残高不足。 |
| Fetch リクエストがセキュリティポリシーにより拒否。 |
| ページコンテンツ取得失敗(URL 不可、ブロック済み、抽出不可能など)。 |
| リクエストボディ読み取りタイムアウト。 |
| リクエストボディが大きすぎる。 |
| QPS(秒あたリクエスト数)制限超過。 |
| 内部サーバーエラー。 |
| 下流リクエストタイムアウト。 |
再試行ガイドライン
- 読み取り専用 API です。
- HTTP 408, 429, 5xx: 待機後、再試行してください。
- HTTP 402: 口座精算を完了させるまで再試行不可。
- 他 4xx エラー: リクエスト内容を変更しない限り再試行しないでください。
請求方法
トークン数や結果数ではなく、成功したリクエストごとに課金されます(空の結果や失敗は非課金)。
| API | 単位 | 単価 (1,000 回あたり) |
|---|---|---|
| Search | 成功リクエスト | $0.75 |
| Fetch | 成功リクエスト | $0.75 |
- 課金条件: HTTP 200 を返し、有効な結果(Search: 非空アレイ / Fetch: コンテンツあり)を生成した場合のみ。
- count パラメータ: 返す結果の数を制御するだけで、1 リクエストあたりの価格には影響しません。
重要: DeepSeek Harness, Claude Code, Codex を通じて API を使用する場合は、サーバーサイドでのツール呼び出しが無料で利用可能です(課金開始:2026 年 11 月 1 日 北京時間 00:00 から)。
レート制限
各アカウントに対し、Search と Fetch は独立して制限されます。
| API | QPS リミット (1 秒あたり) |
|---|---|
| Search | 5 |
| Fetch | 5 |
制限の詳細
- アカウントレベル:どの API キーを使用したかに関わらず合計で計算され、超過時は HTTP 429 が返ります。
- ドメイン別: Fetch はさらに「ドメイン別の QPS リミット」も適用され、超過時も HTTP 429 が返されます。