Alat pencarian web memberi Claude akses langsung ke konten web real-time, memungkinkannya menjawab pertanyaan dengan informasi terkini di luar batas pengetahuannya. Respons menyertakan sitasi untuk sumber yang diambil dari hasil pencarian.
Dengan web_search_20260209 dan versi yang lebih baru, Claude dapat menulis dan menjalankan kode yang memfilter hasil pencarian sebelum mencapai "context window" (jendela konteks) (dynamic filtering atau pemfilteran dinamis), sehingga hanya informasi yang relevan yang dipertahankan. Pemfilteran dinamis tersedia dengan Claude Fable 5, Claude Opus 4.8, Claude Mythos 5, Claude Mythos Preview, Claude Opus 4.7, Claude Opus 4.6, Claude Sonnet 5, dan Claude Sonnet 4.6.
Tiga versi alat pencarian web tersedia:
web_search_20250305: pencarian web dasarweb_search_20260209: menambahkan pemfilteran dinamisweb_search_20260318: menambahkan kontrol penyertaan respons untuk alur kerja agentikContoh-contoh di halaman ini menggunakan web_search_20250305 untuk pencarian dasar dan web_search_20260318 untuk pemfilteran dinamis.
Untuk Claude Mythos Preview, pencarian web didukung di Claude API, Google Cloud, dan Microsoft Foundry. Pencarian web tidak tersedia untuk Mythos Preview di Amazon Bedrock atau Claude Platform on AWS.
Untuk kelayakan Zero Data Retention pencarian web dan konfigurasi allowed_callers terkait, lihat Alat server.
Untuk dukungan model, lihat Referensi alat.
Saat Anda menambahkan alat pencarian web ke permintaan API Anda:
Claude mencari ketika permintaan bergantung pada informasi yang terkini, berubah, atau di luar data pelatihannya:
Claude menjawab langsung tanpa mencari ketika permintaan mengandalkan pengetahuan yang stabil:
Pemicuan dapat diarahkan melalui prompt sistem Anda: Anda dapat mendorong Claude untuk lebih sering mencari atau lebih memilih menjawab langsung. Untuk batasan yang tegas, gunakan max_uses untuk membatasi jumlah pencarian untuk setiap permintaan.
Dengan pencarian web dasar, setiap hasil pencarian dimuat ke dalam jendela konteks Claude, dan sebagian besar konten tersebut bisa jadi tidak relevan dengan permintaan. Dengan web_search_20260209 atau yang lebih baru, Claude sebagai gantinya menulis dan menjalankan kode yang memfilter hasil terlebih dahulu, sehingga hanya konten yang relevan yang mencapai jendela konteks. Ini mengurangi penggunaan token pada permintaan yang banyak melakukan pencarian.
Pemfilteran dinamis menjalankan pencarian web dari dalam eksekusi kode: pada web_search_20260209 dan yang lebih baru, field allowed_callers alat ini secara default bernilai ["code_execution_20260120"], dan ketika pemfilteran dinamis berjalan, API secara otomatis menyediakan eksekusi kode yang dibutuhkan untuk permintaan tersebut. Anda tidak perlu menambahkan alat eksekusi kode ke tools sendiri. Tidak ada biaya tambahan untuk panggilan eksekusi kode yang dilakukan dengan cara ini di luar biaya token standar.
Untuk memanggil pencarian web secara langsung, tanpa pemfilteran dinamis, atur allowed_callers: ["direct"]. Model yang tidak mendukung pemanggilan alat terprogram memerlukan pengaturan ini. Tanpanya, API mengembalikan error 400 yang memberi tahu Anda untuk mengaturnya.
Alat pencarian web (dengan dan tanpa pemfilteran dinamis) tersedia di Claude API, Claude Platform on AWS, dan Microsoft Foundry. Di Microsoft Foundry, pencarian web memerlukan deployment Hosted on Anthropic. Di Google Cloud, hanya alat pencarian web dasar (tanpa pemfilteran dinamis) yang tersedia. Pencarian web tidak tersedia di Amazon Bedrock.
Contoh-contoh berikut menggunakan web_search_20260318:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=4096,
messages=[
{
"role": "user",
"content": "Search for the current prices of AAPL and GOOGL, then calculate which has a better P/E ratio.",
}
],
tools=[{"type": "web_search_20260318", "name": "web_search"}],
)
print(response)Pencarian web diaktifkan untuk organisasi Anda kecuali administrator telah menonaktifkannya di Claude Console, di mana mereka juga dapat membatasi domain mana yang dicari. Jika dinonaktifkan, permintaan yang menyertakan alat ini gagal dengan invalid_request_error 400 yang menyatakan bahwa pencarian web tidak diaktifkan, bukan kode error di dalam hasil pencarian.
Sediakan alat pencarian web dalam permintaan API Anda:
client = anthropic.Anthropic()
response = client.messages.create(
model="claude-opus-4-8",
max_tokens=1024,
messages=[{"role": "user", "content": "What's the weather in NYC?"}],
tools=[{"type": "web_search_20250305", "name": "web_search", "max_uses": 5}],
)
print(response)Alat pencarian web mendukung parameter berikut:
{
"type": "web_search_20250305",
"name": "web_search",
// Optional: Limit the number of searches per request
"max_uses": 5,
// Optional: Only include results from these domains.
// Use allowed_domains or blocked_domains, not both.
"allowed_domains": ["example.com", "trusteddomain.org"],
// Optional: Never include results from these domains
"blocked_domains": ["untrustedsource.com"],
// Optional: Localize search results
"user_location": {
"type": "approximate",
"city": "San Francisco",
"region": "California",
"country": "US",
"timezone": "America/Los_Angeles"
}
}Semua versi alat pencarian web menerima allowed_callers, yang mengontrol apakah Claude memanggil pencarian web secara langsung atau dari eksekusi kode. Pada web_search_20260209 dan yang lebih baru, nilai defaultnya adalah ["code_execution_20260120"] alih-alih ["direct"]. Lihat Alat server untuk cara mengonfigurasinya. web_search_20260318 dan yang lebih baru juga menerima response_inclusion.
Parameter max_uses membatasi jumlah pencarian yang dilakukan. Jika Claude mencoba melakukan lebih banyak pencarian daripada yang diizinkan, web_search_tool_result akan berupa error dengan kode error max_uses_exceeded.
Kueri faktual sederhana biasanya menggunakan 1–3 pencarian; riset komparatif atau multi-entitas dapat menggunakan 10 atau lebih. Untuk pencarian yang sensitif terhadap latensi, max_uses: 3 membatasi biaya sambil jarang memotong hasil. Untuk agen riset, atur max_uses ke 15–20 atau hilangkan sepenuhnya.
Sediakan allowed_domains atau blocked_domains, bukan keduanya. Jika permintaan menyertakan keduanya, API mengembalikan error 400. Entri berupa domain polos dengan path opsional, misalnya example.com atau example.com/blog, tanpa skema.
Untuk aturan pemfilteran domain lengkap, lihat Alat server.
Parameter user_location memungkinkan Anda melokalkan hasil pencarian berdasarkan lokasi pengguna. Sediakan setidaknya satu dari city, region, country, atau timezone.
type: Jenis lokasi (harus approximate)city: Nama kotaregion: Wilayah atau negara bagiancountry: Kode negara dua huruf ISO 3166-1 alpha-2. API menolak kode negara yang tidak didukung dengan error 400.timezone: ID zona waktu IANA.Memerlukan web_search_20260318 atau yang lebih baru.
Parameter response_inclusion mengontrol bagaimana blok hasil pencarian muncul dalam respons API ketika hasil tersebut dikonsumsi oleh panggilan eksekusi kode yang selesai dalam giliran yang sama. Atur "response_inclusion": "excluded" untuk menghapus pasangan blok server_tool_use dan blok hasil bersarang tersebut sepenuhnya dari respons, mengurangi biaya token output untuk alur kerja agentik yang tidak perlu mengembalikan konten pencarian mentah ke klien. Nilai defaultnya adalah "full". Hasil dari panggilan langsung, atau dari panggilan eksekusi kode yang dijeda sebelum selesai, selalu dikembalikan secara penuh sehingga dapat dikirim kembali pada giliran berikutnya.
{
"tools": [
{
"type": "web_search_20260318",
"name": "web_search",
"response_inclusion": "excluded"
}
]
}Berikut adalah contoh struktur respons:
{
"role": "assistant",
"content": [
// 1. Claude's decision to search
{
"type": "text",
"text": "I'll search for when Claude Shannon was born."
},
// 2. The search query used
{
"type": "server_tool_use",
"id": "srvtoolu_01WYG3ziw53XMcoyKL4XcZmE",
"name": "web_search",
"input": {
"query": "claude shannon birth date"
}
},
// 3. Search results
{
"type": "web_search_tool_result",
"tool_use_id": "srvtoolu_01WYG3ziw53XMcoyKL4XcZmE",
"content": [
{
"type": "web_search_result",
"url": "https://en.wikipedia.org/wiki/Claude_Shannon",
"title": "Claude Shannon - Wikipedia",
"encrypted_content": "EqgfCioIARgBIiQ3YTAwMjY1Mi1mZjM5LTQ1NGUtODgxNC1kNjNjNTk1ZWI3Y...",
"page_age": "April 30, 2025"
}
]
},
{
"text": "Based on the search results, ",
"type": "text"
},
// 4. Claude's response with citations
{
"text": "Claude Shannon was born on April 30, 1916, in Petoskey, Michigan",
"type": "text",
"citations": [
{
"type": "web_search_result_location",
"url": "https://en.wikipedia.org/wiki/Claude_Shannon",
"title": "Claude Shannon - Wikipedia",
"encrypted_index": "Eo8BCioIAhgBIiQyYjQ0OWJmZi1lNm..",
"cited_text": "Claude Elwood Shannon (April 30, 1916 – February 24, 2001) was an American mathematician, electrical engineer, computer scientist, cryptographer and i..."
}
]
}
],
"id": "msg_a930390d3a",
"usage": {
"input_tokens": 6039,
"output_tokens": 931,
"server_tool_use": {
"web_search_requests": 1
}
},
"stop_reason": "end_turn"
}Contoh ini menunjukkan pencarian langsung. Ketika pencarian berjalan melalui pemfilteran dinamis, respons juga berisi blok hasil alat eksekusi kode, dan setiap pasangan server_tool_use dan web_search_tool_result bersarang membawa field caller yang mengidentifikasi panggilan eksekusi kode yang membuatnya.
Hasil pencarian mencakup:
url: URL halaman sumbertitle: Judul halaman sumberpage_age: Kapan situs terakhir diperbaruiencrypted_content: Konten terenkripsi yang harus Anda kirimkan kembali dalam percakapan multi-giliranUntuk melanjutkan percakapan yang berisi hasil pencarian, kirim kembali blok konten asisten persis seperti yang Anda terima, termasuk encrypted_content dari setiap hasil. API mendekripsi konten tersebut pada giliran berikutnya untuk memulihkan hasil pencarian dalam konteks Claude. Jika encrypted_content hilang atau dimodifikasi, permintaan gagal dengan error validasi 400.
Sitasi selalu diaktifkan untuk pencarian web, dan setiap web_search_result_location mencakup:
url: URL sumber yang dikutiptitle: Judul sumber yang dikutipencrypted_index: Referensi yang harus dikirimkan kembali untuk percakapan multi-giliran.cited_text: Hingga 150 karakter dari konten yang dikutipField sitasi pencarian web cited_text, title, dan url tidak dihitung dalam penggunaan token input atau output.
Saat menampilkan output API langsung kepada pengguna akhir, sitasi harus disertakan ke sumber aslinya. Jika Anda melakukan modifikasi pada output API, termasuk dengan memproses ulang dan/atau menggabungkannya dengan materi Anda sendiri sebelum menampilkannya kepada pengguna akhir, tampilkan sitasi sebagaimana mestinya berdasarkan konsultasi dengan tim hukum Anda.
Ketika alat pencarian web mengalami error (seperti mencapai batas laju), Claude API tetap mengembalikan respons 200 (sukses). Error direpresentasikan di dalam body respons menggunakan struktur berikut:
{
"type": "web_search_tool_result",
"tool_use_id": "srvtoolu_a93jad",
"content": {
"type": "web_search_tool_result_error",
"error_code": "max_uses_exceeded"
}
}Pada error, content adalah satu objek error, bukan daftar blok hasil. Pencarian yang berhasil tetapi tidak menemukan hasil mengembalikan daftar content kosong, bukan error.
Berikut adalah kode error yang mungkin terjadi:
too_many_requests: Batas laju terlampauiinvalid_tool_input: Parameter kueri pencarian tidak validmax_uses_exceeded: Penggunaan maksimum alat pencarian web terlampauiquery_too_long: Kueri melebihi panjang maksimumrequest_too_large: Permintaan pencarian terlalu besar, biasanya karena daftar filter domain yang panjangunavailable: Terjadi error internalpause_turnAPI dapat menjeda giliran pencarian yang berjalan lama dan mengembalikan stop_reason: "pause_turn". Untuk melanjutkan, kirim kembali pesan asisten yang dijeda tanpa perubahan dalam permintaan baru.
Jika Claude memanggil pencarian web dan salah satu alat klien Anda dalam kelompok panggilan alat paralel yang sama, API mengembalikan stop_reason: "tool_use" sebagai gantinya dan belum menjalankan pencarian. Untuk melanjutkan, kembalikan hasil alat klien, dan API menjalankan pencarian pada permintaan berikutnya. Lihat Menggabungkan alat server dan alat klien dalam satu giliran.
Untuk loop sisi server dan penanganan pause_turn, lihat Alat server.
Untuk caching definisi alat antar giliran, lihat Penggunaan alat dengan caching prompt.
Dengan streaming diaktifkan, Anda akan menerima event pencarian sebagai bagian dari stream. Akan ada jeda saat pencarian dieksekusi:
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 search
event: content_block_start
data: {"type": "content_block_start", "index": 1, "content_block": {"type": "server_tool_use", "id": "srvtoolu_xyz789", "name": "web_search"}}
// Search query streamed
event: content_block_delta
data: {"type": "content_block_delta", "index": 1, "delta": {"type": "input_json_delta", "partial_json": "{\"query\":\"latest quantum computing breakthroughs 2025\"}"}}
// Pause while search executes
// Search results streamed
event: content_block_start
data: {"type": "content_block_start", "index": 2, "content_block": {"type": "web_search_tool_result", "tool_use_id": "srvtoolu_xyz789", "content": [{"type": "web_search_result", "title": "Quantum Computing Breakthroughs in 2025", "url": "https://example.com"}]}}
// Claude's response with citations (omitted in this example)Anda dapat menyertakan alat pencarian web dalam Messages Batches API. Panggilan alat pencarian web melalui Messages Batches API dikenakan harga yang sama dengan panggilan dalam permintaan Messages API biasa.
Untuk melindungi kapasitas bersama, Batches API membatasi permintaan pencarian web per organisasi, sehingga batch besar dengan banyak pencarian mungkin membutuhkan waktu lebih lama untuk selesai. Anda dapat melihat batas laju pencarian web organisasi Anda di halaman Limits di Claude Console. Untuk meminta batas yang lebih tinggi, hubungi tim penjualan dari halaman tersebut.
Penggunaan pencarian web dikenakan biaya sebagai tambahan dari penggunaan token:
{
"usage": {
"input_tokens": 105,
"output_tokens": 6039,
"cache_read_input_tokens": 7123,
"cache_creation_input_tokens": 7345,
"server_tool_use": {
"web_search_requests": 1
}
}
}Pencarian web tersedia di API Claude dengan harga $10 per 1.000 pencarian, ditambah biaya token standar untuk konten yang dihasilkan dari pencarian. Hasil pencarian web yang diambil sepanjang percakapan dihitung sebagai token input, baik dalam iterasi pencarian yang dijalankan selama satu giliran maupun dalam giliran percakapan berikutnya.
Setiap pencarian web dihitung sebagai satu penggunaan, terlepas dari jumlah hasil yang dikembalikan. Jika terjadi kesalahan selama pencarian web, pencarian web tersebut tidak akan ditagih.
Ambil dan baca konten dari URL tertentu untuk memperkaya konteks Claude dengan konten web langsung.
Bekerja dengan alat yang dieksekusi Anthropic: blok server_tool_use, kelanjutan pause_turn, dan pemfilteran domain.
Direktori alat yang disediakan Anthropic dan referensi untuk properti definisi alat opsional.
Was this page helpful?