Mulai dari sini untuk menghubungkan nomor WhatsApp dan mendapatkan token.
Dokumentasi API
Format request/response API ini mengikuti gaya Fonnte: token dikirim lewat header
Authorization (tanpa awalan "Bearer"), dan tiap nomor WhatsApp punya token
sendiri.
Kirim pesan teks ke satu atau beberapa nomor tujuan.
POSTsend
curl -X POST send \
-H "Authorization: TOKEN_NOMOR_ANDA" \
-H "Content-Type: application/json" \
-d '{
"target": "6285226061579,6281234567890",
"message": "Halo, ini pesan tes"
}'
Header Authorization |
Required | Token milik nomor pengirim (didapat dari halaman /device setelah scan QR) |
|---|---|---|
| target | Required | Nomor tujuan, gunakan kode negara. Beberapa nomor dipisah koma. Contoh: 6281223xxxx,6281223yyyy |
| message | Required | Isi pesan teks |
Contoh response sukses:
{
"status": true,
"detail": "success! message sent",
"device": "6285640431181",
"results": [
{ "target": "6285226061579", "status": true, "id": "3EB0XXXXXXXXXXXXXXXX" }
]
}
Contoh response gagal (token salah):
{
"status": false,
"reason": "invalid token"
}
Kirim gambar/video/audio/dokumen ke satu atau beberapa nomor tujuan — dari URL publik, atau upload file langsung.
POSTsend-media
Cara 1 — dari URL:
curl -X POST send-media \
-H "Authorization: TOKEN_NOMOR_ANDA" \
-H "Content-Type: application/json" \
-d '{
"target": "6285226061579",
"url": "https://situs-anda.com/gambar.jpg",
"caption": "Ini fotonya",
"type": "image"
}'
Cara 2 — upload file langsung (multipart/form-data):
curl -X POST send-media \
-H "Authorization: TOKEN_NOMOR_ANDA" \
-F "target=6285226061579" \
-F "caption=Ini fotonya" \
-F "type=image" \
-F "file=@/path/ke/gambar.jpg"
Header Authorization |
Required | Token milik nomor pengirim |
|---|---|---|
| target | Required | Nomor tujuan, beberapa nomor dipisah koma |
| url | Required jika file tidak dikirim |
Link media publik, akan diunduh dulu oleh server |
| file | Required jika url tidak dikirim |
File media, dikirim langsung sebagai multipart/form-data
(field name file). Kalau keduanya dikirim, file yang dipakai. |
| type | Optional | image, video,
audio, atau document —
kalau tidak diisi, dideteksi otomatis dari Content-Type
|
| filename | Optional | Nama file, dipakai untuk dokumen (upload langsung memakai nama file asli kalau tidak diisi) |
| caption | Optional | Tidak berlaku untuk audio |
Tidak ada batasan ukuran file secara default (bisa diatur lewat env
MAX_MEDIA_MB di server kalau perlu).
Setiap kali nomor ini menerima pesan baru dari orang lain, aplikasi akan mem-forward (POST) data pesan tersebut ke URL webhook yang Anda daftarkan.
POSTwebhook
curl -X POST webhook \
-H "Authorization: TOKEN_NOMOR_ANDA" \
-H "Content-Type: application/json" \
-d '{ "url": "https://situs-anda.com/endpoint-webhook" }'
Kirim "url": "" (string kosong) untuk menonaktifkan webhook.
Cek konfigurasi webhook saat ini:
GETwebhook
curl webhook \
-H "Authorization: TOKEN_NOMOR_ANDA"
{
"device": "6285640431181",
"sender": "6281234567890",
"member": null,
"name": "Nama Pengirim",
"message": "isi pesan dari lawan chat",
"isGroup": false,
"id": "3EB0XXXXXXXXXXXXXXXX",
"timestamp": 1700000000
}
Catatan: member hanya terisi kalau pesan
berasal dari grup (berisi nomor pengirim di dalam grup tersebut). Saat ini hanya pesan berupa
teks (termasuk caption gambar/video, dan balasan tombol/list) yang diteruskan.
Pesan dari grup WhatsApp diabaikan secara default —
tidak diteruskan ke webhook sama sekali (bisa diaktifkan lewat env
IGNORE_GROUP_MESSAGES=false di server).