API Dorongan Tunggal Batch
Batch Single Push API
Deskripsi Fungsi
Digunakan untuk notifikasi batch single push, memungkinkan beberapa pengguna target menerima push dalam satu panggilan. Mendukung pengiriman melalui registration_id atau alias:
- Push melalui registration_id:
POST /v4/batch/push/regid - Push melalui alias:
POST /v4/batch/push/alias - Batasan Kapabilitas:
- Maksimal 500 target push per permintaan
- Mendukung pemrosesan paralel untuk efisiensi
- Mengembalikan hasil sebagian sukses saat terjadi rate limiting
- API ini dan Push API menggunakan kuota QPS yang sama. Batch push ke 1 regid/alias = konsumsi 1 kuota QPS Push API.
Autentikasi
Tambahkan field autentikasi pada HTTP Header:
Authorization: Basic ${base64_auth_string}
Authorization: Basic ${base64_auth_string}
Tampilkan blok kode ini di jendela mengambang
- Cara pembuatan:
base64(username:password)username=AppKeyaplikasipassword=Master Secret
- Akses: Konsol → Pengaturan Aplikasi → Info Aplikasi
Endpoint
- Batch push via registration_id
POST /v4/batch/push/regid
POST /v4/batch/push/regid
Tampilkan blok kode ini di jendela mengambang
- Batch push via alias
POST /v4/batch/push/alias
POST /v4/batch/push/alias
Tampilkan blok kode ini di jendela mengambang
Contoh Permintaan
1. Batch push via registration_id
curl --insecure -X POST -v https://webpushapi-sgp.engagelab.com/v4/batch/push/regid \
-H "Content-Type: application/json" \
-u "c96f42e0d2e662e45d035ab1:df4d59e84eac2f9d53b36f12" \
-d '{
"requests": [
{
"target": "registration_id_1",
"platform": "web",
"notification": {
"alert": "Hi,Push !",
"web": {
"alert": "Hi,Push !",
"title": "web_push",
"url": "http://www.google.com",
"extras": {
"web-key1": "web-value1"
}
}
},
"options": {
"time_to_live": 60,
"apns_production": false
},
"custom_args": {
"business": "info"
}
},
{
"target": "registration_id_2",
"platform": "web",
"notification": {
"alert": "Hi,MTPush !",
"web": {
"alert": "Hi,MTPush !",
"title": "web_push",
"url": "http://www.google.com",
"extras": {
"web-key1": "web-value1"
}
}
},
"options": {
"time_to_live": 60,
"apns_production": false
}
}
]
}'
curl --insecure -X POST -v https://webpushapi-sgp.engagelab.com/v4/batch/push/regid \
-H "Content-Type: application/json" \
-u "c96f42e0d2e662e45d035ab1:df4d59e84eac2f9d53b36f12" \
-d '{
"requests": [
{
"target": "registration_id_1",
"platform": "web",
"notification": {
"alert": "Hi,Push !",
"web": {
"alert": "Hi,Push !",
"title": "web_push",
"url": "http://www.google.com",
"extras": {
"web-key1": "web-value1"
}
}
},
"options": {
"time_to_live": 60,
"apns_production": false
},
"custom_args": {
"business": "info"
}
},
{
"target": "registration_id_2",
"platform": "web",
"notification": {
"alert": "Hi,MTPush !",
"web": {
"alert": "Hi,MTPush !",
"title": "web_push",
"url": "http://www.google.com",
"extras": {
"web-key1": "web-value1"
}
}
},
"options": {
"time_to_live": 60,
"apns_production": false
}
}
]
}'
Tampilkan blok kode ini di jendela mengambang
2. Batch push via alias
curl --insecure -X POST -v https://webpushapi-sgp.engagelab.com/v4/batch/push/alias \
-H "Content-Type: application/json" \
-u "c96f42e0d2e662e45d035ab1:df4d59e84eac2f9d53b36f12" \
-d '{
"requests": [
{
"target": "user_alias_1",
"platform": "web",
"notification": {
"alert": "Hi,Push !",
"web": {
"alert": "Hi,Push !",
"title": "web_push",
"url": "http://www.google.com",
"extras": {
"web-key1": "web-value1"
}
}
},
"options": {
"time_to_live": 60,
"apns_production": false
}
},
{
"target": "user_alias_2",
"platform": "web",
"notification": {
"alert": "Hi,MTPush !",
"web": {
"alert": "Hi,MTPush !",
"title": "web_push",
"url": "http://www.google.com",
"extras": {
"web-key1": "web-value1"
}
}
},
"options": {
"time_to_live": 60,
"apns_production": false
}
}
]
}'
curl --insecure -X POST -v https://webpushapi-sgp.engagelab.com/v4/batch/push/alias \
-H "Content-Type: application/json" \
-u "c96f42e0d2e662e45d035ab1:df4d59e84eac2f9d53b36f12" \
-d '{
"requests": [
{
"target": "user_alias_1",
"platform": "web",
"notification": {
"alert": "Hi,Push !",
"web": {
"alert": "Hi,Push !",
"title": "web_push",
"url": "http://www.google.com",
"extras": {
"web-key1": "web-value1"
}
}
},
"options": {
"time_to_live": 60,
"apns_production": false
}
},
{
"target": "user_alias_2",
"platform": "web",
"notification": {
"alert": "Hi,MTPush !",
"web": {
"alert": "Hi,MTPush !",
"title": "web_push",
"url": "http://www.google.com",
"extras": {
"web-key1": "web-value1"
}
}
},
"options": {
"time_to_live": 60,
"apns_production": false
}
}
]
}'
Tampilkan blok kode ini di jendela mengambang
Parameter Permintaan
Struktur body permintaan:
{
"requests": [
{
"target": "string", // Wajib, target push (registration_id atau alias)
"platform": "string", // Wajib, pengaturan platform push (lihat Push API)
"notification": "object", // Opsional, konten notifikasi (lihat Push API)
"message": "object", // Opsional, pesan kustom (lihat Push API), tidak dapat bersamaan dengan notification
"options": "object", // Opsional, opsi push (lihat Push API)
"custom_args": "object" // Opsional, parameter yang diteruskan ke klien
}
]
}
{
"requests": [
{
"target": "string", // Wajib, target push (registration_id atau alias)
"platform": "string", // Wajib, pengaturan platform push (lihat Push API)
"notification": "object", // Opsional, konten notifikasi (lihat Push API)
"message": "object", // Opsional, pesan kustom (lihat Push API), tidak dapat bersamaan dengan notification
"options": "object", // Opsional, opsi push (lihat Push API)
"custom_args": "object" // Opsional, parameter yang diteruskan ke klien
}
]
}
Tampilkan blok kode ini di jendela mengambang
Deskripsi parameter:
| Field | Wajib | Tipe | Deskripsi |
|---|---|---|---|
requests |
Ya | array | Array permintaan batch (maks 500 item, target harus unik per batch) |
target |
Ya | string | Nilai target: - endpoint /regid: registration_id- endpoint /alias: alias |
platform |
Ya | string | Platform push: android, ios atau all |
notification |
Tidak | object | Konten notifikasi (struktur sama dengan Push API) |
message |
Tidak | object | Pesan kustom (struktur sama dengan Push API) |
options |
Tidak | object | Opsi push (misal time_to_live, apns_production) |
custom_args |
Tidak | object | Parameter kustom yang diteruskan |
Contoh Respons
Respons sukses (semua berhasil)
{
"results": {
"registration_id_1": {
"target": "registration_id_1",
"success": true,
"msg_id": 2460001
},
"registration_id_2": {
"target": "registration_id_2",
"success": true,
"msg_id": 2460002
}
}
}
{
"results": {
"registration_id_1": {
"target": "registration_id_1",
"success": true,
"msg_id": 2460001
},
"registration_id_2": {
"target": "registration_id_2",
"success": true,
"msg_id": 2460002
}
}
}
Tampilkan blok kode ini di jendela mengambang
Respons sukses (sebagian rate limiting)
{
"rate_limit_info": {
"message": "Beberapa permintaan terkena pembatasan laju selama pemrosesan batch",
"rate_limit_occurred": true
},
"results": {
"170976fa8a0771c2647": {
"target": "170976fa8a0771c2647",
"success": false,
"error": {
"code": 23008,
"message": "Batas laju API terlampaui"
}
},
"170976fa8a9277c25d4": {
"target": "170976fa8a9277c25d4",
"success": false,
"error": {
"code": 23008,
"message": "Batas laju API terlampaui"
}
}
}
}
{
"rate_limit_info": {
"message": "Beberapa permintaan terkena pembatasan laju selama pemrosesan batch",
"rate_limit_occurred": true
},
"results": {
"170976fa8a0771c2647": {
"target": "170976fa8a0771c2647",
"success": false,
"error": {
"code": 23008,
"message": "Batas laju API terlampaui"
}
},
"170976fa8a9277c25d4": {
"target": "170976fa8a9277c25d4",
"success": false,
"error": {
"code": 23008,
"message": "Batas laju API terlampaui"
}
}
}
}
Tampilkan blok kode ini di jendela mengambang
Respons gagal (kesalahan global)
{
"error": {
"code": 21004,
"message": "autentikasi basic gagal"
}
}
{
"error": {
"code": 21004,
"message": "autentikasi basic gagal"
}
}
Tampilkan blok kode ini di jendela mengambang
Respons gagal (kesalahan parameter)
{
"error": {
"code": 21003,
"message": "Nilai parameter tidak valid"
}
}
{
"error": {
"code": 21003,
"message": "Nilai parameter tidak valid"
}
}
Tampilkan blok kode ini di jendela mengambang
Referensi Kode Error
| Kode Error | Deskripsi | Solusi | HTTP Status |
|---|---|---|---|
| Kode Error Global | |||
| 21004 | Autentikasi basic gagal | Periksa AppKey/MasterSecret | 401 |
| 21008 | Panjang AppKey bukan 24 karakter | Verifikasi format AppKey | 400 |
| 21038 | Tidak ada izin push untuk aplikasi | Periksa konfigurasi aplikasi | 400 |
| 21043 | Tidak ada izin push (menunggu pembayaran) | Selesaikan masalah penagihan | 400 |
| 23009 | IP tidak ada di allowlist | Tambahkan IP server ke allowlist | 400 |
| 21009 | Kesalahan sistem internal (jangan retry) | Hubungi dukungan teknis | 400 |
| Error Rate Limit | |||
| 23008 | Batas laju API tercapai | Ulangi item gagal jika sebagian sukses | 400 |
| Error Parameter | |||
| 21003 | Nilai parameter tidak valid | Periksa format body permintaan | 400 |
| 21015 | Parameter permintaan tidak valid | Validasi field wajib | 400 |
| 21016 | Validasi parameter gagal | Periksa tipe field dan rentang nilai | 400 |
Daftar kode error lengkap: Create Push API - Response
Catatan
- Penanganan Rate Limit: Mengembalikan hasil sebagian sukses saat terjadi pembatasan laju (
msg_iduntuk yang berhasil +erroruntuk yang gagal). - Cek Duplikat: Semua nilai
targetataucidharus unik dalam satu batch. - Batas Jumlah: Maksimal 500 target per permintaan.
- Penanganan Error: Error global (misal gagal autentikasi) langsung menghentikan proses tanpa hasil sebagian.










