Web fetch ツール
web fetchツールを使用すると、Claudeが指定されたWebページやPDFドキュメントから完全なコンテンツを取得できます。
web fetchツールは現在ベータ版です。有効にするには、APIリクエストでベータヘッダーweb-fetch-2025-09-10
を使用してください。
モデルレスポンスの品質、API自体、またはドキュメントの品質についてフィードバックを提供するには、このフォームをご利用ください。
Claudeが機密データと一緒に信頼できない入力を処理する環境でweb fetchツールを有効にすると、データ流出のリスクが生じます。このツールは信頼できる環境でのみ、または機密でないデータを扱う際にのみ使用することをお勧めします。
流出リスクを最小限に抑えるため、ClaudeはURLを動的に構築することは許可されていません。Claudeは、ユーザーによって明示的に提供されたURL、または以前のWeb検索やweb fetch結果から取得されたURLのみを取得できます。ただし、このツールを使用する際には慎重に検討すべき残存リスクがあります。
データ流出が懸念される場合は、以下を検討してください:
- web fetchツールを完全に無効にする
max_uses
パラメータを使用してリクエスト数を制限するallowed_domains
パラメータを使用して既知の安全なドメインに制限する
サポートされているモデル
Web fetchは以下で利用可能です:
- Claude Opus 4.1 (
claude-opus-4-1-20250805
) - Claude Opus 4 (
claude-opus-4-20250514
) - Claude Sonnet 4 (
claude-sonnet-4-20250514
) - Claude Sonnet 3.7 (
claude-3-7-sonnet-20250219
) - Claude Sonnet 3.5 v2 (非推奨) (
claude-3-5-sonnet-latest
) - Claude Haiku 3.5 (
claude-3-5-haiku-latest
)
web fetchの仕組み
APIリクエストにweb fetchツールを追加すると:
- Claudeはプロンプトと利用可能なURLに基づいて、いつコンテンツを取得するかを決定します。
- APIは指定されたURLから完全なテキストコンテンツを取得します。
- PDFの場合、自動テキスト抽出が実行されます。
- Claudeは取得したコンテンツを分析し、オプションの引用付きでレスポンスを提供します。
web fetchの使用方法
APIリクエストでweb fetchツールを提供します:
ツール定義
web fetchツールは以下のパラメータをサポートしています:
Max uses
max_uses
パラメータは実行されるweb fetch回数を制限します。Claudeが許可された回数を超えて取得を試行した場合、web_fetch_tool_result
はmax_uses_exceeded
エラーコードでエラーになります。現在、デフォルトの制限はありません。
ドメインフィルタリング
ドメインフィルターを使用する場合:
- ドメインにはHTTP/HTTPSスキームを含めないでください(
https://example.com
ではなくexample.com
を使用) - サブドメインは自動的に含まれます(
example.com
はdocs.example.com
をカバー) - サブパスがサポートされています(
example.com/blog
) - 同じリクエストで
allowed_domains
またはblocked_domains
のいずれかを使用できますが、両方は使用できません。
ドメイン名のUnicode文字は、異なるスクリプトの視覚的に類似した文字がドメインフィルターをバイパスできるホモグラフ攻撃によってセキュリティ脆弱性を作成する可能性があることに注意してください。例えば、аmazon.com
(キリル文字の’а’を使用)はamazon.com
と同じに見えるかもしれませんが、異なるドメインを表します。
ドメインの許可/ブロックリストを設定する際:
- 可能な場合はASCIIのみのドメイン名を使用する
- URLパーサーがUnicode正規化を異なって処理する可能性があることを考慮する
- 潜在的なホモグラフバリエーションでドメインフィルターをテストする
- 疑わしいUnicode文字についてドメイン設定を定期的に監査する
コンテンツ制限
max_content_tokens
パラメータは、コンテキストに含まれるコンテンツの量を制限します。取得したコンテンツがこの制限を超える場合、切り捨てられます。これは大きなドキュメントを取得する際のトークン使用量を制御するのに役立ちます。
max_content_tokens
パラメータの制限は概算です。実際に使用される入力トークン数は少し変動する可能性があります。
引用
Web検索では引用が常に有効になっているのとは異なり、web fetchでは引用はオプションです。Claudeが取得したドキュメントから特定の箇所を引用できるようにするには、"citations": {"enabled": true}
を設定してください。
Web結果やWeb結果に含まれる情報をエンドユーザーに表示する際、インライン引用はユーザーインターフェースで明確に見えるようにし、クリック可能にする必要があります。
レスポンス
レスポンス構造の例は以下の通りです:
取得結果
取得結果には以下が含まれます:
url
: 取得されたURLcontent
: 取得されたコンテンツを含むドキュメントブロックretrieved_at
: コンテンツが取得された時のタイムスタンプ
web fetchツールはパフォーマンスを向上させ、冗長なリクエストを減らすために結果をキャッシュします。これは、返されるコンテンツがURLで利用可能な最新バージョンではない場合があることを意味します。キャッシュ動作は自動的に管理され、異なるコンテンツタイプと使用パターンに最適化するために時間とともに変更される可能性があります。
PDFドキュメントの場合、コンテンツはbase64エンコードされたデータとして返されます:
エラー
web fetchツールがエラーに遭遇した場合、Anthropic APIはレスポンスボディでエラーが表現された200(成功)レスポンスを返します:
可能なエラーコードは以下の通りです:
invalid_input
: 無効なURL形式url_too_long
: URLが最大長(250文字)を超えているurl_not_allowed
: ドメインフィルタリングルールとモデル制限によってブロックされたURLurl_not_accessible
: コンテンツの取得に失敗(HTTPエラー)too_many_requests
: レート制限を超過unsupported_content_type
: サポートされていないコンテンツタイプ(テキストとPDFのみ)max_uses_exceeded
: web fetchツールの最大使用回数を超過unavailable
: 内部エラーが発生
URL検証
セキュリティ上の理由から、web fetchツールは会話コンテキストで以前に現れたURLのみを取得できます。これには以下が含まれます:
- ユーザーメッセージ内のURL
- クライアント側ツール結果内のURL
- 以前のWeb検索やweb fetch結果からのURL
このツールは、Claudeが生成した任意のURLやコンテナベースのサーバーツール(Code Execution、Bashなど)からのURLを取得することはできません。
検索と取得の組み合わせ
Web fetchは包括的な情報収集のためにWeb検索とシームレスに連携します:
このワークフローでは、Claudeは以下を行います:
- Web検索を使用して関連記事を見つける
- 最も有望な結果を選択する
- web fetchを使用して完全なコンテンツを取得する
- 引用付きで詳細な分析を提供する
プロンプトキャッシング
Web fetchはプロンプトキャッシングと連携します。プロンプトキャッシングを有効にするには、リクエストにcache_control
ブレークポイントを追加してください。キャッシュされた取得結果は会話ターン間で再利用できます。
ストリーミング
ストリーミングが有効な場合、取得イベントはコンテンツ取得中の一時停止を伴うストリームの一部です:
バッチリクエスト
Messages Batches APIにweb fetchツールを含めることができます。Messages Batches APIを通じたweb fetchツール呼び出しは、通常のMessages APIリクエストと同じ価格です。
使用量と価格
Web fetch usage has no additional charges beyond standard token costs:
The web fetch tool is available on the Anthropic API at no additional cost. You only pay standard token costs for the fetched content that becomes part of your conversation context.
To protect against inadvertently fetching large content that would consume excessive tokens, use the max_content_tokens
parameter to set appropriate limits based on your use case and budget considerations.
Example token usage for typical content:
- Average web page (10KB): ~2,500 tokens
- Large documentation page (100KB): ~25,000 tokens
- Research paper PDF (500KB): ~125,000 tokens