Web fetchツールを使用すると、Claudeは指定されたWebページやPDFドキュメントから完全なコンテンツを取得できます。
最新のWeb fetchツールバージョン(web_fetch_20260318)は、Claude Fable 5、Claude Opus 4.8、Claude Mythos 5、Claude Mythos Preview、Claude Opus 4.7、Claude Opus 4.6、Claude Sonnet 4.6で動的フィルタリングをサポートしています。Claudeは、取得したコンテンツがコンテキストウィンドウに到達する前にフィルタリングするコードを記述・実行し、関連情報のみを保持して残りを破棄できます。これにより、応答品質を維持しながらトークン消費を削減できます。web_fetch_20260318では、エージェント型ワークフロー向けのレスポンス包含制御も追加されています。以前のバージョン(動的フィルタリングとキャッシュバイパス用のweb_fetch_20260309、動的フィルタリングのみのweb_fetch_20260209、基本的な取得用のweb_fetch_20250910)も引き続き利用可能です。
Claude Mythos Previewでは、Web fetchはClaude APIおよびMicrosoft Foundryで利用可能です。現在、Amazon BedrockまたはVertex AI上のMythos Previewでは利用できません。
モデルの応答品質、API自体、またはドキュメントの品質についてフィードバックを提供するには、フィードバックフォームをご利用ください。
ゼロデータ保持の適格性とallowed_callersによる回避策については、サーバーツールを参照してください。
Claudeが信頼できない入力を機密データと一緒に処理する環境でWeb fetchツールを有効にすると、データ流出のリスクが生じます。このツールは、信頼できる環境または機密性のないデータを扱う場合にのみ使用してください。
流出リスクを最小限に抑えるため、ClaudeはURLを動的に構築することは許可されていません。Claudeは、ユーザーによって明示的に提供されたURL、または以前のWeb検索やWeb fetchの結果から得られたURLのみを取得できます。ただし、このツールを使用する際には慎重に考慮すべき残存リスクが依然として存在します。
データ流出が懸念される場合は、以下を検討してください。
max_usesパラメータを使用してリクエスト数を制限するallowed_domainsパラメータを使用して既知の安全なドメインに制限するモデルのサポートについては、ツールリファレンスを参照してください。
APIリクエストにWeb fetchツールを追加すると、以下のように動作します。
Web fetchツールは現在、JavaScriptで動的にレンダリングされるWebサイトをサポートしていません。
Claudeは、リクエストが特定のページまたはドキュメントを指している場合に取得を行います。
Claudeは、特定のページを参照しない一般知識や自由回答形式の質問に対しては取得を行いません。「この記事を要約してください:<url>」は取得をトリガーしますが、「REST API設計のベストプラクティスは何ですか?」は直接回答されます。
完全なWebページやPDFを取得すると、特に大きなドキュメントから特定の情報のみが必要な場合、トークンを急速に消費する可能性があります。web_fetch_20260209以降では、Claudeは取得したコンテンツをコンテキストに読み込む前にフィルタリングするコードを記述・実行できます。
この動的フィルタリングは、特に以下の場合に有用です。
動的フィルタリングには、コード実行ツールを有効にする必要があります。Web fetchツール(動的フィルタリングの有無にかかわらず)は、Claude API、Claude Platform on AWS、およびMicrosoft Foundryで利用可能です。現在、Amazon BedrockまたはVertex AIでは利用できません。
動的フィルタリングを有効にするには、web_fetch_20260209以降のバージョンを使用してください。以下の例ではweb_fetch_20260209を使用しています。
APIリクエストでWeb fetchツールを指定します。
Web fetchツールは以下のパラメータをサポートしています。
{
"type": "web_fetch_20250910",
"name": "web_fetch",
// Optional: Limit the number of fetches per request
"max_uses": 10,
// Optional: Only fetch from these domains
"allowed_domains": ["example.com", "docs.example.com"],
// Optional: Never fetch from these domains
"blocked_domains": ["private.example.com"],
// Optional: Enable citations for fetched content
"citations": {
"enabled": true
},
// Optional: Maximum content length in tokens
"max_content_tokens": 100000
}max_usesパラメータは、実行されるWeb fetchの回数を制限します。Claudeが許可された回数を超えて取得を試みると、web_fetch_tool_resultはmax_uses_exceededエラーコードを含むエラーになります。現在、デフォルトの制限はありません。
allowed_domainsとblocked_domainsによるドメインフィルタリングについては、サーバーツールを参照してください。
max_content_tokensパラメータは、コンテキストに含まれるコンテンツの量を制限します。取得したコンテンツがこの制限を超えると、ツールはそれを切り詰めます。これにより、大きなドキュメントを取得する際のトークン使用量を制御できます。
max_content_tokensパラメータの制限は概算です。実際に使用される入力トークン数は、わずかに変動する可能性があります。
web_fetch_20260309以降(web_fetch_20260318を含む)が必要です。
use_cacheパラメータは、キャッシュされたコンテンツを返すかどうかを制御します。キャッシュをバイパスして最新のコンテンツを取得するには"use_cache": falseを設定します。デフォルトはtrueです。キャッシュをバイパスするとレイテンシが増加するため、ユーザーが明示的に最新のコンテンツを要求した場合、または急速に変化するソースを取得する場合にのみキャッシュを無効にしてください。
web_fetch_20260318以降が必要です。
response_inclusionパラメータは、同じターン内で完了したコード実行呼び出しによって結果が消費された場合に、取得結果ブロックがAPIレスポンスにどのように表示されるかを制御します。"response_inclusion": "excluded"を設定すると、それらのネストされたserver_tool_useと結果ブロックのペアがレスポンスから完全に削除され、生のページコンテンツをクライアントにエコーバックする必要のないエージェント型ワークフローの出力トークンコストを削減できます。デフォルトは"full"です。直接呼び出しからの結果、または完了前に一時停止したコード実行呼び出しからの結果は、次のターンで送り返せるように常に完全な形で返されます。
{
"tools": [
{
"type": "web_fetch_20260318",
"name": "web_fetch",
"response_inclusion": "excluded"
}
]
}引用が常に有効になっているWeb検索とは異なり、Web fetchでは引用はオプションです。Claudeが取得したドキュメントから特定の箇所を引用できるようにするには、"citations": {"enabled": true}を設定します。
APIの出力をエンドユーザーに直接表示する場合は、元のソースへの引用を含める必要があります。APIの出力に変更を加える場合(エンドユーザーに表示する前に再処理したり、独自の資料と組み合わせたりする場合を含む)は、法務チームとの相談に基づいて適切に引用を表示してください。
以下はレスポンス構造の例です。
{
"role": "assistant",
"content": [
// 1. Claude's decision to fetch
{
"type": "text",
"text": "I'll fetch the content from the article to analyze it."
},
// 2. The fetch request
{
"type": "server_tool_use",
"id": "srvtoolu_01234567890abcdef",
"name": "web_fetch",
"input": {
"url": "https://example.com/article"
}
},
// 3. Fetch results
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_01234567890abcdef",
"content": {
"type": "web_fetch_result",
"url": "https://example.com/article",
"content": {
"type": "document",
"source": {
"type": "text",
"media_type": "text/plain",
"data": "Full text content of the article..."
},
"title": "Article Title",
"citations": { "enabled": true }
},
"retrieved_at": "2025-08-25T10:30:00Z"
}
},
// 4. Claude's analysis with citations (if enabled)
{
"text": "Based on the article, ",
"type": "text"
},
{
"text": "the main argument presented is that artificial intelligence will transform healthcare",
"type": "text",
"citations": [
{
"type": "char_location",
"document_index": 0,
"document_title": "Article Title",
"start_char_index": 1234,
"end_char_index": 1456,
"cited_text": "Artificial intelligence is poised to revolutionize healthcare delivery..."
}
]
}
],
"id": "msg_a930390d3a",
"usage": {
"input_tokens": 25039,
"output_tokens": 931,
"server_tool_use": {
"web_fetch_requests": 1
}
},
"stop_reason": "end_turn"
}取得結果には以下が含まれます。
url:取得されたURLcontent:取得されたコンテンツを含むドキュメントブロックretrieved_at:コンテンツが取得されたタイムスタンプWeb fetchツールは、パフォーマンスを向上させ、冗長なリクエストを削減するために結果をキャッシュします。返されるコンテンツは、URLで利用可能な最新バージョンを常に反映しているとは限りません。キャッシュの動作は自動的に管理され、さまざまなコンテンツタイプや使用パターンに最適化するために時間とともに変更される可能性があります。
PDFドキュメントの場合、コンテンツはbase64エンコードされたデータとして返されます。
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_02",
"content": {
"type": "web_fetch_result",
"url": "https://example.com/paper.pdf",
"content": {
"type": "document",
"source": {
"type": "base64",
"media_type": "application/pdf",
"data": "JVBERi0xLjQKJcOkw7zDtsOfCjIgMCBvYmo..."
},
"citations": { "enabled": true }
},
"retrieved_at": "2025-08-25T10:30:02Z"
}
}Web fetchツールがエラーに遭遇した場合、Claude APIは200(成功)レスポンスを返し、エラーはレスポンスボディ内で表現されます。
{
"type": "web_fetch_tool_result",
"tool_use_id": "srvtoolu_a93jad",
"content": {
"type": "web_fetch_tool_error",
"error_code": "url_not_accessible"
}
}以下は発生する可能性のあるエラーコードです。
invalid_input:無効なURL形式url_too_long:URLが最大長(250文字)を超えているurl_not_allowed:ドメインフィルタリングルールとモデル制限によってURLがブロックされているurl_not_accessible:コンテンツの取得に失敗(HTTPエラー)too_many_requests:レート制限を超過unsupported_content_type:サポートされていないコンテンツタイプ(テキストとPDFのみサポート)max_uses_exceeded:Web fetchツールの最大使用回数を超過unavailable:内部エラーが発生セキュリティ上の理由から、Web fetchツールは会話コンテキストに以前に出現したURLのみを取得できます。これには以下が含まれます。
このツールは、Claudeが生成した任意のURLや、コンテナベースのサーバーツール(コード実行、Bashなど)からのURLを取得することはできません。
Web fetchは、包括的な情報収集のためにWeb検索とシームレスに連携します。
このワークフローでは、Claudeは以下を実行します。
Web検索ツールとWeb fetchツールの両方が有効になっており、ユーザーがURLを提供せずに特定のページまたはドキュメントを指定した場合(例:「anthropics/anthropic-sdk-pythonリポジトリのREADMEを読んでください」)、ClaudeはWeb検索を使用してそれを見つけ、その結果を取得します。
ターン間でツール定義をキャッシュする方法については、プロンプトキャッシングを使用したツール使用を参照してください。
ストリーミングを有効にすると、取得イベントはストリームの一部となり、コンテンツ取得中に一時停止が発生します。
event: message_start
data: {"type": "message_start", "message": {"id": "msg_abc123", "type": "message"}}
event: content_block_start
data: {"type": "content_block_start", "index": 0, "content_block": {"type": "text", "text": ""}}
// Claude's decision to fetch
event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "web_fetch"}}
// Fetch URL streamed
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"url\":\"https://example.com/article\"}"}}
// Pause while fetch executes
// Fetch results streamed
event: content_block_start
data: {"type": "content_block_start", "index": 2, "content_block": {"type": "web_fetch_tool_result", "tool_use_id": "srvtoolu_xyz789", "content": {"type": "web_fetch_result", "url": "https://example.com/article", "content": {"type": "document", "source": {"type": "text", "media_type": "text/plain", "data": "Article content..."}}}}}
// Claude's response continues...Web fetchツールはMessages Batches APIに含めることができます。Messages Batches APIを通じたWeb fetchツール呼び出しは、通常のMessages APIリクエストと同じ料金で課金されます。
Web fetchの使用には、標準のトークンコスト以外に追加料金はかかりません:
{
"usage": {
"input_tokens": 25039,
"output_tokens": 931,
"cache_read_input_tokens": 0,
"cache_creation_input_tokens": 0,
"server_tool_use": {
"web_fetch_requests": 1
}
}
}Web fetchツールは、Claude APIで追加コストなしでご利用いただけます。お支払いいただくのは、会話コンテキストの一部となる取得済みコンテンツに対する標準のトークンコストのみです。
過剰なトークンを消費する大きなコンテンツを誤って取得しないようにするため、max_content_tokensパラメータを使用して、ユースケースと予算の考慮事項に基づいた適切な制限を設定してください。
一般的なコンテンツのトークン使用量の例:
Anthropicが実行するツールの共通メカニズム。
Anthropicが提供するすべてのツールのディレクトリ。
サンドボックス化されたコンテナでPythonとbashコードを実行します。
Was this page helpful?
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Fetch the content at https://example.com/research-paper and extract the key findings.",
}
],
tools=[{"type": "web_fetch_20260209", "name": "web_fetch"}],
)
print(response)client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "Please analyze the content at https://example.com/article",
}
],
tools=[{"type": "web_fetch_20250910", "name": "web_fetch", "max_uses": 5}],
)
print(response)client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Find recent articles about quantum computing and analyze the most relevant one in detail",
}
],
tools=[
{"type": "web_search_20250305", "name": "web_search", "max_uses": 3},
{
"type": "web_fetch_20250910",
"name": "web_fetch",
"max_uses": 5,
"citations": {"enabled": True},
},
],
)
print(response)