/v1/searches エンドポイントを使用すると、自然言語クエリでウェブを検索し、重複排除された関連リンクのリストをタイトルと説明付きで取得できます。
- 英語でクエリを送信
- ウェブ全体から構造化されたリンクを取得
- オプションで、返されたすべての URL を一度にスクレイピングし、
markdown_content/html_contentをレスポンスに直接埋め込む - ドメインでフィルタリングし、結果の数を制御し、スクレイピングのウォールクロックを制限
インストール
基本的な使い方
自然言語クエリを送信し、関連リンクのリストを受け取ります。リクエストパラメータ
| フィールド | タイプ | 必須 | デフォルト | 説明 |
|---|---|---|---|---|
query | string | yes | — | 自然言語での検索クエリ。 |
limit | integer | no | 12 | 重複排除後に返すリンクの最大数。1から25の間で指定可能。 |
include_domains | string[] | no | [] | 結果をこれらのドメインに限定。ホスト名のみ — 先頭の http(s):// と末尾のスラッシュは自動的に削除されます。 |
exclude_domains | string[] | no | [] | これらのドメインからの結果を除外。ホスト名のみ — 先頭の http(s):// と末尾のスラッシュは自動的に削除されます。 |
scrape_options | object | no | — | 提供された場合、返されたすべてのリンクがスクレイピングされ、そのコンテンツがレスポンスに埋め込まれます。以下の scrape_options を参照。 |
結果の数を制限する
ドメインでフィルタリングする
include_domains は結果をホワイトリストに絞り、exclude_domains は不要なソースを除外します。これらは組み合わせ可能です。
scrape_options
scrape_options を渡して、返されたすべての URL を並列にスクレイピングし、各リンクにレンダリングされたコンテンツを直接埋め込みます。これにより、/v1/searches と /v1/scrapes を別々に呼び出すのに比べて、結果ごとのラウンドトリップが節約されます。
| フィールド | タイプ | デフォルト | 説明 |
|---|---|---|---|
formats | string[] | ["markdown"] | 各リンクに添付する出力フォーマット。/v1/searches では "html" と "markdown" のみサポート。["html", "markdown"] を渡して両方を受け取る。 |
remove_css_selectors | string | "default" | /v1/scrapes に転送されます。"default" はナビゲーション/フッター/スクリプト/スタイル/svg/ダイアログのノイズを削除します。"none" を使用して無効にするか、削除するセレクタの JSON 文字列化された配列を渡す。 |
timeout | integer | 25 | スクレイピングフェーズ全体のウォールクロックの予算(秒単位)。1から60の間で指定可能。これが経過すると、検索は即座に終了し、完了していないリンクのコンテンツフィールドは null になります。 |
振る舞い
- すべてのリンクは並列にスクレイピングされます。
timeoutは全体のバッチを制限し、各リンク個別ではありません。 - リンクごとのスクレイピング失敗(ネットワークエラー、個々のページのタイムアウト)は、そのリンクの
markdown_content/html_contentをnullにし、他のリンクは通常通り返されます。 - グローバル
timeoutがすべてのスクレイピングが完了する前に経過した場合、検索は即座にリンクを持って応答します — すでに完了したスクレイピングはそのコンテンツを保持し、進行中のものはnullコンテンツで返されます。 reddit.com/.../comments/...URL の場合、リクエストは自動的に@olostep/reddit-postパーサーを通じてルーティングされ、構造化された JSON がクリーンなマークダウン + 基本 HTML にレンダリングされます。- 結合されたインラインコンテンツが 9MB を超える場合、コンテンツフィールドは無効になり、
result.size_exceededがtrueに設定され、result.json_hosted_urlから完全なペイロードを取得できます。
スクレイピングの例
レスポンス
レスポンスとしてsearch オブジェクトを受け取ります。search オブジェクトには id、元の query、credits_consumed、および links のリストを含む result が含まれています。
result.links の各リンクには以下が含まれます:
| フィールド | タイプ | 説明 |
|---|---|---|
url | string | 検索結果の URL。 |
title | string | 結果ページのタイトル。 |
description | string | 結果を説明する短いスニペット。 |
markdown_content | string | ページのマークダウンコンテンツ。scrape_options.formats に "markdown" が含まれる場合のみ存在。スクレイピングが失敗、空、またはグローバルタイムアウトに達した場合は null。 |
html_content | string | ページの HTML コンテンツ。scrape_options.formats に "html" が含まれる場合のみ存在。失敗/タイムアウト時は null。 |
result.json_hosted_url でホストされた JSON ファイルとしても利用可能です — result.size_exceeded が true の場合に便利です。
過去の検索を取得する
GET /v1/searches/{search_id} は、検索時に保存されたものを返します。スクレイピングされたコンテンツを含みます。これは純粋な冪等な読み取りであり、再スクレイピングや再請求はありません。scrape_options のない古い検索には、リンクごとのコンテンツフィールドがありません。
料金
各検索には、検索自体に対して5 クレジットがかかります。scrape_options が提供されている場合、各スクレイピングされたページは標準の /v1/scrapes レートで請求されます(通常は 1 ページあたり 1 クレジット。一部のパーサーはそれ以上のコストがかかる場合があります)。合計は credits_consumed に返されます。
例:
| リクエスト | credits_consumed |
|---|---|
| 検索のみ | 5 |
| 検索 + 5 ページのスクレイピング(各 1 クレジット) | 10 |