Ambil hasil ronda Rondain lewat kode sendiri: status blokir Komdigi dan IndiHome, uptime, SSL, masa aktif domain, skor, posisi Google, dan riwayat kejadian. Pas untuk dashboard kantor, sistem agensi, atau laporan ke klien.
Setiap jawaban membawa header berikut supaya aplikasimu tahu kapan harus berhenti:
Header
Isi
X-RateLimit-Limit
Jatah per hari paketmu.
X-RateLimit-Remaining
Sisa jatah hari ini.
X-RateLimit-Reset
Waktu jatah baru (detik Unix).
Retry-After
Hanya saat ditolak (429): berapa detik lagi boleh mencoba.
Data ronda diperbarui sesuai jadwal cek paketmu (lihat di atas), posisi Google sekali sehari. Memanggil API lebih sering dari itu tidak membuat datanya lebih baru, jadi cukup panggil tiap beberapa menit.
Format jawaban
Semua jawaban berupa JSON UTF-8. Jawaban yang berhasil selalu punya "ok": true dan isinya di data. Yang gagal punya "ok": false dan penjelasan di error.
Berhasil
{
"ok": true,
"data": {
"…": "…"
}
}
Gagal
{
"ok": false,
"error": {
"kode": "jatah_harian_habis",
"pesan": "Jatah 5000 permintaan hari ini sudah habis. Jatah baru mulai pukul 00.00 WIB.",
"reset": "2026-10-11T17:00:00.000Z"
}
}
Semua waktu dalam format ISO 8601 zona UTC (akhiran Z). Tambah 7 jam untuk WIB.
Nilai null artinya belum ada data (misalnya belum pernah dicek), bukan nol.
Pakai error.kode untuk logika program. error.pesan boleh berubah kata-katanya.
Endpoint
Semua endpoint memakai metode GET. Domain yang tidak ada di akunmu dijawab 404, sama seperti domain yang memang tidak ada.
GET/akun
Info akun dan sisa jatah
Paket aktif, jumlah domain, berapa hari riwayat yang disimpan, dan sisa jatah hari ini. Cocok dipanggil sekali saat aplikasimu mulai.
Semua domain di akunmu beserta hasil ronda terakhir: status Komdigi dan IndiHome, online atau tidak, SSL, masa aktif domain, skor, dan cek judi. Diurutkan menurut nama.
import os, requests
r = requests.get(
"https://staging.rondain.com/api/v1/domain/tokocontoh.id/posisi",
headers={"Authorization": f"Bearer {os.environ['RONDAIN_KEY']}"},
timeout=15,
)
json = r.json()
if not json["ok"]:
raise SystemExit(json["error"]["pesan"])
print(json["data"])
Contoh jawaban 200 OK
{
"ok": true,
"domain": "tokocontoh.id",
"jumlah": 2,
"catatan": "posisi null = tidak ditemukan di hasil_diperiksa hasil teratas Google (halaman 1, sekitar 10; belum dicek kalau dicek juga null). waktu_hasil = kapan hasil Google itu diambil. pemeriksaan_gagal true = cek terakhir gagal; posisi adalah hasil terakhir yang berhasil (null kalau belum pernah berhasil).",
"data": [
{
"kata_kunci": "sepatu lari murah",
"posisi": 4,
"posisi_sebelumnya": 6,
"posisi_terbaik": 3,
"url": "https://tokocontoh.id/sepatu-lari",
"dicek": "2026-10-11T01:12:40.000Z",
"hasil_diperiksa": 10,
"waktu_hasil": "2026-10-11T01:12:40.000Z",
"pemeriksaan_gagal": false
},
{
"kata_kunci": "sepatu lari original",
"posisi": null,
"posisi_sebelumnya": 9,
"posisi_terbaik": 7,
"url": null,
"dicek": "2026-10-11T01:12:41.000Z",
"hasil_diperiksa": 9,
"waktu_hasil": "2026-10-11T01:12:41.000Z",
"pemeriksaan_gagal": false
}
]
}
GET/insiden
Kejadian penting
Kejadian yang tercatat ronda, terbaru dulu: kena blokir dan dibuka lagi, situs mati dan hidup lagi, SSL bermasalah, domain atau SSL hampir habis, dan halaman judi yang disusupkan.
Parameter
Jenis
Keterangan
domain
opsional
Hanya kejadian untuk domain ini.
batas
angka, opsional
Jumlah per halaman, 1 sampai 100. Bawaan 50.
sebelum
angka, opsional
Untuk halaman berikutnya: isi dengan nilai "berikutnya" dari jawaban sebelumnya.
import os, requests
r = requests.get(
"https://staging.rondain.com/api/v1/insiden?batas=20",
headers={"Authorization": f"Bearer {os.environ['RONDAIN_KEY']}"},
timeout=15,
)
json = r.json()
if not json["ok"]:
raise SystemExit(json["error"]["pesan"])
print(json["data"])
Contoh jawaban 200 OK
{
"ok": true,
"berikutnya": null,
"data": [
{
"id": 90412,
"jenis": "up",
"tingkat": "baik",
"judul": "tokocontoh.id sudah bisa dibuka lagi",
"domain": "tokocontoh.id",
"waktu": "2026-10-10T14:22:05.000Z"
},
{
"id": 90398,
"jenis": "down",
"tingkat": "bahaya",
"judul": "tokocontoh.id tidak bisa dibuka",
"domain": "tokocontoh.id",
"waktu": "2026-10-10T14:12:03.000Z"
}
]
}
Arti nilai
Kolom
Nilai
Artinya
status
aman
Tidak diblokir dan bisa dibuka pada ronda terakhir.
diblokir
Ada di daftar blokir Komdigi (TrustPositif).
diblokir_indihome
Belum di daftar Komdigi, tapi DNS IndiHome sudah mengarahkannya ke halaman blokir.
down
Situs tidak bisa dibuka (dicek dua kali sebelum dinyatakan mati).
belum_dicek
Domain baru ditambahkan dan ronda pertama belum selesai.
komdigi.status
aman
Tidak ada di daftar TrustPositif.
diblokir
Ada di daftar TrustPositif.
belum
Belum pernah dicek.
indihome.status
normal
DNS IndiHome menjawab biasa.
diblokir
DNS IndiHome mengarahkan ke halaman blokir.
tidak_diketahui
DNS IndiHome tidak menjawab saat dicek. Dicek lagi di ronda berikutnya.
judi.status
bersih
Tidak ditemukan halaman judi yang disusupkan.
terdeteksi
Ada halaman judi di situsmu yang terindeks Google atau terbaca di halaman.
skor.*
0 sampai 100
Makin tinggi makin baik. kesehatan gabungan dari blokir, SSL, domain, uptime, kecepatan, dan SEO.
dijeda
true
Domain melebihi batas paket dan tidak sedang dironda.
Jenis kejadian di /insiden:
blokirkena blokir Komdigibuka_blokirblokir Komdigi dicabutisp_blokirdiblokir di IndiHomeisp_bukaIndiHome normal lagidownsitus matiupsitus hidup lagisslSSL bermasalahssl_habisSSL hampir habisdomain_habisdomain hampir habisjudihalaman judi ditemukanjudi_bersihhalaman judi sudah hilang
Kode error
HTTP
error.kode
Artinya dan yang perlu dilakukan
400
kunci_di_url
Kunci dikirim di alamat URL. Pindahkan ke header Authorization.
400
parameter_salah
Isi parameter tidak sah (misalnya hari bukan angka).
401
tanpa_kunci
Header Authorization tidak ada atau formatnya salah.
401
kunci_salah
Kunci tidak dikenal atau sudah dicabut.
403
paket_tanpa_api
Paket akun ini tidak termasuk API. Naik paket ke Pro atau Agency.
403
akun_nonaktif
Akun pemilik kunci sedang nonaktif. Hubungi Rondain.
404
domain_tidak_ada
Domain tidak ada di akunmu.
404
tidak_ada
Alamat endpoint salah.
405
metode_salah
Hanya GET yang diterima.
429
batas_per_menit
Terlalu cepat. Tunggu sesuai Retry-After.
429
jatah_harian_habis
Jatah hari ini habis. Mulai lagi pukul 00.00 WIB.
429
terlalu_banyak_gagal
Terlalu banyak kunci salah dari alamat IP-mu. Tunggu 10 menit.
500
gangguan
Gangguan di sisi Rondain. Coba lagi; sertakan kode di pesan kalau melapor.
503
sedang_sibuk
API sedang sibuk. Coba lagi nanti.
503
perawatan
Rondain sedang perawatan atau diperbarui. Coba lagi sesuai Retry-After.
Keamanan
Panggil dari server
API sengaja tidak bisa dipanggil langsung dari browser orang lain. Simpan kunci di server dan tampilkan hasilnya lewat aplikasimu sendiri.
Satu kunci per sistem
Beri nama yang jelas. Kalau satu sistem bocor, cukup cabut kunci itu saja tanpa mengganggu yang lain.
Periksa log
Di Akun › API JSON ada 50 panggilan terakhir lengkap dengan alamat IP. Ada IP asing? Cabut kuncinya.
Bukan alat cek massal
API hanya untuk domain yang sudah ada di akunmu. Untuk mengecek domain lain, tambahkan dulu di dasbor sesuai batas paket.
Versi
v1
11 Oktober 2026
Rilis pertama: akun, daftar domain, detail domain, riwayat harian, posisi Google, dan kejadian penting.
Kolom baru bisa ditambahkan di v1 tanpa pemberitahuan, jadi abaikan kolom yang tidak kamu kenal. Perubahan yang bisa merusak aplikasimu hanya akan masuk di versi baru (v2), dan v1 tetap jalan.
Siap mencoba?
Buat kunci di dasbor dan panggil /akun untuk memastikan semuanya tersambung.