CLOUDFLARE · TURNSTILE · SOLVER
Bypass Turnstile Docs
Solver Cloudflare Turnstile berbasis browser headless dengan dua mode: min untuk widget otomatis dan max untuk widget interaktif (checkbox). Wajib apikey, dengan refund otomatis setiap kali solver gagal.
Solve — POST /api/bypass
Selesaikan tantangan Cloudflare Turnstile dengan browser headless. Alias path: /api/bypass/solve dan /api/bypass-cf. Menerima GET (query) maupun POST (JSON body).
| Parameter | Wajib | Default | Keterangan |
|---|---|---|---|
apikey | Ya | - | Wajib. Query ?apikey=, header x-api-key, Bearer, atau body JSON. |
type | Ya | - | turnstile-min (cost 5) untuk widget auto/non-interactive, turnstile-max (cost 10) untuk widget auto + interactive/checkbox. |
url | Ya | - | URL halaman yang memuat widget Turnstile. |
sitekey | Tidak | - | Sitekey eksplisit. Bila kosong, solver membaca sitekey dari halaman. |
proxy | Tidak | - | Proxy untuk sesi browser solver. |
timeout | Tidak | - | Batas waktu tunggu token (ms). |
width / height | Tidak | - | Ukuran viewport browser solver. |
record / recordDir | Tidak | - | Rekam proses solver (debugging). |
Contoh
curl -X POST "https://DOMAIN_ANDA/api/bypass/solve" \
-H "Content-Type: application/json" \
-H "x-api-key: KEY" \
-d '{"type": "turnstile-min", "url": "https://contoh.com/berturnstile"}'const r = await fetch('https://DOMAIN_ANDA/api/bypass/solve', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'x-api-key': 'KEY' },
body: JSON.stringify({ type: 'turnstile-min', url: 'https://contoh.com/berturnstile' })
});
const d = await r.json();
console.log(d.success ? d.token : d.message);import requests
d = requests.post('https://DOMAIN_ANDA/api/bypass/solve',
json={'type': 'turnstile-min', 'url': 'https://contoh.com/berturnstile'},
headers={'x-api-key': 'KEY'}).json()
print(d.get('token') or d.get('message'))Respons
{
"ok": true,
"success": true,
"type": "turnstile-min",
"token": "0.xxxxxxxxxxxxxxxxxx", // token Turnstile siap dipakai
"remaining": 95, // sisa limit panel
"elapsed_ms": 8213
}
BYPASS_FAILED), biaya limit langsung dikembalikan — Anda tidak kehilangan limit atas kegagalan.Pilih Tipe Solver
turnstile-min · cost 5
Untuk widget auto / non-interactive (tanpa checkbox). Polling token sampai solved. Lebih cepat dan lebih murah.
turnstile-max · cost 10
Untuk widget interactive yang menampilkan checkbox — solver menunggu lalu mengeklik checkbox secara programatik. Lebih lambat, biaya dua kali lipat.
Health — GET /api/bypass?health
Cek ketersediaan engine tanpa biaya limit. Respons memuat versi, engine, endpoint, dan daftar tipe solver beserta biayanya.
curl "https://DOMAIN_ANDA/api/bypass?action=health"const h = await fetch('https://DOMAIN_ANDA/api/bypass?action=health').then(r => r.json());h = requests.get('https://DOMAIN_ANDA/api/bypass?action=health').json()Kode Status
Khusus bypass:
| Status | Code | Arti |
|---|---|---|
| 400 | TYPE_REQUIRED | Parameter type kosong / tidak dikenal. |
| 401 | AUTH_ERROR | Apikey tidak terkirim atau tidak valid — lihat apikey_methods pada respons. |
| 403 | PANEL_DENIED | Limit panel habis untuk biaya tipe solver terpilih. |
| 504 | BYPASS_FAILED | Solver gagal mendapat token — limit sudah direfund otomatis. |