Eza Pedia API Gateway v1.2

Dokumentasi API lengkap berisi spesifikasi payload, parameter, serta script PHP siap pakai.

INFO Pengenalan Eza Pedia API 1.2

Eza Pedia API 1.2 adalah platform WhatsApp API Gateway RESTful yang dikembangkan untuk menghubungkan sistem aplikasi Anda dengan WhatsApp secara cepat, aman, dan modular. Seluruh interaksi API dikirim melalui protokol HTTP dengan format respon terstandarisasi JSON.

Base URL Gateway
http://localhost:3000

Apabila Anda memasang Wafy Gateway di server lokal VPS atau hosting tersendiri, silakan ubah http://localhost:3000 menggunakan IP Publik atau nama domain server Anda.

Format Request & Response

Untuk request dengan metode POST atau PUT, pastikan Anda mengirimkan header Content-Type: application/json dan payload raw JSON. Respon API akan selalu berupa objek JSON terstruktur dengan parameter success: true/false.

INFO HTTP Header Authentication

Keamanan akses API dilindungi menggunakan kunci API unik (API Key). Kunci API harus disertakan pada **HTTP Header** di setiap request.

Header Otentikasi
Key Header Value Keterangan
x-api-key __api_key_rahasia_anda__ Kunci API rahasia yang dapat dilihat di dashboard administrasi gateway.
Peringatan Keamanan: Jangan pernah membagikan API Key Anda ke publik. Gunakan *Environment Variables* di server backend Anda untuk menyimpannya dengan aman.
INFO Daftar Istilah & Tipe Parameter

Berikut adalah parameter input global yang sering digunakan pada API Eza Pedia 1.2:

Parameter Tipe Keterangan
no string Nomor tujuan personal (e.g. 62812345678) atau ID Grup (e.g. 1234567890@g.us). Untuk bulk, pisahkan nomor dengan baris baru (\n).
text string Isi pesan teks utama, caption media, nama file dokumen, atau string payload terformat (seperti BUTTONS!, LOCATION!, CONTACT!, POLLVOTE!).
media string URL publik berkas Gambar, Video, Audio, Voice Note, atau Stiker yang valid.
file string URL publik dokumen berkas PDF, Excel, Word, ZIP, dll.
immediate boolean Menentukan apakah pesan langsung dikirim (true) atau dimasukkan antrian antrean tunda (false) untuk pengiriman bulk aman.
POST /api/send

Mengirimkan pesan teks biasa dengan dukungan format teks WhatsApp (*tebal*, _miring_, ~coret~).

