WAGate API memungkinkan Anda mengirim pesan WhatsApp dari aplikasi atau website Anda sendiri. Setiap device WhatsApp memiliki API token unik yang digunakan untuk autentikasi.
⚠️ Keamanan: Jangan share API token Anda ke siapapun! Token memberikan akses penuh untuk mengirim pesan dari device WhatsApp Anda.
https://wagate.in/api/v1
Semua endpoint API menggunakan Bearer Token authentication. Sertakan token Anda di header:
Authorization: Bearer YOUR_API_TOKEN_HERE
💡 Setelah device connected, token sudah bisa langsung digunakan!
/send-message
Kirim pesan WhatsApp ke nomor tujuan.
{
"recipient": "628123456789", // Required: nomor WA tujuan (format 62xxx)
"message": "Hello World!", // Required: isi pesan (max 5000 karakter)
"media_url": "https://...", // Optional: URL media (image/video/document)
"media_type": "image" // Optional: image|video|document|audio
}curl -X POST https://wagate.in/api/v1/send-message \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"recipient": "628123456789",
"message": "Hello from my app!"
}'{
"success": true,
"message": "Message has been queued and will be sent shortly.",
"data": {
"recipient": "628123456789",
"device": {
"id": 1,
"phone_number": "6281234567890",
"status": "connected"
},
"queued_at": "2025-12-11T20:00:00.000000Z"
}
}// 401 Unauthorized - Token tidak valid
{
"success": false,
"message": "Invalid or inactive API token."
}// 403 Forbidden - Device tidak connected
{
"success": false,
"message": "Device is not connected. Please connect your WhatsApp device first.",
"device_status": "disconnected"
}// 403 Forbidden - Quota habis
{
"success": false,
"message": "Insufficient quota. Please upgrade your package or wait for quota reset.",
"remaining_quota": 0
}// 422 Validation Error
{
"success": false,
"message": "Validation error",
"errors": {
"recipient": ["The recipient field is required."],
"message": ["The message field is required."]
}
}/device
Dapatkan informasi device, user, subscription, dan statistik.
curl -X GET https://wagate.in/api/v1/device \ -H "Authorization: Bearer YOUR_API_TOKEN"
{
"success": true,
"data": {
"device": {
"id": 1,
"name": "My WhatsApp",
"phone_number": "6281234567890",
"status": "connected",
"connected_at": "2025-12-10T10:00:00.000000Z",
"last_seen": "2025-12-11T20:00:00.000000Z"
},
"user": {
"name": "John Doe",
"email": "john@example.com"
},
"subscription": {
"package": "Trial",
"message_quota": 100,
"message_remaining": 50,
"device_limit": 1,
"end_date": "2025-12-31",
"is_trial": true
},
"statistics": {
"total_sent": 45,
"total_failed": 5,
"today_sent": 10
}
}
}/messages
Dapatkan riwayat pesan dengan pagination.
?limit=50 // Optional: jumlah per halaman (max 100, default 50) &page=1 // Optional: halaman (default 1) &status=sent // Optional: filter by status (sent|failed|pending)
curl -X GET "https://wagate.in/api/v1/messages?limit=10&status=sent" \ -H "Authorization: Bearer YOUR_API_TOKEN"
{
"success": true,
"data": [
{
"id": 1,
"recipient": "628123456789",
"message": "Hello World",
"status": "sent",
"created_at": "2025-12-11T20:00:00.000000Z",
"sent_at": "2025-12-11T20:00:05.000000Z"
}
],
"pagination": {
"current_page": 1,
"total_pages": 5,
"per_page": 10,
"total": 45
}
}<?php
$apiToken = 'YOUR_API_TOKEN';
$apiUrl = 'https://wagate.in/api/v1/send-message';
$data = [
'recipient' => '628123456789',
'message' => 'Hello from PHP!'
];
$ch = curl_init($apiUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $apiToken,
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$result = json_decode($response, true);
if ($result['success']) {
echo "Message queued successfully!";
} else {
echo "Error: " . $result['message'];
}
curl_close($ch);
?>const apiToken = 'YOUR_API_TOKEN';
const apiUrl = 'https://wagate.in/api/v1/send-message';
fetch(apiUrl, {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiToken}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
recipient: '628123456789',
message: 'Hello from JavaScript!'
})
})
.then(response => response.json())
.then(data => {
if (data.success) {
console.log('Message queued:', data.data);
} else {
console.error('Error:', data.message);
}
})
.catch(error => console.error('Request failed:', error));import requests
api_token = 'YOUR_API_TOKEN'
api_url = 'https://wagate.in/api/v1/send-message'
headers = {
'Authorization': f'Bearer {api_token}',
'Content-Type': 'application/json'
}
data = {
'recipient': '628123456789',
'message': 'Hello from Python!'
}
response = requests.post(api_url, headers=headers, json=data)
result = response.json()
if result['success']:
print('Message queued:', result['data'])
else:
print('Error:', result['message'])Jangan hardcode token di kode. Gunakan environment variables atau secrets management.
API memiliki rate limit. Implementasikan retry logic dengan exponential backoff.
Gunakan endpoint GET /device untuk cek remaining quota sebelum kirim banyak pesan.
Selalu cek response status dan handle error dengan baik (401, 403, 422, 500).
Gunakan format internasional (62xxx) tanpa tanda + atau spasi.