Logo Moonwa Docs
Ctrl K

REST API Documentation

Integrasikan layanan WhatsApp Moonwa ke dalam aplikasi Anda sendiri menggunakan standar REST API HTTP.


Autentikasi

Setiap permintaan API memerlukan API Key yang valid. Anda dapat menemukan atau membuat ulang API Key Anda di menu Device > Settings pada dashboard.

Keamanan: Jaga kerahasiaan API Key Anda. Jangan pernah mengeksposnya di kode Client-Side (seperti file HTML/JS publik). Selalu panggil API dari Server-Side (Backend).

1. Send Text Message

Mengirim pesan teks sederhana ke nomor pribadi atau grup.

POST https://api.moonwa.id/api/send-message

Parameter Body (JSON)

Parameter Tipe Wajib Keterangan
api_key String Ya Kunci API dari device Anda.
receiver String Ya Nomor tujuan (Format: 628xx) atau Group ID.
data Object Ya Payload pesan.
data.message String Ya Isi pesan teks.
{
  "api_key": "YOUR_API_KEY",
  "receiver": "628123456789",
  "data": {
    "message": "Halo, ini pesan test dari API!"
  }
}
curl -X POST \
'https://api.moonwa.id/api/send-message' \
--header 'Content-Type: application/json' \
--data-raw '{
    "api_key": "YOUR_API_KEY",
    "receiver": "628123456789",
    "data": {
        "message": "Halo, ini pesan test dari API!"
    }
}'
$data = [
    'api_key' => 'YOUR_API_KEY',
    'receiver' => '628123456789',
    'data' => [
        'message' => 'Halo, ini pesan test dari API!'
    ]
];

$curl = curl_init();
curl_setopt_array($curl, [
    CURLOPT_URL => "https://api.moonwa.id/api/send-message",
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode($data),
    CURLOPT_HTTPHEADER => ["Content-Type: application/json"],
]);

$response = curl_exec($curl);
curl_close($curl);
echo $response;

2. Send Media Message

Mengirim pesan gambar, video, audio, atau dokumen.

POST https://api.moonwa.id/api/send-media

Parameter Body (JSON)

Parameter Tipe Keterangan
data.url String URL file media (harus publik/bisa diakses internet).
data.media_type String Pilihan: image, video, audio, file.
data.caption String (Opsional) Teks keterangan media.
{
  "api_key": "YOUR_API_KEY",
  "receiver": "628123456789",
  "data": {
    "url": "https://example.com/image.jpg",
    "media_type": "image",
    "caption": "Ini adalah foto produk kami"
  }
}
$data = [
    'api_key' => 'YOUR_API_KEY',
    'receiver' => '628123456789',
    'data' => [
        'url' => 'https://example.com/invoice.pdf',
        'media_type' => 'file',
        'caption' => 'Silakan unduh invoice Anda'
    ]
];
// ... Lanjutkan dengan cURL execution seperti contoh Send Text

3. Webhook (Incoming Message)

Webhook digunakan untuk menerima notifikasi pesan masuk secara real-time ke server Anda. Anda dapat mengatur URL Webhook di menu Device Settings.

Contoh Format Data (Diterima Server Anda)

{
  "sender": "62857xxxxxxx",
  "message": "Halo kak, cek harga dong",
  "is_group": false,
  "timestamp": 1678900000
}
<?php
// Tangkap input JSON dari Moonwa
$input = file_get_contents('php://input');
$data = json_decode($input, true);

// Pastikan data ada
if (isset($data['message'])) {
    $sender = $data['sender'];
    $pesan = $data['message'];

    // Logika balasan Anda...
    if ($pesan == 'Info') {
        // Panggil API SendText untuk membalas
    }
}

// Selalu kembalikan respon 200 OK
http_response_code(200);
echo json_encode(['status' => 'success']);
?>
© 2025 Moonwa. Documentation.