ID:
Status:
Phone:
QR Code not available. Try refreshing the session.
Scan with WhatsApp to connect
This session will be used for all actions below
Enter with country code
Current Status:
💡 Use "List Chats" action first to load available chats
💡 Use "List Chats" action first to load available chats
Leave empty to screenshot main screen, or select a chat
Screenshot Preview
Configure storage and webhooks for this session
⚠ Appwrite not configured
Please set Appwrite credentials in your environment variables (.env file) before enabling Appwrite storage.
Endpoint:
Project:
Database:
Collection:
Bucket:
Send webhook events to external URLs (like your own server, n8n, Zapier, etc.)
Base domain is set in environment. Only customize the path.
Session:
No messages found
(Media not stored locally)
Note: Messages and media files are stored locally in the /data directory when local storage is enabled in webhook configuration.
Enable or disable the Swagger UI endpoint
Setting saved. Restart the server to apply changes.
Include your API key in request headers:
x-api-key: YOUR_API_KEY
/api/sessions
Create and start a new WhatsApp session
Request Body:
{ "name": "My Session" }
Response:
{ "success": true, "session": { "id": "session_123", "name": "My Session", "status": "INITIALIZING" } }
/api/sessions
List all active sessions
Response:
{ "sessions": [{ "id": "session_123", "name": "My Session", "status": "CONNECTED" }] }
/api/sessions/:id
Get detailed information about a specific session
Response:
{ "id": "session_123", "name": "My Session", "status": "CONNECTED", "phone_number": "+201234567890" }
/api/sessions/:id
Delete a session and its data
Response:
{ "success": true }
/api/sessions/:id/logout
Logout a session without deleting it
Response:
{ "success": true, "message": "Session logged out" }
/api/sessions/:id/qr
Get QR code for session authentication
Response:
{ "qr_code": "data:image/png;base64,..." }
/api/send/text
Send a text message
Request Body:
{ "sessionId": "session_123", "chatId": "201234567890@c.us", "text": "Hello!" }
Response:
{ "success": true, "messageId": "msg_id_123" }
/api/send/media
Send image, video, or document
Request Body:
{ "sessionId": "session_123", "chatId": "201234567890@c.us", "mediaUrl": "https://example.com/image.jpg", "caption": "Check this out!" }
Response:
{ "success": true, "messageId": "msg_id_123" }
/api/send/voice
Send a voice message
Request Body:
{ "sessionId": "session_123", "chatId": "201234567890@c.us", "voiceUrl": "https://example.com/voice.ogg" }
Response:
{ "success": true, "messageId": "msg_id_123" }
/api/send/poll
Send a poll message
Request Body:
{ "sessionId": "session_123", "chatId": "201234567890@c.us", "pollName": "How are you?", "options": ["Great", "Good", "Not bad"], "allowMultipleAnswers": false }
Response:
{ "success": true, "messageId": "msg_id_123" }
/api/send/link
Send a link with preview
Request Body:
{ "sessionId": "session_123", "chatId": "201234567890@c.us", "url": "https://example.com", "text": "Check this website!" }
Response:
{ "success": true, "messageId": "msg_id_123" }
/api/send/reaction
React to a message with emoji
Request Body:
{ "sessionId": "session_123", "messageId": "msg_id_here", "emoji": "👍" }
Response:
{ "success": true }
/api/check-number
Check if a number is registered on WhatsApp
Request Body:
{ "sessionId": "session_123", "phoneNumber": "201234567890" }
Response:
{ "registered": true, "phoneNumber": "201234567890" }
/api/sessions/:id/presence
Set presence status (online/offline)
Request Body:
{ "presence": "available" }
Values: "available" or "unavailable"
Response:
{ "success": true, "presence": "available" }
/api/sessions/:id/chats
Get all chats for a session
Response:
{ "chats": [{ "id": "201234567890@c.us", "name": "John Doe", "isGroup": false, "unreadCount": 0 }] }
/api/sessions/:id/chats/:chatId/messages?limit=50
Get messages from a specific chat
Response:
{ "messages": [{ "id": "msg_123", "body": "Hello!", "from": "201234567890@c.us", "timestamp": 1234567890 }] }
/api/sessions/:id/contacts/:contactId
Get contact information
Response:
{ "id": "201234567890@c.us", "name": "John Doe", "number": "201234567890", "isMyContact": true }
/api/webhooks
Create a new webhook
Request Body:
{ "sessionId": "session_123", "url": "https://your-server.com/webhook", "events": ["message"] }
Response:
{ "success": true, "webhookId": 1 }
/api/webhooks
List all webhooks
Response:
{ "webhooks": [{ "id": 1, "session_id": "session_123", "url": "https://your-server.com/webhook" }] }
/api/webhooks/:id
Delete a webhook
Response:
{ "success": true }
/api/webhook-config/:sessionId
Get webhook configuration for a session
Response:
{ "session_id": "session_123", "save_to_appwrite": 1, "save_to_local": 1, "appwrite_enabled": 1, "events": ["message"] }
/api/webhook-config/:sessionId
Update webhook configuration
Request Body:
{ "save_to_appwrite": 1, "save_to_local": 1, "appwrite_enabled": 1, "events": ["message", "message_reaction"] }
Response:
{ "success": true }
/api/messages?limit=100&offset=0
Get local messages from database
Response:
{ "messages": [{ "id": 1, "from_number": "201234567890", "body": "Hello!", "timestamp": 1234567890 }] }
Always use the format: COUNTRYCODE+NUMBER@c.us (without the + symbol)
Examples:
201234567890@c.us966512345678@c.us11234567890@c.us