Jawaban singkat
Parameter apa saja yang diterima endpoint pencarian SerpCrypto?
GET https://serpcrypto.com/api/v1/search menerima satu parameter wajib, q, dan sembilan parameter opsional: engine, gl, hl, location, google_domain, device, page, safe, dan period. SerpCrypto mengembalikan JSON dan memotong 1 kredit per pencarian yang berhasil di semua 6 engine; error gratis. Pack mulai dari US$7,50 untuk 10.000 pencarian, dibayar dengan kripto tanpa KYC.
Bagaimana cara melakukan autentikasi?
Kirim API key Anda dengan salah satu dari dua cara. Cara yang disarankan adalah header Authorization: Bearer YOUR_KEY. Cara lainnya adalah query parameter api_key=YOUR_KEY, praktis untuk tes cepat di tab browser.
API key yang hilang, salah, atau dicabut akan mendapat 401 invalid_api_key dan tidak memotong kredit. API key yang dapat Anda buat dan cabut kapan saja dari dashboard Anda, sehingga Anda bisa memberi setiap skrip atau server API key-nya sendiri dan mencabut satu tanpa menyentuh yang lain.
Menjalankan pencarian
GET/api/v1/search
Menjalankan satu pencarian di engine yang dipilih dan mengembalikan halaman hasil sebagai JSON. Pencarian yang berhasil memotong 1 kredit, apa pun engine-nya; error tidak memotong kredit. Parameter dikirim di query string, di-URL-encode. Contoh meminta Google untuk coffee roasters di Austin, Texas; ID, jumlah, dan hasil hanya ilustrasi.
Autentikasi: API key di header Authorization: Bearer API_KEY.
Parameter
| Nama | Di | Tipe | Wajib | Deskripsi |
|---|---|---|---|---|
q | query | string | Ya | Kueri pencarian, seperti yang diketik orang. Operator pencarian seperti tanda kutip atau site: adalah bagian dari kueri. |
engine | query | string | Tidak | google (default), google_news, google_images, google_maps, google_shopping, atau bing. |
gl | query | string | Tidak | Negara hasil: kode ISO 3166-1 alpha-2 huruf kecil, seperti us, de, atau br. Default us. |
hl | query | string | Tidak | Bahasa antarmuka, seperti en, de, atau pt-BR. Default en. |
location | query | string | Tidak | Lokasi tingkat kota, ditulis City, Region, Country, seperti Austin, Texas, United States. Lihat locations. |
google_domain | query | string | Tidak | Domain Google yang akan dicari, seperti google.de. Default: domain negara gl. Diabaikan saat engine=bing. |
device | query | string | Tidak | desktop (default) atau mobile. |
page | query | integer | Tidak | Halaman hasil dari 1 (default) hingga 10. Setiap halaman adalah pencarian terpisah dan memakai 1 kredit. |
safe | query | string | Tidak | active memfilter hasil eksplisit; off (default) tidak. |
period | query | string | Tidak | Hanya hasil dari satu jam terakhir (h), hari (d), minggu (w), bulan (m) atau tahun (y). |
api_key | query | string | Tidak | API key Anda, jika Anda tidak mengirim header Authorization. |
Response 200
{
"search_metadata": {
"id": "srch_7f3a9c2e41b8",
"status": "success",
"engine": "google",
"created_at": "2026-10-22T09:14:05Z",
"credits_used": 1
},
"search_parameters": {
"engine": "google",
"q": "coffee roasters",
"gl": "us",
"hl": "en",
"location": "Austin, Texas, United States",
"google_domain": "google.com",
"device": "desktop",
"page": 1
},
"search_information": {
"total_results": 18600000,
"query_displayed": "coffee roasters"
},
"local_results": [
{
"position": 1,
"title": "Example Coffee Roasters",
"address": "123 Example St, Austin, TX",
"rating": 4.7,
"reviews": 312,
"type": "Coffee roasters"
}
],
"organic_results": [
{
"position": 1,
"title": "The 12 best coffee roasters in Austin",
"link": "https://www.example.com/austin/coffee-roasters",
"displayed_link": "www.example.com › austin › coffee",
"snippet": "From light Nordic roasts to dark espresso blends, these local roasters…",
"date": "Sep 30, 2026"
},
{
"position": 2,
"title": "Example Roasting Co. | Fresh beans, roasted in Austin",
"link": "https://www.example.org/",
"displayed_link": "www.example.org",
"snippet": "Small-batch coffee roasted every weekday and shipped the same day…"
}
],
"people_also_ask": [
{
"question": "What is the oldest coffee roaster in Austin?",
"snippet": "…",
"title": "Austin coffee history",
"link": "https://www.example.net/austin-coffee-history"
}
],
"related_searches": [
{
"query": "coffee roasters near me"
},
{
"query": "coffee roasters austin wholesale"
}
],
"pagination": {
"current": 1,
"next_page": 2
}
}Contoh kode
curl -sG "https://serpcrypto.com/api/v1/search" \
-H "Authorization: Bearer $SERPCRYPTO_API_KEY" \
--data-urlencode "q=coffee roasters" \
--data-urlencode "location=Austin, Texas, United States" \
-d gl=us -d hl=en -d device=desktopimport os
import requests
r = requests.get(
"https://serpcrypto.com/api/v1/search",
params={
"q": "coffee roasters",
"location": "Austin, Texas, United States",
"gl": "us",
"hl": "en",
},
headers={"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]},
timeout=60,
)
r.raise_for_status()
print(r.json()["organic_results"][0]["link"])const params = new URLSearchParams({
q: "coffee roasters",
location: "Austin, Texas, United States",
gl: "us",
hl: "en",
});
const res = await fetch("https://serpcrypto.com/api/v1/search?" + params, {
headers: { Authorization: "Bearer " + process.env.SERPCRYPTO_API_KEY },
});
const data = await res.json();
console.log(data.organic_results?.[0]?.link);Nilai engine apa saja yang ada, dan apa yang dikembalikan masing-masing?
Struktur (search_metadata, search_parameters, search_information) sama di setiap engine. Sebuah blok hanya muncul jika halaman menampilkannya.
engine | Sumber | Blok utama dalam jawaban |
|---|---|---|
google | Google Search | ai_overview, organic_results, ads, people_also_ask, local_results, knowledge_graph, top_stories, inline_videos, shopping_results, related_searches, pagination |
google_news | Google News | news_results: judul, link, sumber, tanggal, snippet, thumbnail |
google_images | Google Images | images_results: URL asli dan ukuran, thumbnail, halaman sumber |
google_maps | Google Maps | local_results: nama, alamat, telepon, website, rating, ulasan, kategori, jam buka, koordinat |
google_shopping | Google Shopping | shopping_results: judul, harga, harga yang diekstrak, mata uang, merchant, pengiriman, rating |
bing | Bing | organic_results, related_searches |
Baca kredit Anda
GET/api/v1/credits
Mengembalikan kredit yang tersisa di akun Anda, kredit yang terpakai sejak tengah malam UTC dan jumlah pencarian yang dapat dijalankan akun Anda secara bersamaan. Panggilan ini gratis. Nilai di bawah adalah contoh.
Autentikasi: API key di header Authorization: Bearer API_KEY.
Response 200
{
"credits_remaining": 84210,
"credits_used_today": 1290,
"concurrency_limit": 10
}Contoh kode
curl -s "https://serpcrypto.com/api/v1/credits" \
-H "Authorization: Bearer $SERPCRYPTO_API_KEY"import os
import requests
r = requests.get(
"https://serpcrypto.com/api/v1/credits",
headers={"Authorization": "Bearer " + os.environ["SERPCRYPTO_API_KEY"]},
timeout=30,
)
r.raise_for_status()
print(r.json()["credits_remaining"])const res = await fetch("https://serpcrypto.com/api/v1/credits", {
headers: { Authorization: "Bearer " + process.env.SERPCRYPTO_API_KEY },
});
const { credits_remaining } = await res.json();
console.log(credits_remaining);Error apa saja yang dapat dikembalikan API?
Setiap error memiliki body {"error": {"code": "…", "message": "…"}}. Halaman errors menjelaskan masing-masing dan menunjukkan kode retry.
| HTTP | code | Kapan terjadi | Ditagih |
|---|---|---|---|
| 400 | invalid_parameter | Parameter wajib tidak ada atau nilainya di luar daftar yang diizinkan | Tidak |
| 401 | invalid_api_key | API key tidak ada, salah atau dicabut | Tidak |
| 402 | insufficient_credits | Akun Anda tidak memiliki sisa kredit | Tidak |
| 429 | concurrency_limit | Terlalu banyak pencarian berjalan bersamaan di akun Anda | Tidak |
| 502 | search_failed | Engine atau pengumpulan gagal untuk permintaan ini; coba lagi | Tidak |
| 504 | search_timeout | Tidak ada jawaban tepat waktu; coba lagi | Tidak |
Apa yang ditagih, tepatnya?
- Satu pencarian berhasil = satu kredit, di setiap engine, termasuk Google Maps dan Google Shopping.
- Setiap halaman hasil adalah satu pencarian. Sekitar 10 hasil organik per halaman, sebagaimana yang disajikan Google sejak berhenti mematuhi num=100 pada September 2025; setiap halaman tambahan dikenai satu kredit lagi.
- Error gratis: setiap jawaban dengan status HTTP selain 200 tidak memakai kredit.
- Membaca kredit Anda gratis.
Kredit pencarian prabayar tidak pernah kedaluwarsa: pencarian yang belum terpakai tetap ada di akun Anda sampai Anda menggunakannya. Paket mulai dari US$7,50 untuk 10.000 pencarian hingga US$0,30/1K pencarian pada paket terbesar; lihat harga.
Bagaimana cara mengencode kueri?
Kirim q dalam bentuk URL-encoded, seperti nilai query-string lainnya: spasi menjadi %20 atau +, dan huruf beraksen diencode sebagai UTF-8. curl melakukannya dengan --data-urlencode, Python requests dan httpx melakukannya dengan params=, dan Node.js melakukannya dengan URLSearchParams.
Tulis kueri persis seperti orang mengetikkannya di kotak pencarian. Tanda kutip, tanda minus atau site: tetap di dalam q; engine yang memutuskan cara menerapkannya, seperti untuk pengunjung.
Apakah API memakai versi?
Ya. Versi adalah bagian dari path: /api/v1/. Field atau blok baru dapat muncul dalam jawaban versi 1, jadi kode Anda sebaiknya mengabaikan key yang tidak dikenalnya. Menghapus atau mengganti nama field akan disertai versi baru di path, bukan sebagai perubahan pada v1.
Pertanyaan seputar referensi API
Bisakah saya mengirim permintaan POST dengan body JSON?
Tidak di versi 1: kedua endpoint menerima permintaan GET dengan parameter di query string. Ini membuat setiap panggilan mudah direproduksi dengan curl atau browser, dan mudah dicatat log-nya tanpa body.
Berapa banyak hasil yang dikembalikan satu pencarian?
Sekitar 10 hasil organik per halaman, sebagaimana yang disajikan Google sejak berhenti mematuhi num=100 pada September 2025; setiap halaman tambahan dikenai satu kredit lagi. Untuk mengumpulkan 30 hasil, minta page=1, page=2, dan page=3: tiga pencarian, tiga kredit.
Apa yang terjadi jika kredit saya habis?
Pencarian berikutnya mengembalikan 402 insufficient_credits dan tidak memakai apa pun. Beli pack lain dari saldo Anda di halaman harga; API key Anda tetap berfungsi dan pencarian langsung berlanjut.
Bisakah saya memakai API key yang sama dari beberapa server?
Bisa. API key tidak terikat pada alamat IP. Yang dibatasi adalah jumlah pencarian yang berjalan bersamaan pada akun: concurrency_limit di GET /credits menunjukkan angkanya.