WAYAQR Code expired
WhatsApp disconnected
default untuk membalas pesan yang tidak cocok dengan keyword manapun. Rule ini hanya dijalankan sebagai fallback jika tidak ada rule lain yang match. Match type pada rule default akan diabaikan.
| Keyword | Match | Mode | Response / Script | Status | Actions |
|---|---|---|---|---|---|
{{ r.keyword }} |
{{ r.matchType }} | {{ r.mode === 'script' ? '⥠Script' : 'đŦ Message' }} | {{ r.mode === 'script' ? (r.script || '').substring(0, 60) + '...' : r.response }} | {{ r.enabled ? 'ON' : 'OFF' }} | |
| No rules yet | |||||
| Command | Mode | Reply / Script | Status | Actions |
|---|---|---|---|---|
{{ c.command }} |
{{ c.mode === 'script' ? '⥠Script' : 'đŦ Message' }} | {{ c.mode === 'script' ? (c.script || '').substring(0, 60) + '...' : c.replyMessage }} | {{ c.enabled ? 'ON' : 'OFF' }} | |
| No commands yet | ||||
| # | Name | Script Preview | Status | Actions |
|---|---|---|---|---|
| {{ idx + 1 }} | {{ h.name }} | {{ (h.script || '').substring(0, 80) }}{{ (h.script||'').length > 80 ? '...' : '' }} |
{{ h.enabled ? 'ON' : 'OFF' }} | |
| No hooks yet. Add one to run custom code on every message. | ||||
{{ simResult.returned }}{{ s.to }}: {{ s.text }}
async function(client, msg, axios)msg.body â message textmsg.from / msg.to â sender / recipient chat IDmsg.fromMe â boolean, true if you sent itmsg.chatId â the chat where message was sentmsg.type â message type (chat, image, etc.)client.send(text) â reply to the same chatclient.sendTo(chatId, text) â send to any chatreturn "text" â shorthand to reply to the chat| Time | Hook | Status | Dir | Message | ms |
|---|---|---|---|---|---|
| {{ formatLogTime(log.ts) }} | {{ log.hookName }} | OK ERR replied | {{ log.fromMe ? 'â OUT' : 'â IN' }} | {{ log.msgBody }} | {{ log.duration }}ms |
| No logs yet. Send a message to trigger hooks. | |||||
async function(client, args, axios) â return a string to reply, or use client.send(msg).!ping hello "dear friend" â args = ["hello", "dear friend"]
!infoasync function(client, args, axios) â return a string to reply, or use client.send(msg).
async function(client, msg, axios) â client.send(text) to reply, client.sendTo(chatId, text) to send anywhere, or return "text" to auto-reply.
Selected recipients ({{ selectedChatIds.length }}):
{{ apiExLang==='curl'?apiExampleCurl:apiExLang==='fetch'?apiExampleJS:apiExLang==='axios'?apiExampleAxios:apiExLang==='dartdio'?apiExampleDartDio:apiExampleDartHttp }}
{{ chatId }}
Recipients ({{ (catData.assignments[catApiCat] || []).length }}):
{{ catApiTab==='curl'?catApiCurl:catApiTab==='fetch'?catApiFetch:catApiTab==='axios'?catApiAxios:catApiTab==='dartdio'?catApiDartDio:catApiDartHttp }}
Apakah Anda yakin ingin menghapus sesi WhatsApp?
/api/send-message are queued with a 5s delay between each.
| # | Ref ID | Recipient | Message | Status | Created | Sent | |
|---|---|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ q.reference_id.length > 12 ? q.reference_id.substring(0,12)+'âĻ' : q.reference_id }}â |
{{ q.number }} |
{{ (q.message || '').substring(0, 80) }} | Pending Sending Sent Failed | {{ formatLogTime(q.createdAt) }} | {{ q.sentAt ? formatLogTime(q.sentAt) : '-' }} | |
| Queue is empty. Messages sent via API will appear here. | |||||||
{{ queueDetail.id }}
{{ queueDetail.message }}
{{ JSON.stringify(queueDetail.request.headers, null, 2) }}
{{ JSON.stringify(queueDetail.request.body, null, 2) }}
Check the delivery status of a queued message by its queue ID or reference_id.
GET /api/message-status/:idThe :id param can be the queue ID (UUID) returned by send-message, or your custom reference_id.
curl {{ baseUrl }}/api/message-status/YOUR_REFERENCE_ID \
-H "X-API-Key: YOUR_API_KEY"
fetch("{{ baseUrl }}/api/message-status/YOUR_REFERENCE_ID", {
headers: { "X-API-Key": "YOUR_API_KEY" }
}).then(r => r.json()).then(console.log);
{
"id": "uuid-queue-id",
"reference_id": "your-custom-ref",
"number": "6282146727409",
"chatId": "6282146727409@c.us",
"message": "Hello!",
"status": "sent", // pending | sending | sent | failed
"error": null,
"createdAt": 1709654400000,
"sentAt": 1709654405000
}
"reference_id" when calling /api/send-message to tag messages with your own ID for easy tracking.
msg, axios
msg Object Reference{
id: "uuid-queue-id",
reference_id: "your-custom-ref", // or null
number: "6282146727409",
chatId: "6282146727409@c.us",
message: "Hello!",
status: "sent", // "sent" or "failed"
error: null, // error message if failed
createdAt: 1709654400000,
sentAt: 1709654405000 // null if failed
}
/api/* endpoints are logged here.
| # | Method | URL | Status | Time | IP | Date | |
|---|---|---|---|---|---|---|---|
| {{ idx + 1 }} | {{ l.method }} | {{ l.url }} | {{ l.statusCode }} | {{ l.duration }}ms | {{ l.ip }} | {{ formatLogTime(l.createdAt) }} | |
| No requests logged yet. | |||||||
{{ netDetail.url }}
{{ netDetail.statusCode }}
{{ JSON.stringify(netDetail.reqHeaders, null, 2) }}
{{ typeof netDetail.reqBody === 'object' ? JSON.stringify(netDetail.reqBody, null, 2) : netDetail.reqBody }}
{{ typeof netDetail.resBody === 'object' ? JSON.stringify(netDetail.resBody, null, 2) : (netDetail.resBody || '(empty)') }}
Download all your settings as a JSON file: auto-reply rules, commands, hooks, categories, pinned chats, contact names, and main number.
Upload a previously downloaded backup JSON file to restore all settings. This will overwrite existing data.
â ī¸ Note: API key, password, and WhatsApp session are not included for security.
"main" as number in API calls to auto-resolve to this number.* to allow all. Otherwise one number per line (e.g. 6282146727409). Numbers not listed will be rejected.Base URL: {{ baseUrl }}
curl -X POST {{ baseUrl }}/api/send-message \
-H "Content-Type: application/json" \
-H "X-API-Key: {{ apiKeyValue }}" \
-d '{"number": "6282146727409", "message": "Hello!"}'
fetch("{{ baseUrl }}/api/send-message", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "{{ apiKeyValue }}"
},
body: JSON.stringify({ number: "6282146727409", message: "Hello!" })
}).then(r => r.json()).then(console.log);
const axios = require('axios');
axios.post('{{ baseUrl }}/api/send-message', {
number: '6282146727409',
message: 'Hello!'
}, {
headers: { 'X-API-Key': '{{ apiKeyValue }}' }
}).then(res => console.log(res.data));
import 'package:dio/dio.dart';
final dio = Dio();
final response = await dio.post('{{ baseUrl }}/api/send-message',
data: {'number': '6282146727409', 'message': 'Hello!'},
options: Options(headers: {'X-API-Key': '{{ apiKeyValue }}'}),
);
print(response.data);
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('{{ baseUrl }}/api/send-message'),
headers: {'Content-Type': 'application/json', 'X-API-Key': '{{ apiKeyValue }}'},
body: jsonEncode({'number': '6282146727409', 'message': 'Hello!'}),
);
print(response.body);
curl -X POST {{ baseUrl }}/api/send-message \
-H "Content-Type: application/json" \
-H "X-API-Key: {{ apiKeyValue }}" \
-d '{
"recipients": ["6282146727409", "628xxx"],
"message": "Hello everyone!"
}'
fetch("{{ baseUrl }}/api/send-message", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "{{ apiKeyValue }}"
},
body: JSON.stringify({
recipients: ["6282146727409", "628xxx"],
message: "Hello everyone!"
})
}).then(r => r.json()).then(console.log);
const axios = require('axios');
axios.post('{{ baseUrl }}/api/send-message', {
recipients: ['6282146727409', '628xxx'],
message: 'Hello everyone!'
}, {
headers: { 'X-API-Key': '{{ apiKeyValue }}' }
}).then(res => console.log(res.data));
import 'package:dio/dio.dart';
final dio = Dio();
final response = await dio.post('{{ baseUrl }}/api/send-message',
data: {
'recipients': ['6282146727409', '628xxx'],
'message': 'Hello everyone!'
},
options: Options(headers: {'X-API-Key': '{{ apiKeyValue }}'}),
);
print(response.data);
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('{{ baseUrl }}/api/send-message'),
headers: {'Content-Type': 'application/json', 'X-API-Key': '{{ apiKeyValue }}'},
body: jsonEncode({
'recipients': ['6282146727409', '628xxx'],
'message': 'Hello everyone!'
}),
);
print(response.body);
curl -X POST {{ baseUrl }}/api/send-message \
-H "Content-Type: application/json" \
-H "X-API-Key: {{ apiKeyValue }}" \
-d '{
"recipients": ["120363xxx@g.us"],
"message": "Hello group!"
}'
fetch("{{ baseUrl }}/api/send-message", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "{{ apiKeyValue }}"
},
body: JSON.stringify({
recipients: ["120363xxx@g.us"],
message: "Hello group!"
})
}).then(r => r.json()).then(console.log);
const axios = require('axios');
axios.post('{{ baseUrl }}/api/send-message', {
recipients: ['120363xxx@g.us'],
message: 'Hello group!'
}, {
headers: { 'X-API-Key': '{{ apiKeyValue }}' }
}).then(res => console.log(res.data));
import 'package:dio/dio.dart';
final dio = Dio();
final response = await dio.post('{{ baseUrl }}/api/send-message',
data: {
'recipients': ['120363xxx@g.us'],
'message': 'Hello group!'
},
options: Options(headers: {'X-API-Key': '{{ apiKeyValue }}'}),
);
print(response.data);
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('{{ baseUrl }}/api/send-message'),
headers: {'Content-Type': 'application/json', 'X-API-Key': '{{ apiKeyValue }}'},
body: jsonEncode({
'recipients': ['120363xxx@g.us'],
'message': 'Hello group!'
}),
);
print(response.body);
curl -X POST {{ baseUrl }}/api/send-message \
-H "Content-Type: application/json" \
-H "X-API-Key: {{ apiKeyValue }}" \
-d '{
"recipients": [
"6282146727409",
"628xxx",
"120363xxx@g.us",
"120363yyy@g.us"
],
"message": "Hello!"
}'
fetch("{{ baseUrl }}/api/send-message", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "{{ apiKeyValue }}"
},
body: JSON.stringify({
recipients: [
"6282146727409",
"628xxx",
"120363xxx@g.us",
"120363yyy@g.us"
],
message: "Hello!"
})
}).then(r => r.json()).then(console.log);
const axios = require('axios');
axios.post('{{ baseUrl }}/api/send-message', {
recipients: [
'6282146727409',
'628xxx',
'120363xxx@g.us',
'120363yyy@g.us'
],
message: 'Hello!'
}, {
headers: { 'X-API-Key': '{{ apiKeyValue }}' }
}).then(res => console.log(res.data));
import 'package:dio/dio.dart';
final dio = Dio();
final response = await dio.post('{{ baseUrl }}/api/send-message',
data: {
'recipients': [
'6282146727409',
'628xxx',
'120363xxx@g.us',
'120363yyy@g.us'
],
'message': 'Hello!'
},
options: Options(headers: {'X-API-Key': '{{ apiKeyValue }}'}),
);
print(response.data);
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('{{ baseUrl }}/api/send-message'),
headers: {'Content-Type': 'application/json', 'X-API-Key': '{{ apiKeyValue }}'},
body: jsonEncode({
'recipients': [
'6282146727409',
'628xxx',
'120363xxx@g.us',
'120363yyy@g.us'
],
'message': 'Hello!'
}),
);
print(response.body);
curl -X POST {{ baseUrl }}/api/send-message \
-H "Content-Type: application/json" \
-H "X-API-Key: {{ apiKeyValue }}" \
-d '{"number": "main", "message": "Hello!"}'
fetch("{{ baseUrl }}/api/send-message", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "{{ apiKeyValue }}"
},
body: JSON.stringify({ number: "main", message: "Hello!" })
}).then(r => r.json()).then(console.log);
const axios = require('axios');
axios.post('{{ baseUrl }}/api/send-message', {
number: 'main',
message: 'Hello!'
}, {
headers: { 'X-API-Key': '{{ apiKeyValue }}' }
}).then(res => console.log(res.data));
import 'package:dio/dio.dart';
final dio = Dio();
final response = await dio.post('{{ baseUrl }}/api/send-message',
data: {'number': 'main', 'message': 'Hello!'},
options: Options(headers: {'X-API-Key': '{{ apiKeyValue }}'}),
);
print(response.data);
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('{{ baseUrl }}/api/send-message'),
headers: {'Content-Type': 'application/json', 'X-API-Key': '{{ apiKeyValue }}'},
body: jsonEncode({'number': 'main', 'message': 'Hello!'}),
);
print(response.body);
curl -X POST {{ baseUrl }}/api/send-message \
-H "Content-Type: application/json" \
-H "X-API-Key: {{ apiKeyValue }}" \
-d '{
"number": "6282146727409",
"message": "Check this image!",
"media": { "url": "https://example.com/photo.jpg" }
}'
fetch("{{ baseUrl }}/api/send-message", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "{{ apiKeyValue }}"
},
body: JSON.stringify({
number: "6282146727409",
message: "Check this image!",
media: { url: "https://example.com/photo.jpg" }
})
}).then(r => r.json()).then(console.log);
const axios = require('axios');
axios.post('{{ baseUrl }}/api/send-message', {
number: '6282146727409',
message: 'Check this image!',
media: { url: 'https://example.com/photo.jpg' }
}, {
headers: { 'X-API-Key': '{{ apiKeyValue }}' }
}).then(res => console.log(res.data));
import 'package:dio/dio.dart';
final dio = Dio();
final response = await dio.post('{{ baseUrl }}/api/send-message',
data: {
'number': '6282146727409',
'message': 'Check this image!',
'media': { 'url': 'https://example.com/photo.jpg' }
},
options: Options(headers: {'X-API-Key': '{{ apiKeyValue }}'}),
);
print(response.data);
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('{{ baseUrl }}/api/send-message'),
headers: {'Content-Type': 'application/json', 'X-API-Key': '{{ apiKeyValue }}'},
body: jsonEncode({
'number': '6282146727409',
'message': 'Check this image!',
'media': { 'url': 'https://example.com/photo.jpg' }
}),
);
print(response.body);
curl -X POST {{ baseUrl }}/api/send-message \
-H "Content-Type: application/json" \
-H "X-API-Key: {{ apiKeyValue }}" \
-d '{
"number": "6282146727409",
"message": "Here is the document",
"media": {
"data": "BASE64_ENCODED_DATA",
"mimetype": "application/pdf",
"filename": "document.pdf"
}
}'
fetch("{{ baseUrl }}/api/send-message", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "{{ apiKeyValue }}"
},
body: JSON.stringify({
number: "6282146727409",
message: "Here is the document",
media: {
data: "BASE64_ENCODED_DATA",
mimetype: "application/pdf",
filename: "document.pdf"
}
})
}).then(r => r.json()).then(console.log);
const axios = require('axios');
const fs = require('fs');
const fileData = fs.readFileSync('document.pdf').toString('base64');
axios.post('{{ baseUrl }}/api/send-message', {
number: '6282146727409',
message: 'Here is the document',
media: {
data: fileData,
mimetype: 'application/pdf',
filename: 'document.pdf'
}
}, {
headers: { 'X-API-Key': '{{ apiKeyValue }}' }
}).then(res => console.log(res.data));
import 'dart:convert';
import 'dart:io';
import 'package:dio/dio.dart';
final dio = Dio();
final bytes = await File('document.pdf').readAsBytes();
final response = await dio.post('{{ baseUrl }}/api/send-message',
data: {
'number': '6282146727409',
'message': 'Here is the document',
'media': {
'data': base64Encode(bytes),
'mimetype': 'application/pdf',
'filename': 'document.pdf'
}
},
options: Options(headers: {'X-API-Key': '{{ apiKeyValue }}'}),
);
print(response.data);
import 'dart:convert';
import 'dart:io';
import 'package:http/http.dart' as http;
final bytes = await File('document.pdf').readAsBytes();
final response = await http.post(
Uri.parse('{{ baseUrl }}/api/send-message'),
headers: {'Content-Type': 'application/json', 'X-API-Key': '{{ apiKeyValue }}'},
body: jsonEncode({
'number': '6282146727409',
'message': 'Here is the document',
'media': {
'data': base64Encode(bytes),
'mimetype': 'application/pdf',
'filename': 'document.pdf'
}
}),
);
print(response.body);
curl -X POST {{ baseUrl }}/api/send-message \
-H "Content-Type: application/json" \
-H "X-API-Key: {{ apiKeyValue }}" \
-d '{
"number": "6282146727409",
"media": { "url": "https://example.com/photo.jpg" }
}'
// Same as above examples, just omit the "message" field. // Only "number" (or "recipients") + "media" is required.
"number" for a single recipient or "recipients" array for multiple."main" as number to send to your configured Main Number ({{ mainNumber }}).+ (e.g. 6282146727409).@g.us (e.g. 120363xxx@g.us)."recipients" array."media": {"url": "..."} to send from a URL, or "media": {"data": "BASE64", "mimetype": "...", "filename": "..."} for base64."message" is optional when sending media â it becomes the caption. You can send media without text."message" or "media" (or both) must be provided."reference_id" to tag messages with your own tracking ID.Check the delivery status of a queued message by its queue ID or your custom reference_id.
GET /api/message-status/:idcurl -X POST {{ baseUrl }}/api/send-message \
-H "Content-Type: application/json" \
-H "X-API-Key: {{ apiKeyValue }}" \
-d '{
"number": "6282146727409",
"message": "Hello!",
"reference_id": "order-12345"
}'
fetch("{{ baseUrl }}/api/send-message", {
method: "POST",
headers: {
"Content-Type": "application/json",
"X-API-Key": "{{ apiKeyValue }}"
},
body: JSON.stringify({
number: "6282146727409",
message: "Hello!",
reference_id: "order-12345"
})
}).then(r => r.json()).then(console.log);
const axios = require('axios');
axios.post('{{ baseUrl }}/api/send-message', {
number: '6282146727409',
message: 'Hello!',
reference_id: 'order-12345'
}, {
headers: { 'X-API-Key': '{{ apiKeyValue }}' }
}).then(res => console.log(res.data));
import 'package:dio/dio.dart';
final dio = Dio();
final response = await dio.post('{{ baseUrl }}/api/send-message',
data: {
'number': '6282146727409',
'message': 'Hello!',
'reference_id': 'order-12345'
},
options: Options(headers: {'X-API-Key': '{{ apiKeyValue }}'}),
);
print(response.data);
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.post(
Uri.parse('{{ baseUrl }}/api/send-message'),
headers: {'Content-Type': 'application/json', 'X-API-Key': '{{ apiKeyValue }}'},
body: jsonEncode({
'number': '6282146727409',
'message': 'Hello!',
'reference_id': 'order-12345'
}),
);
print(response.body);
curl {{ baseUrl }}/api/message-status/order-12345 \
-H "X-API-Key: {{ apiKeyValue }}"
fetch("{{ baseUrl }}/api/message-status/order-12345", {
headers: { "X-API-Key": "{{ apiKeyValue }}" }
}).then(r => r.json()).then(console.log);
const axios = require('axios');
axios.get('{{ baseUrl }}/api/message-status/order-12345', {
headers: { 'X-API-Key': '{{ apiKeyValue }}' }
}).then(res => console.log(res.data));
import 'package:dio/dio.dart';
final dio = Dio();
final response = await dio.get('{{ baseUrl }}/api/message-status/order-12345',
options: Options(headers: {'X-API-Key': '{{ apiKeyValue }}'}),
);
print(response.data);
import 'dart:convert';
import 'package:http/http.dart' as http;
final response = await http.get(
Uri.parse('{{ baseUrl }}/api/message-status/order-12345'),
headers: {'X-API-Key': '{{ apiKeyValue }}'},
);
print(jsonDecode(response.body));
{
"id": "uuid-queue-id",
"reference_id": "order-12345",
"number": "6282146727409",
"chatId": "6282146727409@c.us",
"message": "Hello!",
"status": "sent", // pending | sending | sent | failed
"error": null,
"createdAt": 1709654400000,
"sentAt": 1709654405000
}