Mulai cepat dengan API developer
Beli nomor dan baca kode dari perangkat lunak Anda sendiri. Buat kunci, cek harga, beli nomor, tunggu SMS, lalu selesaikan, langkah demi langkah.
Di halaman ini
API developer SmsGrab memberi perangkat lunak Anda nomor yang sama dengan aplikasi, melalui REST API berbasis JSON. Ini produk berbayar dengan harga developer tersendiri, dibayar dari saldo SmsGrab biasa, dan dilindungi pengembalian dana otomatis yang sama.
Siapa yang bisa memakai
- Akun email dengan alamat yang sudah dikonfirmasi. Akun tamu tidak bisa membuat kunci.
- Akun yang tidak dibatasi.
1. Buat kunci API
Buka Akun > Developer di situs web, atau Pengaturan > API developer di aplikasi, lalu buat kunci. Demi keamanan, Anda mengonfirmasi dengan kata sandi, dan dengan kode verifikasi 2 langkah jika aktif. Pilih cakupan read untuk alat yang hanya membaca, atau read dan purchase untuk membeli nomor.
Kunci diawali sgk_ dan hanya ditampilkan sekali. Simpan di penyimpanan rahasia server Anda. Lihat Kunci API dan keamanan.
2. Autentikasi
URL dasarnya adalah https://smsgrab.com/api/dev/v1. Kirim kunci sebagai bearer token, atau di header X-Api-Key:
GET /api/dev/v1/balance HTTP/1.1
Host: smsgrab.com
Authorization: Bearer sgk_your_key_here
Kunci tempatnya di server. Jangan pernah menaruhnya di situs web, ekstensi browser, atau aplikasi yang Anda berikan kepada orang lain.
3. Cek saldo dan harga
export SMSGRAB_KEY="sgk_your_key_here"
curl -s https://smsgrab.com/api/dev/v1/balance \
-H "Authorization: Bearer $SMSGRAB_KEY"
curl -s "https://smsgrab.com/api/dev/v1/prices?service=whatsapp&country=indonesia" \
-H "Authorization: Bearer $SMSGRAB_KEY"
Uang selalu dinyatakan dalam satuan terkecil USD, jadi 18 berarti 0,18 USD. price_minor adalah harga developer Anda dan retail_price_minor adalah harga di aplikasi.
{ "currency": "USD", "markup_percent": 80,
"items": [ { "service_id": "whatsapp", "country_id": "indonesia", "price_minor": 18,
"retail_price_minor": 25, "available_numbers": 30412 } ] }
4. Beli nomor
curl -s -X POST https://smsgrab.com/api/dev/v1/activations \
-H "Authorization: Bearer $SMSGRAB_KEY" \
-H "Idempotency-Key: order-7f3c2a" \
-H "Content-Type: application/json" \
-d '{"service":"whatsapp","country":"indonesia","max_price_minor":20}'
servicedancountrymenerima id kami, sepertiwhatsappdanindonesia. Negara juga menerima kode ISO sepertiID.max_price_minormelindungi Anda: jika harga naik, tidak ada yang dipotong dan Anda mendapat409 PRICE_CHANGED.Idempotency-Keymembuat pengulangan aman. Mengulang permintaan dengan kunci yang sama mengembalikan hasil pertama, bukan membeli dua kali.
Jawabannya adalah 201 Created beserta aktivasinya:
{ "id": "5c1d0c2e-8a41-4f7e-9d7a-2f1d9f1b8c11", "compat_id": 100000123, "status": "WAITING_SMS",
"service_id": "whatsapp", "country_id": "indonesia", "phone_number": "+6281234567890",
"price_minor": 18, "currency": "USD",
"created_at": "2026-09-27T10:05:00.000Z", "expires_at": "2026-09-27T10:25:00.000Z",
"refunded": false, "refund_minor": 0, "sms": [] }
5. Tunggu SMS
Daripada terus bertanya dalam loop rapat, biarkan API menahan permintaan hingga 30 detik sampai ada perubahan:
curl -s "https://smsgrab.com/api/dev/v1/activations/100000123?wait=25" \
-H "Authorization: Bearer $SMSGRAB_KEY"
Saat pesan masuk, status berubah menjadi CODE_RECEIVED dan sms berisi semua pesan sejauh ini:
{ "status": "CODE_RECEIVED",
"sms": [ { "code": "482913", "text": "Your WhatsApp code is 482-913", "sender": "WhatsApp",
"received_at": "2026-09-27T10:06:12.004Z" } ] }
Lebih suka push daripada polling? Siapkan webhook.
6. Selesaikan atau batalkan
curl -s -X POST https://smsgrab.com/api/dev/v1/activations/100000123/finish \
-H "Authorization: Bearer $SMSGRAB_KEY"
curl -s -X POST https://smsgrab.com/api/dev/v1/activations/100000123/cancel \
-H "Authorization: Bearer $SMSGRAB_KEY"
- finish setelah Anda memakai kode. Hanya diterima setelah kode masuk.
- cancel selagi masih menunggu kode pertama. Seluruh harga dikembalikan.
- Jika Anda tidak melakukan apa pun, nomor tanpa kode kedaluwarsa setelah 20 menit dan dikembalikan otomatis.
Nilai status
| Status | Arti |
|---|---|
WAITING_SMS |
Dibeli, menunggu pesan pertama |
CODE_RECEIVED |
Minimal satu pesan sudah masuk |
COMPLETED |
Diselesaikan oleh Anda, atau saat waktu habis setelah ada kode |
CANCELLED |
Dibatalkan sebelum ada kode, dikembalikan |
EXPIRED |
Tidak ada kode dalam 20 menit, dikembalikan |
Galat
Setiap galat punya bentuk yang sama. Bertindaklah berdasarkan code dan reason, dan abaikan alasan yang belum Anda kenal:
{ "code": "NO_NUMBERS_AVAILABLE", "message": "No numbers available for this service and country", "reason": "OUT_OF_STOCK" }
Kasus umum adalah 402 INSUFFICIENT_BALANCE, 409 NO_NUMBERS_AVAILABLE, 409 PRICE_CHANGED, 422 dengan ACTIVATION_LIMIT_REACHED (maksimal 100 nomor bisa menunggu bersamaan per akun), dan 429 RATE_LIMITED dengan header Retry-After.
Referensi lengkapnya ada di dokumentasi developer.
Apakah artikel ini membantu?
Terima kasih! Senang bisa membantu.