Cek Bio WhatsApp massal, detect status OTP, dan kelola API Key dengan mudah. Khusus pengguna Premium.
Periksa bio & info WhatsApp banyak nomor sekaligus dalam satu request.
Pantau status cooldown OTP nomor WhatsApp tanpa perlu sesi WA aktif.
Generate, regenerate, atau revoke API Key kapan saja lewat endpoint publik.
https://api.wspro.dev
Semua endpoint (kecuali /api/docs dan /api/generate-key) butuh API Key. Kirim lewat salah satu cara:
X-API-Key: dl_xxx
?api_key=dl_xxx
"api_key": "dl_xxx"
429. Tunggu 60 detik sebelum retry.
Dokumentasi endpoint dalam format JSON. Tidak butuh autentikasi.
{
"name": "DetekLimitin API",
"version": "1.1",
"bot_username": "namabot",
"bot_url": "https://t.me/namabot",
"rate_limit": "30 request per menit",
"endpoints": [...]
}Generate atau regenerate API Key. User harus sudah Premium. Key lama langsung tidak berlaku.
{ "telegram_id": 123456789 }{
"success": true,
"api_key": "dl_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"regenerated": false,
"message": "Simpan API Key ini — hanya ditampilkan sekali."
}| Kode | Penyebab |
|---|---|
| 400 | telegram_id kosong atau bukan angka |
| 403 | User belum atau sudah tidak Premium |
| 404 | User tidak ditemukan (belum pernah /start bot) |
Revoke API Key aktif. Setelah ini key tidak bisa dipakai dan harus generate ulang.
X-API-Key: dl_xxx
{ "success": true, "message": "API Key berhasil di-revoke." }Info akun dan sisa rate limit dari API Key yang dipakai.
{
"success": true,
"userId": 123456789,
"username": "namauser",
"premium": false,
"apiPlan": { "id": "api_starter", "expiresAt": "2025-02-01T00:00:00.000Z" },
"quota": {
"planId": "api_starter",
"planName": "Starter (30 Hari)",
"expiresAt": "2025-02-01T00:00:00.000Z",
"quotaPeriod": "lifetime",
"cekBio": { "used": 250, "max": 500, "planMax": 1000, "custom": 500 },
"detect": { "used": 80, "max": 500, "planMax": 500, "custom": null },
"limitin": { "used": 10, "max": 100, "planMax": 100, "custom": null }
},
"rateLimit": { "remaining": 28, "max": 30, "window": "60s" }
}max = limit efektif (custom jika di-set, planMax jika tidak). custom: null = pakai default plan.
Set limit custom per fitur — boleh lebih rendah dari batas plan. Kirim "default" atau null untuk reset ke default plan. Hanya field yang dikirim yang berubah.
{
"cekBio": 500,
"detect": null,
"limitin": "default"
}| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
| cekBio | number | "default" | Opsional | Maks sesuai plan. null / "default" = reset ke planMax |
| detect | number | "default" | Opsional | Sama seperti di atas |
| limitin | number | "default" | Opsional | Sama seperti di atas |
{
"success": true,
"message": "Custom limit berhasil diupdate.",
"customLimits": {
"cekBio": 500,
"detect": null,
"limitin": null
}
}| Kode | Penyebab |
|---|---|
| 400 | Nilai bukan integer ≥ 0 atau melebihi planMax |
| 403 | Tidak ada plan API aktif |
Status sesi WhatsApp yang terhubung ke akun kamu. Cek ini sebelum pakai /api/cek-bio.
{
"success": true,
"status": "CONNECTED",
"ready": true,
"sessions": [{ "sessionId": 1, "phone": "628123456789" }],
"hint": "Sesi aktif. Siap untuk Cek Bio."
}ready: false — connect WA dulu lewat bot Telegram sebelum menggunakan /api/cek-bio.
Cek bio WhatsApp massal. Butuh sesi WA aktif — connect dulu lewat bot Telegram.
{
"numbers": ["6281234567890", "6289876543210"],
"mode": "simple",
"speed": "normal"
}| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
| numbers | string[] | ✦ Wajib | Maks 50 nomor format internasional |
| mode | string | Opsional | simple (default) atau detail |
| speed | string | Opsional | normal (default) atau brutal |
{
"success": true,
"mode": "simple",
"summary": { "total": 2, "registered": 1, "unregistered": 1 },
"results": {
"private": [{
"number": "6281234567890",
"registered": true,
"bio": "Halo!",
"hasBio": true,
"profilePic": true
}],
"unregistered": [{ "number": "6289876543210", "registered": false }]
}
}| Kode | Penyebab |
|---|---|
| 400 | Array kosong, nomor tidak valid, atau melebihi 50 |
| 503 | Sesi WA belum aktif |
| 504 | Timeout — kurangi jumlah nomor |
Cek status cooldown OTP nomor WhatsApp. Tidak butuh sesi WA.
{ "number": "6281234567890" }{
"success": true,
"number": "6281234567890",
"status": "ready",
"sms": { "status": "ready", "waitSec": 0, "cooldownFmt": "READY" },
"wa_old": { "status": "cooldown", "waitSec": 150, "cooldownFmt": "COOLDOWN 2m 30s" }
}| Nilai | Arti |
|---|---|
| ready | Nomor siap terima OTP |
| cooldown | Masih cooldown, lihat waitSec |
| banned | Nomor diblokir platform |
| invalid | Nomor tidak valid |
Kirim OTP berulang ke nomor WhatsApp. Tidak butuh sesi WA.
{
"number": "6281234567890",
"method": "sms",
"max_attempts": 5
}| Field | Tipe | Wajib | Keterangan |
|---|---|---|---|
| number | string | ✦ Wajib | Format internasional, contoh: 6281234567890 |
| method | string | Opsional | sms, voice, wa_old, flash |
| max_attempts | number | Opsional | 1–10, default 5 |
{
"success": true,
"status": "sent",
"sent_count": 3,
"results": [
{ "attempt": 1, "sent": false, "status": "cooldown" },
{ "attempt": 2, "sent": false, "status": "cooldown" },
{ "attempt": 3, "sent": true, "status": "sent" }
]
}| Nilai | Arti |
|---|---|
| sent | OTP berhasil dikirim minimal sekali |
| cooldown | Semua attempt kena cooldown |
| blocked | Nomor diblokir / banned |
| disabled | Method tidak tersedia untuk nomor ini |
| timeout | Melebihi batas waktu 5 menit |
Buka bot Telegram dan klik Beli Premium, lalu selesaikan pembayaran via QRIS.
Setelah Premium aktif, panggil POST /api/generate-key dengan telegram_id kamu.
Simpan API Key yang diberikan — tidak bisa dilihat lagi setelah ini.
Kalau lupa atau mau ganti, panggil endpoint yang sama lagi — key lama langsung tidak berlaku.
| Kode | Arti |
|---|---|
| 400 | Bad request — input salah atau tidak lengkap |
| 401 | API Key tidak ada atau tidak valid |
| 403 | Belum Premium / plan API tidak aktif |
| 404 | User tidak ditemukan |
| 429 | Rate limit (30 req/menit) atau kuota fitur habis |
| 500 | Server error |
| 503 | Layanan tidak tersedia (sesi WA belum aktif) |
| 504 | Gateway timeout |