API v1 · publik
Kirim WhatsApp dan email lewat satu API
Semua permintaan memakai kunci klien (nk_…) yang kami terbitkan untuk aplikasi Anda.
Kirim pesan, cek status pengiriman, dan pantau kuota dari endpoint yang sama.
- Base URL
- https://notifikasi.id
- Autentikasi
- Authorization: Bearer nk_…
- Format
- application/json
Mulai cepat
Satu request untuk mengirim pesan WhatsApp.
curl -X POST https://notifikasi.id/api/v1/messages \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{
"channel": "whatsapp",
"to": "628123456789",
"message": "Halo dari aplikasi saya"
}'
{
"data": {
"id": 128,
"channel": "whatsapp",
"recipient": "628123456789",
"status": "sent",
"provider_ref": "3EB0F5A9…",
"created_at": "2026-11-01T07:20:11Z"
}
}
Nomor telepon boleh ditulis 08…, 62…,
+62…, atau …@s.whatsapp.net — kami menormalkannya.
Untuk email, isi "channel":"email" dan tambahkan
subject.
Autentikasi
Kunci klien dikirim sebagai bearer token pada setiap request.
Authorization: Bearer nk_kzspIEKg4BEqTKfAxPMxA_…
- Kunci hanya ditampilkan sekali saat dibuat. Simpan di server Anda, jangan di aplikasi mobile.
- Kunci bisa dirotasi atau dinonaktifkan kapan saja; kunci lama langsung berhenti bekerja.
- Setiap kunci punya batas laju per menit dan kuota harian. Respons
429menyertakan headerX-Quota-LimitdanX-Quota-Used. - Kunci terikat pada satu nomor pengirim WhatsApp (gateway). Nomor pengirim tidak bisa dipilih bebas.
Endpoint
Semua path relatif terhadap https://notifikasi.id.
| Method | Path | Keterangan |
|---|---|---|
| POST | /api/v1/messages |
Send a notification
Body: {channel, to, message} plus subject for email. Requires a client key. |
| GET | /api/v1/messages/{id} |
Message status
Returns one message that belongs to the calling client. |
| GET | /api/v1/client |
Client info
Limits, remaining quota, and usage for the calling client. |
| GET | /api/v1/client/gateways |
Assigned gateway
Shows the WhatsApp gateway the calling client sends through, as set by the operator. |
Contoh
Ganti $KEY dengan kunci klien Anda.
curl -X POST https://notifikasi.id/api/v1/messages \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{
"channel": "email",
"to": "pelanggan@example.com",
"subject": "Pesanan dikirim",
"message": "Paket Anda sedang dalam perjalanan."
}'
# gateway dipilih otomatis dari assignment yang diatur operator
curl -X POST https://notifikasi.id/api/v1/messages \
-H "Authorization: Bearer $KEY" \
-H "Content-Type: application/json" \
-d '{"channel":"whatsapp","to":"628123456789","message":"Halo"}'
# lihat gateway yang dipakai kunci ini
curl -H "Authorization: Bearer $KEY" https://notifikasi.id/api/v1/client/gateways
Status dan kuota
curl -H "Authorization: Bearer $KEY" https://notifikasi.id/api/v1/messages/128 curl -H "Authorization: Bearer $KEY" https://notifikasi.id/api/v1/client
Respons dan kode status
Sukses: 201 dengan {"data": …}. Gagal:
{"error": {"code", "message"}}.
| Status | Arti |
|---|---|
201 | Pesan diterima dan sudah dikirim ke penyedia |
401 | Kunci tidak ada, salah, atau sudah dirotasi |
403 | Klien nonaktif |
404 | Pesan tidak ditemukan |
422 | Validasi gagal: channel, nomor tujuan, atau isi pesan |
429 | Batas laju per menit atau kuota harian habis |
502 | Penyedia menolak; data.id berisi id pesan yang gagal untuk ditelusuri |
{"error": {"code": "quota_exceeded", "message": "Daily quota of 1000 messages reached."}}
Catatan operasional
- Isi pesan maksimal 4096 karakter; formatting WhatsApp (
*bold*,_italic_) diteruskan apa adanya. - Pengiriman bersifat sinkron: respons
201berarti pesan sudah diterima engine WhatsApp. - Semua percobaan pengiriman tercatat dan bisa dipantau lewat console (menu WhatsApp outbox).
- Pesan masuk ke nomor Anda dapat diteruskan otomatis ke daftar nomor lain (forwarding) — atur dari console.
- Spesifikasi mesin: OpenAPI 3.1.