Bahasa Indonesia
Kirim Pesan
POST/messageEndpoint andalan Zawa. Kirim pesan ke nomor, grup, atau channel, dan udah ngedukung tujuh tipe: teks, gambar, video, audio, dokumen, lokasi, dan kontak. Tiap tipe butuh kolom yang beda, jadi cek tabelnya di bawah ya.
Detail Endpoint
- Base URL:
https://api-zawa.azickri.com - Header:
id,session-id, danContent-Type: application/json - Syarat: sesi harus lagi nyambung (
isConnected: true)
Header
| Header | Tipe | Wajib | Keterangan |
|---|---|---|---|
id | string | Ya | id dari Buat Session. |
session-id | string | Ya | sessionId dari Buat Session. |
Request Body
| Kolom | Tipe | Wajib | Keterangan |
|---|---|---|---|
phone | string | Salah satu* | Nomor tujuan format internasional, contohnya 6281234567890. |
group | string | Salah satu* | ID grup, contohnya 120363000000000000@g.us. |
newsletter | string | Salah satu* | ID channel, contohnya 120363000000000000@newsletter. |
type | string | Ya | Tipe pesan: text, image, video, audio, document, location, atau contact. |
text | string | Untuk text | Isi pesan. Di tipe image, video, dan document, kolom ini jadi caption (opsional). |
image | object | Untuk image | Lihat objek image. |
video | object | Untuk video | Lihat objek video. |
audio | object | Untuk audio | Lihat objek audio. |
document | object | Untuk document | Lihat objek document. |
location | object | Untuk location | Lihat objek location. |
contact | object | Untuk contact | Lihat objek contact. |
* Isi salah satu dari phone, group, atau newsletter. Kalau lebih dari satu yang diisi, yang dipakai urutannya group, newsletter, lalu phone. Aturan format nomornya ada di Konsep Dasar.
Objek Media
Media dikirim lewat URL. Zawa yang download file-nya, jadi URL-nya harus publik dan langsung ke file. Baca juga Kirim Media dari URL.
| Objek | Kolom | Tipe | Wajib | Keterangan |
|---|---|---|---|---|
image | url | string | Ya | URL gambar. Paling aman pakai JPG. |
mimetype | string | Ya | Contohnya image/jpeg. | |
thumbnail | string | Tidak | URL gambar thumbnail. Kalau kosong, pakai thumbnail bawaan. | |
video | url | string | Ya | URL video. Paling aman pakai MP4. |
mimetype | string | Ya | Contohnya video/mp4. | |
duration | number | Ya | Durasi video dalam detik, harus lebih dari 0. | |
thumbnail | string | Tidak | URL gambar thumbnail. Kalau kosong, pakai thumbnail bawaan. | |
audio | url | string | Ya | URL audio. Paling aman pakai MP3. |
mimetype | string | Ya | Contohnya audio/mpeg. | |
duration | number | Ya | Durasi audio dalam detik, harus lebih dari 0. | |
document | url | string | Ya | URL dokumen. |
name | string | Ya | Nama file yang tampil di chat, contohnya invoice.pdf. | |
size | number | Ya | Ukuran file dalam byte, harus lebih dari 0. | |
mimetype | string | Ya | Contohnya application/pdf. |
Audio bukan voice note
Audio dikirim sebagai file audio biasa, bukan voice note (pesan suara bergelombang hijau).
Objek Lokasi dan Kontak
| Objek | Kolom | Tipe | Wajib | Keterangan |
|---|---|---|---|---|
location | latitude | number | Ya | Koordinat lintang, nggak boleh 0. |
longitude | number | Ya | Koordinat bujur, nggak boleh 0. | |
name | string | Tidak | Nama tempat, contohnya Monas. | |
address | string | Tidak | Alamat tempat. | |
contact | name | string | Ya | Nama kontak yang dibagikan. |
phone | string | Ya | Nomor kontak format internasional, contohnya 6281234567890. |
Contoh Request
Contoh paling simpel: kirim pesan teks ke satu nomor.
bash
curl -X POST "https://api-zawa.azickri.com/message" \
-H "id: YOUR_ID" \
-H "session-id: YOUR_SESSION_ID" \
-H "Content-Type: application/json" \
-d '{"phone":"6281234567890","type":"text","text":"Halo dari Zawa! 👋"}'javascript
import axios from 'axios';
const response = await axios.post(
'https://api-zawa.azickri.com/message',
{
phone: '6281234567890',
type: 'text',
text: 'Halo dari Zawa! 👋',
},
{
headers: {
'id': 'YOUR_ID',
'session-id': 'YOUR_SESSION_ID',
},
},
);
console.log(response.data);javascript
const response = await fetch('https://api-zawa.azickri.com/message', {
method: 'POST',
headers: {
'id': 'YOUR_ID',
'session-id': 'YOUR_SESSION_ID',
'Content-Type': 'application/json',
},
body: JSON.stringify({
phone: '6281234567890',
type: 'text',
text: 'Halo dari Zawa! 👋',
}),
});
const data = await response.json();
console.log(data);Contoh Body per Tipe
Ganti body di contoh request di atas sama salah satu dari ini.
json
{
"phone": "6281234567890",
"type": "text",
"text": "Halo dari Zawa! 👋"
}json
{
"phone": "6281234567890",
"type": "image",
"text": "Ini caption-nya, opsional",
"image": {
"url": "https://example.com/image.jpg",
"mimetype": "image/jpeg"
}
}json
{
"phone": "6281234567890",
"type": "video",
"text": "Caption video",
"video": {
"url": "https://example.com/video.mp4",
"mimetype": "video/mp4",
"duration": 30,
"thumbnail": "https://example.com/video-thumbnail.jpg"
}
}json
{
"phone": "6281234567890",
"type": "audio",
"audio": {
"url": "https://example.com/audio.mp3",
"mimetype": "audio/mpeg",
"duration": 30
}
}json
{
"phone": "6281234567890",
"type": "document",
"text": "Invoice bulan ini ya",
"document": {
"url": "https://example.com/invoice.pdf",
"name": "invoice.pdf",
"size": 102400,
"mimetype": "application/pdf"
}
}json
{
"phone": "6281234567890",
"type": "location",
"location": {
"name": "Monas",
"address": "Gambir, Jakarta Pusat",
"latitude": -6.175392,
"longitude": 106.827153
}
}json
{
"phone": "6281234567890",
"type": "contact",
"contact": {
"name": "Azickri",
"phone": "6281234567890"
}
}json
{
"group": "120363000000000000@g.us",
"type": "text",
"text": "Halo semuanya! 👋"
}json
{
"newsletter": "120363000000000000@newsletter",
"type": "text",
"text": "Ada update terbaru nih!"
}Response
json
{
"messageId": "3EB0C4A8F1D2B3E4A5F6"
}json
// Tujuan nggak diisi
{
"statusCode": 400,
"message": "invalid phone, group or newsletter"
}
// Kolom wajib buat tipe itu kosong
{
"statusCode": 400,
"message": "image should not be empty"
}
// Header kurang
{
"statusCode": 400,
"message": "invalid header"
}json
{
"statusCode": 404,
"message": "session not found"
}json
// Sesi lagi nggak nyambung
{
"statusCode": 500,
"message": "session not connected"
}
// Media gagal diunduh
{
"statusCode": 500,
"message": "error parser file from url 404 Not Found"
}| Kolom | Tipe | Keterangan |
|---|---|---|
messageId | string | ID pesan dari WhatsApp. |
Dapet messageId belum tentu nyampe
messageId artinya pesan udah diterima server WhatsApp. Zawa nggak ngecek apakah nomor tujuan terdaftar di WhatsApp, jadi pastikan nomornya bener ya.