API
Kirim Pesan Teks & Media
POST /messages/send
Endpoint
POST /messages/sendBase URL
https://dash.ngirimwa.com/api/v1Headers
x-api-key: API_KEY_ANDA
Content-Type: application/json
Idempotency-Key: <uuid-unik-per-request>
Idempotency-Keyopsional tapi sangat disarankan untuk production. Lihat Autentikasi → Idempotency-Key.
Kirim Pesan Teks
Kirim pesan teks sederhana ke nomor WhatsApp.
Request
{
"to": "628123456789",
"message": "Halo, terima kasih telah berbelanja di toko kami!"
}Respon Sukses
{
"success": true,
"message": "Message sent successfully"
}Parameter
| Parameter | Tipe | Wajib | Deskripsi |
|---|---|---|---|
to | string | ✅ | Nomor telepon penerima |
message | string | ✅ | Isi pesan |
Format Nomor Penerima (field to)
Berlaku untuk semua endpoint kirim (/send, /send-template, /quick-reply, /interactive, /buttons, /list, /carousel):
| Format | Contoh | Hasil normalisasi |
|---|---|---|
| Internasional Indonesia (rekomendasi) | 628123456789 | tetap 628123456789 |
| Lokal Indonesia | 08123456789 | 628123456789 |
| Tanpa awalan (10–12 digit) | 8123456789 | 628123456789 |
| Internasional non-Indonesia | 60123456789 (Malaysia), 14155551234 (US) | tetap (asal include country code) |
| ID grup WhatsApp | 120363123456789012@g.us | tetap (kirim ke grup) |
Panjang nomor valid: 8–15 digit (sesuai standar ITU-T E.164). Karakter selain digit (+, -, spasi) otomatis dibersihkan.
Kirim Pesan dengan Efek Mengetik
Untuk membuat pesan terasa lebih natural (cocok untuk chatbot), gunakan opsi humanlike:
{
"to": "628123456789",
"message": "Terima kasih atas pertanyaannya! Berikut jawabannya...",
"humanlike": {
"enabled": true,
"typing_duration": "auto"
}
}Parameter humanlike:
| Parameter | Nilai | Deskripsi |
|---|---|---|
| enabled | true/false | Aktifkan efek mengetik |
| typing_duration | “auto” | Durasi otomatis berdasarkan panjang pesan |
| typing_duration | 3000 | Durasi manual dalam milidetik |
Kirim Pesan Teks + Media
Kirim Gambar
{
"to": "628123456789",
"media": "https://domain-anda.com/images/produk.jpg",
"media_type": "image",
"message": "Produk terbaru kami!"
}Kirim Video
{
"to": "628123456789",
"media": "https://domain-anda.com/videos/promo.mp4",
"media_type": "video",
"message": "Video promo spesial!"
}Kirim Dokumen (PDF, Word, Excel)
{
"to": "628123456789",
"media": "https://domain-anda.com/files/invoice.pdf",
"media_type": "document",
"file_name": "Invoice_Desember_2025.pdf",
"message": "Berikut invoice pesanan Anda"
}Kirim Audio
{
"to": "628123456789",
"media": "https://domain-anda.com/audio/notification.mp3",
"media_type": "audio"
}Parameter Media Lengkap
| Paramater | Tipe | Wajib | Deskripsi |
|---|---|---|---|
| to | string | ✅ | Nomor telepon penerima |
| media | string | ✅ | URL media atau data base64 |
| media_type | string | ✅ | Tipe: image, video, audio, document |
| message | string | ❌ | Caption (opsional) |
| file_name | string | ❌ | Nama file untuk dokumen |
Format Media yang Didukung
| Tipe | Format | Ukuran Maks |
|---|---|---|
| image | JPG, PNG, GIF | 16 MB |
| video | MP4, AVI, MOV | 64 MB |
| audio | MP3, OGG, WAV | 16 MB |
| document | PDF, DOC, DOCX, XLS, XLSX | 100 MB |
Batasan Teks (mengikuti limit WhatsApp)
| Field | Batas karakter (perkiraan) |
|---|---|
message (teks tanpa media) | ~4.096 |
message (caption media) | ~1.024 |
file_name | 255 |
Sistem tidak memvalidasi karakter melebihi limit di atas — namun WhatsApp client akan memotong tampilan pesan yang terlalu panjang. Pakai limit ini sebagai pegangan agar pesan tampil utuh.
Contoh cURL
Kirim Pesan Teks
curl -X POST https://dash.ngirimwa.com/api/v1/messages/send \
-H "x-api-key: API_KEY_ANDA" \
-H "Content-Type: application/json" \
-d '{
"to": "628123456789",
"message": "Halo dari NgirimWA!"
}'Kirim Gambar
curl -X POST https://dash.ngirimwa.com/api/v1/messages/send \
-H "x-api-key: API_KEY_ANDA" \
-H "Content-Type: application/json" \
-d '{
"to": "628123456789",
"media": "https://domain-anda.com/gambar.jpg",
"media_type": "image",
"message": "Produk terbaru!"
}'