Jawaban singkat
Apa yang dikembalikan LLMWebSearch API untuk sebuah pencarian?
LLMWebSearch mengembalikan JSON dengan query, created_at, credits_used dan array results yang diperingkat. Setiap hasil memiliki posisi, judul, URL, host dan snippet, serta content_status; ketika ok, konten utama halaman ada di content dengan word_count. Satu pencarian dengan hingga 3 halaman dibaca berbiaya 1 kredit, mulai dari US$1,20/1K pencarian per Oktober 2026. Tanpa KYC; bayar dengan kripto.
Field mana yang mendeskripsikan pemanggilan?
Tingkat teratas dari respons /search.
| Field | Tipe | Arti |
|---|---|---|
query | string | Kueri seperti yang kami jalankan, setelah spasi dirapikan |
created_at | string | Kapan pencarian dijalankan, ISO 8601 dalam UTC |
credits_used | integer | Berapa biaya pemanggilan: 1, atau 2 ketika read bernilai 4 hingga 10 |
results | array | Hasil yang diperingkat, terbaik lebih dulu, maksimal max_results item |
Field apa saja yang dibawa setiap hasil?
Field yang tidak disediakan oleh halaman atau hasil pencarian akan dihilangkan, bukan dikirim kosong.
| Field | Tipe | Saat ada | Arti |
|---|---|---|---|
position | integer | Selalu | Peringkat dalam pencarian, dimulai dari 1 |
title | string | Selalu | Judul hasil |
url | string | Selalu | Alamat halaman |
host | string | Selalu | Nama host halaman, berguna untuk pengelompokan atau sitasi |
snippet | string | Selalu | Kutipan singkat yang ditampilkan oleh pencarian |
published_at | string | Ketika tanggal diketahui | Tanggal publikasi dari halaman atau hasil pencarian |
content_status | string | Selalu | Apakah halaman dibaca, dan jika tidak, mengapa |
content | string | Ketika content_status adalah ok | Konten utama sebagai Markdown atau teks biasa, dipotong pada max_chars |
word_count | integer | Ketika content_status adalah ok | Kata-kata dalam seluruh teks yang diekstrak, dihitung sebelum pemotongan |
target_status | integer | Dengan target_refused | Status HTTP yang dijawab situs, seperti 403 atau 429 |
Apa arti setiap content_status?
Tidak satu pun dari ini mengubah harga pencarian. Ini menjelaskan satu halaman, bukan seluruh panggilan.
content_status | Arti | Apa yang harus dilakukan agen |
|---|---|---|
ok | Halaman telah dibaca; content berisi teks utamanya | Gunakan dan kutip url |
not_requested | Hasilnya melebihi jumlah read | Naikkan read, atau baca melalui /extract jika perlu |
blocked_by_robots | robots.txt situs tidak mengizinkan pembaca kami pada halaman ini | Andalkan snippet atau sumber lain |
blocked_by_site_policy | Situs mendeklarasikan Content-Signal: ai-input=no | Andalkan snippet atau sumber lain |
target_refused | Situs menolak permintaan; lihat target_status | Jangan coba ulang halaman; gunakan sumber lain |
fetch_failed | Kesalahan DNS, TLS atau koneksi, atau halaman sudah tidak ada | Coba hasil lain; percobaan ulang nanti mungkin berhasil |
fetch_timeout | Halaman tidak menjawab dalam 15 detik | Coba hasil lain; percobaan ulang nanti mungkin berhasil |
unsupported_content | Tautan adalah file yang tidak dapat kami ubah menjadi teks | Gunakan snippet atau hasil lain |
Seperti apa respons lengkapnya?
Contoh di bawah meminta 5 hasil dengan 4 hasil pertama dibaca, sehingga memakan 2 kredit. Hasil 1 dan 3 dibaca. Hasil 2 milik situs yang robots.txt-nya menghalangi pembaca kami, hasil 4 menolak permintaan, dan hasil 5 berada di luar read. Judul, URL dan nilai hanya sebagai ilustrasi.
{
"query": "how to rotate api keys without downtime",
"created_at": "2026-10-22T10:15:04Z",
"credits_used": 2,
"results": [
{
"position": 1,
"title": "Rotating API keys",
"url": "https://docs.example.com/security/key-rotation",
"host": "docs.example.com",
"snippet": "Create a second key, deploy it everywhere, then revoke the first one.",
"published_at": "2026-09-30",
"content_status": "ok",
"content": "# Rotating API keys\n\n## Zero-downtime rotation\n\n1. Create a second key.\n2. Deploy it to every service.\n3. Revoke the old key.",
"word_count": 948
},
{
"position": 2,
"title": "Key rotation checklist",
"url": "https://blog.example.org/key-rotation-checklist",
"host": "blog.example.org",
"snippet": "Keep two keys active during the switch and alert on the old one.",
"content_status": "blocked_by_robots"
},
{
"position": 3,
"title": "Secrets management basics",
"url": "https://security.example.net/secrets-basics",
"host": "security.example.net",
"snippet": "Never commit keys to a repository.",
"content_status": "ok",
"content": "# Secrets management basics\n\n**Never** commit keys to a repository.",
"word_count": 1310
},
{
"position": 4,
"title": "Key management service guide",
"url": "https://cloud.example.com/kms-guide",
"host": "cloud.example.com",
"snippet": "Store keys in a managed vault and rotate them on a schedule.",
"content_status": "target_refused",
"target_status": 403
},
{
"position": 5,
"title": "API key best practices",
"url": "https://dev.example.com/api-key-best-practices",
"host": "dev.example.com",
"snippet": "Scope each key to one service and one environment.",
"content_status": "not_requested"
}
]
}Hasil mana yang mendapat status halaman selain not_requested?
Hanya read hasil pertama, dan setiap item dari panggilan /extract. Itulah halaman yang benar-benar dicoba oleh reader kami. Semua yang setelah jumlah read tetap not_requested, apa pun yang seharusnya dijawab oleh situs tersebut.
Urutannya tidak pernah berubah: reader memproses posisi 1, 2, 3, dan seterusnya, tidak pernah memproses hasil yang lebih belakang sebagai ganti hasil sebelumnya yang gagal. Jika sebuah agent membutuhkan pengganti untuk halaman yang ditolak, ia dapat membaca hasil berikutnya melalui /extract.
Seperti apa respons extract?
/extract mengembalikan credits_used dan array results sesuai urutan URL yang Anda kirim. Setiap item memiliki url dan content_status; dengan ok ditambahkan title, content, dan word_count, dan dengan target_refused ditambahkan target_status. Tidak ada position, host, atau snippet, karena tidak ada pencarian yang dijalankan.
Referensi extract menampilkan contoh lengkap dan menjelaskan cara kreditnya dihitung.
Bagaimana cara mengubah hasil menjadi konteks untuk model?
Beri nomor pada sumber, simpan URL di samping masing-masing, dan berikan hanya yang dibutuhkan model. Tata letak yang ringkas berfungsi baik: [1] title — url, lalu konten halaman tersebut, lalu sumber berikutnya. Minta model mengutip dengan nomor yang sama.
Jika suatu hasil tidak memiliki konten, berikan snippet-nya kepada model dan nyatakan bahwa itu hanya snippet. Ini menghindari jawaban yang dibangun dari halaman yang tidak pernah dilihat model. Halaman Python memiliki loop singkat yang melakukan semua ini dalam batas token.
Format respons: pertanyaan umum
Apakah konten selalu Markdown?
Markdown secara default. Kirim format: "text" untuk mendapatkan teks biasa tanpa markup, misalnya saat Anda hanya menghitung kata atau mengklasifikasikan halaman. Nama field tetap content.
Mengapa published_at tidak ada pada sebagian hasil?
Banyak halaman tidak mencantumkan tanggal, dan sebagian hasil pencarian juga tidak menampilkannya. Dalam kasus tersebut, field ini dihilangkan, jadi periksa keberadaannya sebelum menggunakannya.
Bisakah field baru muncul nanti?
Ya. Pada versi 1, field dapat ditambahkan tetapi tidak pernah diganti nama atau dihapus. Buat parser Anda mengabaikan field yang tidak dikenalnya.
Apakah konten disimpan di sisi Anda?
Tidak. Kami tidak melatih model apa pun dengan kueri Anda atau dengan apa yang dikembalikan API, dan kami tidak menambahkan aturan kami sendiri yang melarang penyimpanan hasil; hak situs yang halaman-halamannya Anda baca tetap berlaku. Log permintaan kami hanya menyimpan jejak singkat setiap panggilan, yang dijelaskan di halaman privasi.