Contoh Script PHP cURL
PHP Script (send_text.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/send', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'no' => '62812345678', 'text' => "Halo! Ini adalah pesan tes dari *Eza Pedia API Gateway*.\n\nSemoga hari Anda menyenangkan!", 'immediate' => true ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Response Sukses
{ "success": true, "message": "Message successfully queued/sent", "data": { "key": { "remoteJid": "62812345678@s.whatsapp.net", "fromMe": true, "id": "A4F5B1234567890" }, "message": { "conversation": "Halo! Ini pesan tes." } } }
POST /api/send

Mengirimkan gambar (.jpg, .png) atau video (.mp4) ke kontak tujuan dengan caption opsional.

Contoh Script PHP cURL
PHP Script (send_media.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/send', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'no' => '62812345678', 'media' => 'https://ezapedia.my.id/assets/promo.jpg', 'text' => 'Lihat Promo Menarik Akhir Tahun Kami!', 'immediate' => true ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Response Sukses
{ "success": true, "message": "Message successfully queued/sent", "data": { "key": { "remoteJid": "62812345678@s.whatsapp.net", "fromMe": true, "id": "B6C7D2345678901" }, "message": { "imageMessage": { "url": "https://ezapedia.my.id/assets/promo.jpg", "caption": "Lihat Promo Menarik Akhir Tahun Kami!" } } } }
POST /api/send

Mengirimkan dokumen file seperti PDF, Excel, Word, ZIP, dll.

Contoh Script PHP cURL
PHP Script (send_document.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/send', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'no' => '62812345678', 'file' => 'https://domain.com/invoices/inv-1082.pdf', 'text' => 'Invoice_Tagihan_Juli_2026.pdf', 'immediate' => true ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Response Sukses
{ "success": true, "message": "Message successfully queued/sent", "data": { "key": { "remoteJid": "62812345678@s.whatsapp.net", "fromMe": true, "id": "C7D8E3456789012" }, "message": { "documentMessage": { "url": "https://domain.com/invoices/inv-1082.pdf", "title": "Invoice_Tagihan_Juli_2026.pdf" } } } }
POST /api/send

Mengirimkan pesan suara audio (MP3, WAV) atau Voice Note rekaman langsung (OGG).

Contoh Script PHP cURL
PHP Script (send_audio.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/send', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'no' => '62812345678', 'media' => 'https://domain.com/audio/rekaman.ogg', 'immediate' => true ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Response Sukses
{ "success": true, "message": "Message successfully queued/sent", "data": { "key": { "remoteJid": "62812345678@s.whatsapp.net", "fromMe": true, "id": "D8E9F4567890123" }, "message": { "audioMessage": { "url": "https://domain.com/audio/rekaman.ogg", "mimetype": "audio/ogg" } } } }
POST /api/send

Mengirimkan sticker statis atau dinamis berformat .webp.

Contoh Script PHP cURL
PHP Script (send_sticker.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/send', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'no' => '62812345678', 'media' => 'https://domain.com/stickers/happy.webp', 'immediate' => true ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Response Sukses
{ "success": true, "message": "Message successfully queued/sent", "data": { "key": { "remoteJid": "62812345678@s.whatsapp.net", "fromMe": true, "id": "E9F0A5678901234" }, "message": { "stickerMessage": { "url": "https://domain.com/stickers/happy.webp" } } } }
POST /api/send

Mengirimkan pin koordinat lokasi geografis WhatsApp dengan nama alamat tujuan menggunakan string payload terformat LOCATION!latitude,longitude,alamat.

Contoh Script PHP cURL
PHP Script (send_location.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/send', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'no' => '62812345678', 'text' => 'LOCATION!-6.200000,106.816666,Kantor Pusat Eza Pedia Indonesia', 'immediate' => true ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Response Sukses
{ "success": true, "message": "Message successfully queued/sent", "data": { "key": { "remoteJid": "62812345678@s.whatsapp.net", "fromMe": true, "id": "F0A1B6789012345" }, "message": { "locationMessage": { "degreesLatitude": -6.2, "degreesLongitude": 106.816666, "name": "Kantor Pusat Eza Pedia Indonesia" } } } }
POST /api/send

Mengirimkan kartu nama kontak WhatsApp (vCard) secara interaktif menggunakan string payload terformat CONTACT!nama,nomor_hp.

Contoh Script PHP cURL
PHP Script (send_contact.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/send', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'no' => '62812345678', 'text' => 'CONTACT!Customer Service CS2,628111222333', 'immediate' => true ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Response Sukses
{ "success": true, "message": "Message successfully queued/sent", "data": { "key": { "remoteJid": "62812345678@s.whatsapp.net", "fromMe": true, "id": "A1B2C7890123456" }, "message": { "contactMessage": { "displayName": "Customer Service CS2", "vcard": "BEGIN:VCARD\nVERSION:3.0\nFN:Customer Service CS2\nTEL;type=CELL;type=VOICE;waid=628111222333:+62 811-1222-333\nEND:VCARD" } } } }
POST /api/send

Mengirimkan pesan interaktif jajak pendapat (Polling) di WhatsApp menggunakan string payload terformat POLLVOTE!pertanyaan:opsi1:opsi2:opsi3....

Contoh Script PHP cURL
PHP Script (send_poll.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/send', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'no' => '62812345678', 'text' => 'POLLVOTE!Kapan waktu meeting internal?:Senin Pukul 09.00:Rabu Pukul 13.00:Jumat Pukul 15.00', 'immediate' => true ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Response Sukses
{ "success": true, "message": "Message successfully queued/sent", "data": { "key": { "remoteJid": "62812345678@s.whatsapp.net", "fromMe": true, "id": "B2C3D8901234567" }, "message": { "pollCreationMessage": { "name": "Kapan waktu meeting internal?", "options": [ {"optionName": "Senin Pukul 09.00"}, {"optionName": "Rabu Pukul 13.00"}, {"optionName": "Jumat Pukul 15.00"} ] } } } }
POST /api/send

Mengirimkan pesan interaktif berupa tombol pilihan (Quick Reply, Call, URL Link, dan Copy Code) dengan string payload terformat BUTTONS! Teks | footer: Teks Kaki | reply: Tombol:payload.

Contoh Script PHP cURL
PHP Script (send_button.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/send', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'no' => '62812345678', 'text' => 'BUTTONS! Silakan pilih layanan kami di bawah ini: | footer: Eza Pedia Support | reply: Hubungi CS:payload_cs | url: Kunjungi Web:https://domain.com', 'media' => 'https://ezapedia.my.id/assets/promo.jpg', 'immediate' => true ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Response Sukses
{ "success": true, "message": "Message successfully queued/sent", "data": { "key": { "remoteJid": "62812345678@s.whatsapp.net", "fromMe": true, "id": "C3D4E9012345678" }, "message": { "buttonsMessage": { "contentText": "Silakan pilih layanan kami di bawah ini:", "footerText": "Eza Pedia Support", "buttons": [ {"buttonId": "payload_cs", "buttonText": {"displayText": "Hubungi CS"}, "type": 1} ] } } } }
POST /api/send

Mengirimkan pesan teks massal ke banyak nomor tujuan sekaligus dengan cara memisahkan nomor tujuan menggunakan baris baru (\n) di parameter no.

Contoh Script PHP cURL
PHP Script (send_bulk.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/send', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'no' => "628123456781\n628123456782\n628123456783", 'text' => 'Halo! Ini adalah info pengumuman massal dari *Eza Pedia Gateway 1.2*.', 'immediate' => false ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Response Sukses
{ "success": true, "message": "Message successfully queued/sent", "results": [ {"phone": "628123456781", "success": true, "messageId": "A1B2C3D4E5"}, {"phone": "628123456782", "success": true, "messageId": "B2C3D4E5F6"}, {"phone": "628123456783", "success": true, "messageId": "C3D4E5F6A7"} ] }
GET /api/groups

Mengambil daftar semua grup WhatsApp yang diikuti oleh perangkat yang terhubung.

Contoh Script PHP cURL
PHP Script (groups_list.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/groups', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Groups List Response
{ "success": true, "groups": [ { "id": "1234567890@g.us", "name": "Grup Internal Sales", "owner": "62812345678@s.whatsapp.net" } ] }
GET /api/group-members/:id

Mengambil daftar seluruh peserta / anggota dari suatu grup WhatsApp tertentu.

Contoh Script PHP cURL
PHP Script (group_members.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/group-members/' . urlencode('1234567890@g.us'), CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Group Members Response
{ "success": true, "groupId": "1234567890@g.us", "name": "Grup Internal Sales", "participants": [ { "id": "62812345678@s.whatsapp.net", "admin": "superadmin" }, { "id": "62887654321@s.whatsapp.net", "admin": null } ] }
POST /api/groups/create

Membuat grup WhatsApp baru dan langsung mengundang anggota awal.

Contoh Script PHP cURL
PHP Script (group_create.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/groups/create', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'name' => 'Grup Pelanggan VIP', 'participants' => ['62812345678', '62887654321'] ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Create Group Response
{ "success": true, "message": "Group successfully created", "group": { "id": "1234567891@g.us", "subject": "Grup Pelanggan VIP", "owner": "62812345678@s.whatsapp.net" } }
POST /api/groups/participants

Mengeluarkan, menambahkan, atau mempromosikan anggota grup menjadi admin.

Contoh Script PHP cURL
PHP Script (group_manage.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/groups/participants', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'groupId' => '1234567890@g.us', 'action' => 'add', 'participants' => ['628999123456'] ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Manage Members Response
{ "success": true, "message": "Participants action 'add' processed", "response": [ { "status": "200", "jid": "628999123456@s.whatsapp.net" } ] }
INFO Event: message (Pesan Masuk)

Ketika WhatsApp Anda menerima pesan teks personal, pesan grup, atau media dari pengguna lain, Wafy Gateway akan secara otomatis melakukan HTTP POST callback ke Webhook URL Anda.

Contoh Handler Webhook PHP
PHP Webhook Handler (webhook_handler.php) Unduh Script
<?php // Menangani Event Webhook Masuk $json_str = file_get_contents('php://input'); $payload = json_decode($json_str, true); if ($payload && isset($payload['event']) && $payload['event'] === 'message') { $message = $payload['message_text']; $phone = $payload['sender_phone']; $name = $payload['sender_push_name']; // Logika balasan otomatis atau pemrosesan data Anda } http_response_code(200);
Contoh Payload Webhook JSON
Incoming Message Payload
{ "event": "message", "chat": "62812345678@s.whatsapp.net", "sender": "62812345678@s.whatsapp.net", "sender_push_name": "Budi Santoso", "sender_phone": "62812345678", "is_group": false, "message_text": "halo, tolong kirim price list", "message_time": "2026-07-02 08:35:10" }
INFO Event: group_participants_update

Dipicu secara real-time ketika ada peristiwa penting aktivitas anggota grup WhatsApp (seperti anggota masuk, keluar, atau dikeluarkan).

Skema Payload Webhook
Group Participant Event Payload
{ "event": "group_participants_update", "chat": "1234567890@g.us", "action": "add", "participants": [ "628999123456@s.whatsapp.net" ], "message_time": "2026-07-02 08:40:00" }
GET /api/session/status

Mengembalikan status koneksi WhatsApp Anda.

Contoh Script PHP cURL
PHP Script (session_status.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/session/status', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'GET', CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Connected Status Response
{ "success": true, "connected": true, "qr": null, "user": { "id": "6289513258338:17@s.whatsapp.net", "name": "Ghazio" } }
POST /api/session/pair

Meminta kode pairing 8-karakter numerik untuk menautkan perangkat WhatsApp menggunakan nomor telepon.

Contoh Script PHP cURL
PHP Script (session_pair.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/session/pair', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_POSTFIELDS => json_encode([ 'phone' => '628123456789' ]), CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__', 'Content-Type: application/json' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Pairing Code Response
{ "success": true, "code": "ABCD1234" }
POST /api/session/logout

Memutus koneksi sesi WhatsApp dan menghapus kredensial sesi lokal.

Contoh Script PHP cURL
PHP Script (session_logout.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/session/logout', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Logout Response
{ "success": true, "message": "Session successfully logged out" }
POST /api/session/restart

Memulai ulang koneksi socket WhatsApp Gateway.

Contoh Script PHP cURL
PHP Script (session_restart.php) Unduh Script
$curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => 'http://localhost:3000/api/session/restart', CURLOPT_RETURNTRANSFER => true, CURLOPT_CUSTOMREQUEST => 'POST', CURLOPT_HTTPHEADER => [ 'x-api-key: __api_key_anda__' ], ]); $response = curl_exec($curl); curl_close($curl); echo $response;
Contoh Response JSON
Restart Connection Response
{ "success": true, "message": "Session connection successfully restarted" }
POST /api/contacts

Melakukan pengelolaan database kontak (menambahkan kontak lokal baru, mengambil daftar kontak terdaftar, dan menghapus kontak).

Contoh Script PHP cURL
PHP Script (contacts_manage.php) Unduh Script
// Skrip CRUD Kontak (Dapatkan, Buat, Hapus Kontak) // 1. GET /api/contacts?limit=100&type=local // 2. POST /api/contacts { "name": "Budi", "wa_no": "628..." } // 3. DELETE /api/contacts/:id
Contoh Response JSON (GET Contacts)
Contacts List Response
{ "success": true, "contacts": [ { "id": 1, "name": "Budi Santoso", "wa_no": "628123456789", "tags": "pelanggan" } ] }