2025-11-22
admin
Diperbarui 2026-01-20

Dokumentasi API WhatsApp Gateway Golang (Whatsmeow) Terlengkap

Ingin integrasikan WhatsApp ke aplikasi Anda? Temukan dokumentasi API WhatsApp Gateway lengkap berbasis Golang (Whatsmeow). Panduan autentikasi, endpoint, dan contoh penggunaan siap pakai!
Dokumentasi API WhatsApp Gateway Golang (Whatsmeow) Terlengkap

Berikut adalah Dokumentasi API Lengkap untuk WhatsApp Gateway (Golang + Whatsmeow) yang telah Anda bangun.

Dokumentasi ini mencakup cara autentikasi, daftar endpoint, format request/response, dan contoh penggunaan menggunakan curl.

📚 Dokumentasi API WhatsApp Gateway (Golang)

Base URL: http://<IP-VPS-ANDA>:5000

Content-Type: application/json (kecuali upload media)

🔐 Autentikasi

Setiap request ke API wajib menyertakan header berikut:

Header KeyValueX-API-KEYSesuaikan dengan .env (Default: ganti-dengan-api-key-rahasia)1. System & Session

Cek Status Bot

Mengecek apakah bot sudah login dan terhubung ke server WhatsApp.

  • Endpoint: GET /api/status
  • Response:
  • JSON

{
  "status": "success",
  "data": {
    "is_logged_in": true,
    "is_connected": true,
    "my_jid": "[email protected]"
  }
}

Dapatkan Kode QR

Mendapatkan string QR Code untuk login (jika belum login). String ini harus dirender menjadi gambar QR oleh frontend (seperti qrcode.js).

  • Endpoint: GET /api/qr
  • Response (Belum Login):
  • JSON

{
  "status": "success",
  "qr": "2@Ks7Vs... (String Panjang) ..."
}
  • Response (Sudah Login):
  • JSON

{
  "status": "success",
  "message": "Already logged in",
  "qr": ""
}

Logout / Ganti Nomor

Memutuskan koneksi dan menghapus sesi database secara permanen agar bisa scan QR baru.

  • Endpoint: POST /api/logout
  • Response:
  • JSON

{
  "status": "success",
  "message": "Logged out completely. Please scan new QR."
}

2. Sending Messages

Kirim Pesan Teks

Mengirim pesan teks ke nomor pribadi atau grup.

  • Endpoint: POST /api/send-message
  • Body (JSON):
  • JSON

{
  "phone": "08123456789", 
  "message": "Halo, ini pesan dari API Golang!"
}
Catatan untuk Group: Gunakan ID Group lengkap (contoh: [email protected]) pada field phone.
  • Response:
  • JSON

{
  "status": "success",
  "id": "3EB0...",
  "timestamp": 171000000
}

Kirim Gambar (Image)

Mengirim gambar dengan caption.

  • Endpoint: POST /api/send-image
  • Content-Type: multipart/form-data
  • Form Data:
  • file: (Binary file gambar .jpg/.png)
  • phone: Nomor tujuan / ID Group
  • caption: Teks caption (Opsional)

Kirim Dokumen (File)

Mengirim file dokumen (PDF, ZIP, DOCX, dll).

  • Endpoint: POST /api/send-document
  • Content-Type: multipart/form-data
  • Form Data:
  • file: (Binary file dokumen)
  • phone: Nomor tujuan / ID Group
  • caption: Teks caption (Opsional)

3. Webhook Integration (Golang -> Node.js)

Jika Anda mengaktifkan WEBHOOK_URL di .env, Golang akan mengirim data ke Node.js setiap ada pesan masuk.

  • Method: POST
  • Target: URL Webhook Anda (misal: http://localhost:8000/webhook-handler)
  • Payload yang dikirim Golang:
  • JSON

{
  "sender": "628123456789",         // Pengirim pesan
  "push_name": "Nama User WA",
  "message_type": "text",           // text / image / video / location
  "message": "Isi pesan...",
  "is_group": false,
  "group_jid": "",                  // ID Group (jika pesan dari grup)
  "media_path": "uploads/file.jpg", // Path file (jika pesan media)
  "timestamp": 1715000000
}

💻 Contoh Penggunaan (Copy-Paste)

Berikut adalah contoh perintah terminal (curl) untuk mengetes API Anda. Ganti API_KEY dan IP_VPS sesuai konfigurasi Anda.

1. Cek Status

Bash


curl -X GET http://localhost:5000/api/status \
  -H "X-API-KEY: ganti-dengan-api-key-rahasia"

2. Kirim Pesan ke Personal (Japri)

Bash


curl -X POST http://localhost:5000/api/send-message \
  -H "X-API-KEY: ganti-dengan-api-key-rahasia" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "08123456789",
    "message": "Tes pesan Japri dari API Server"
  }'

3. Kirim Pesan ke Group

(Pastikan Anda sudah mendapatkan ID Group, biasanya angka panjang berakhiran @g.us)

Bash


curl -X POST http://localhost:5000/api/send-message \
  -H "X-API-KEY: ganti-dengan-api-key-rahasia" \
  -H "Content-Type: application/json" \
  -d '{
    "phone": "[email protected]",
    "message": "Halo Group, ini tes broadcast API!"
  }'

4. Kirim Gambar

Bash


# Download gambar contoh dulu
wget https://via.placeholder.com/150 -O sample.jpg

# Kirim
curl -X POST http://localhost:5000/api/send-image \
  -H "X-API-KEY: ganti-dengan-api-key-rahasia" \
  -F "phone=08123456789" \
  -F "caption=Ini gambar otomatis" \
  -F "[email protected]"

5. Logout (Hapus Sesi)

Bash


curl -X POST http://localhost:5000/api/logout \
  -H "X-API-KEY: ganti-dengan-api-key-rahasia"


blog admin

Artikel Terkait