HN 日本語サマリー

← 一覧へ戻る
AI・機械学習

DeepSeekの検索・取得API:成功リクエスト1000件あたり0.75ドル

DeepSeek search and fetch – $0.75 per 1000 successful requests (api-docs.deepseek.com)

544 pointsby fagnerbrack257 コメント

要約

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 です。

APIEndpoint
SearchPOST https://api.deepseek.com/v1/tools/search
FetchPOST https://api.deepseek.com/v1/tools/fetch

完全なリクエストおよびレスポンススキーマについては、Search API Reference および Fetch API Reference を参照してください。


認証​

リクエストヘッダーにAPIキーとJSONコンテンツタイプを送信してください。

HeaderRequiredValue
AuthorizationYesBearer <DeepSeek API Key>
Content-TypeYesapplication/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"])

リクエストフィールド:

FieldTypeRequiredDefaultDescription
querystringYes-検索クエリは1〜128 Unicode文字を含み、空白のみであってはならず、以下のクエリ演算子をサポートします。
countintegerNo10返される結果の数。1から50の間です。
ori_questionstringNo-検索をトリガーしたユーザーの元の質問。1〜128文字で、クエリの理解を向上させるために使用されます。null は提供なしとして扱われます。
localizationstringNo""検索結果をローカライズするために使用されるオプションのIPアドレス。
need_contentbooleanNofalsecontent でページコンテンツを返すかどうか。false の場合は常に空文字列です。

リクエストボディ内の不明なフィールドは無視されます。

クエリ演算子​

クエリは検索構文をそのまま転送します。以下の例は演算子と検索語を組み合わせていますが、1つのクエリに複数の演算子を組み合わせることができます。

OperatorExampleDescription
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 の各項目には以下が含まれます。

FieldTypeDescription
rerank_scorenumber0から3までの関連性スコア。関連性、権威性、鮮度などのシグナルを組み合わせたもので、1.5以上のスコアは高品質な結果と見なされます。
titlestring結果のタイトル。
urlstring結果のURL。
snippetstringクエリに関連する短い要約。通常100〜200文字で、UI表示用です。
summarystringクエリに関連する長い要約。通常600〜800文字で、モデルによる読み取り用です。
contentstringページコンテンツ。need_content が false の場合、またはコンテンツが利用できない場合は空です。
site_namestring or nullサイト名。利用できない場合は null です。
site_iconstring or nullサイトアイコンのURL。利用できない場合は null です。
datestring or nullUTCでの公開時間。RFC 3339形式。不明な場合は null です。
authorityintegerページの権威性ティア。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"])

リクエストフィールド:

FieldTypeRequiredDescription
urlstringYesフェッチするページURL。最大8192文字で、ホストを持つHTTPまたはHTTPS URLである必要があり、ユーザー名やパスワードを含んではいけません。
レスポンス​
{
  "title": "Example article",
  "content": "# Example article\n\nArticle content."
}
FieldTypeDescription
titlestringページのタイトル。タイトルが利用できない場合は空です。
contentstringフェッチされたページコンテンツをMarkdownテキストとして返します。

フェッチは、ターゲットサイトの可用性とアクセスポリシーの対象となります。


エラー​

エラーはOpenAI互換のエラー形式に従います。param フィールドは常に null です。

{
  "error": {
    "message": "'count' must be between 1 and 50",
    "type": "invalid_request_error",
    "param": null,
    "code": "invalid_request_error"
  }
}
HTTP StatusDescription
400リクエストヘッダーまたはボディが無効です。JSONの形式が不正な場合や、フィールドの値が無効な場合を含みます。
401APIキーが欠落しているか無効です。
402アカウントの残高が不足しています。
403Fetchリクエストがセキュリティポリシーによって拒否されました。
404Fetchが、URLが利用できない、サイトポリシーによってURLがブロックされている、ターゲットサイトからのエラー、サポートされていないコンテンツタイプ、または抽出可能なMarkdownコンテンツがないページなどにより、使用可能なページコンテンツを取得できませんでした。
408リクエストボディの読み取りがタイムアウトしました。
413リクエストボディが大きすぎます。
429SearchまたはFetchのQPS制限を超過しました。
500内部サーバーエラーが発生しました。
504ダウンストリームリクエストがタイムアウトしました。

SearchとFetchは読み取り専用です。HTTP 408、429、または5xxエラーの場合は、待ってから再試行してください。HTTP 402の場合は、アカウントにチャージしてから再試行してください。他の4xxエラーは、リクエストを変更せずに再試行しないでください。


請求​

SearchとFetchは、トークン数や返される結果の数ではなく、成功したリクエストごとに課金されます。

APIUnitPrice
SearchPer 1,000 successful requests$0.75
FetchPer 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は独立して制限され、一方へのトラフィックは他方のクォータを消費しません。

APIQPS Limit
Search100
Fetch25

QPS(Requests Per Second)制限は、どのAPIキーが使用されているかに関わらず、アカウントレベルで計算され、モデルの同時実行制限とは別です。アカウントレベルのQPS制限を超えるリクエストはHTTP 429を受け取ります。アカウントレベルの制限に加えて、FetchはドメインごとのQPS制限も対象となり、その制限を超えるリクエストもHTTP 429を受け取ります。