Langkah 1
Kirim POST JSON
Pilih endpoint sesuai kebutuhan, sertakan url target (dan siteKey bila diminta) plus header Content-Type.
Tiga endpoint JSON untuk Turnstile, WAF cf_clearance, dan reCAPTCHA v3. Satu kontrak, tanpa SDK wajib.
Semua request POST JSON dengan header Content-Type: application/json — tanpanya server menjawab 403.
Langkah 1
Pilih endpoint sesuai kebutuhan, sertakan url target (dan siteKey bila diminta) plus header Content-Type.
Langkah 2
Sukses selalu 200 + status "success". Ambil token atau cookies + userAgent dari body.
Langkah 3
Teruskan token ke backend target, atau kirim cf_clearance bersama userAgent sebagai cookie. Tangani 503/504 dengan retry.
/api/turnstile — minta token Turnstile single-use lewat halaman render terisolasi. Token berlaku ±300 detik dan tidak pernah di-cache.
/api/challenge — navigasi target asli lalu poll cookie cf_clearance hingga lolos. Hanya cookie clearance yang dikembalikan.
/api/recaptcha — token berbasis skor. Hanya v3 yang didukung; sitekey v2 checkbox gagal bersih sebagai 504.
Semua error berbentuk { "code", "status": "error", "message" }. Petakan code ke aksi retry berikut.
| CODE | ARTI | AKSI |
|---|---|---|
| 200 | Sukses — status "success" | Pakai token / cookie yang dikembalikan |
| 400 | URL / siteKey / parameter tidak valid | Perbaiki input, jangan retry buta |
| 403 | Tanpa header JSON, atau IP diblokir admin | Tambahkan Content-Type; hubungi admin bila diblokir |
| 404 | Endpoint / method salah | Cek path dan method HTTP |
| 413 | Body > 16 KB | Kecilkan payload |
| 429 | Rate limit nginx terlampaui / konteks browser penuh | Retry dengan backoff beberapa detik |
| 503 | Antrean penuh / solver pause / warming | Retry dengan backoff; cek /api/status |
| 504 | WAF tak lolos / token v3 gagal | Retry sekali; pastikan sitekey v3 |
| 500 | Gagal internal / parameter wajib hilang | Cek pesan message, lengkapi parameter |