Manage Phones
Phone quota
0 / 0
Allowed media: —
—
Add Phone
Webhook: message.received
message.received event. If one exists you can replace it.Your Phones
No phone numbers yet
Add your first phone number above to get started.
Groups
Fetch Groups
Click the button below to load WhatsApp groups for the selected phone number
Security
Generate Token (no expiry)
Enter your password to generate a permanent token. Copy it now; it won't be shown again.
Change Password
Update the password stored locally. If no password was set, leave current blank.
API Documentation
Authentication
/api/v1/auth/login
Login to get authentication token
{ "password": "string" }Response: Returns JWT token in cookie
/api/v1/auth/generate-token
Generate a non-expiring user token (displayed once)
{ "password": "string" }Response:
{ token: string, expiresIn: null }
/api/v1/auth/change-password
Set or change the local password
{ "oldPassword": "string", "newPassword": "string" } (oldPassword optional if not previously set)Response: Success confirmation
/api/v1/auth/verify
Verify authentication status
token (optional)Response:
{ "data": { "valid": boolean } }
/api/v1/auth/logout
Logout and clear authentication
Phone Management
/api/v1/user/phones
Get list of user's phone numbers
/api/v1/user/phones
Add a new phone number
{ "phone": "string", "country": "string" } (country optional)Response: Success confirmation
/api/v1/user/phones/:phone
Delete a phone number
/api/v1/user/phones/:phone/connect
Connect/pair a phone with WhatsApp
{ "pairingCodeMode": boolean } (optional, default false)Response: QR code or pairing code data
/api/v1/user/phones/:phone/disconnect
Disconnect a phone from WhatsApp
Messaging
/api/v1/user/phones/:phone/message
Send a message (text, media, or custom)
{ "recipient": "string", "message": "string", "country": "string" }Optional params:
jid, mediaLink, media, list, messageOptionsResponse: Message delivery status and ID
/api/v1/user/phones/:phone/typing
Send typing indicator
{ "recipient": "string", "isTyping": boolean }
/api/v1/user/phones/:phone/has-whatsapp
Check if a number has WhatsApp
{ "recipient": "string", "country": "string" } (country optional)
/api/v1/user/phones/:phone/messages
Get message history
page, limit, recipient, country (all optional)Response: Paginated message history
Groups
/api/v1/user/phones/:phone/groups
Get all WhatsApp groups for a phone
Note: Results are cached for 4 minutes
/api/v1/user/phones/:phone/groups/:groupId
Get specific group details
Note: Results are cached
Contacts
/api/v1/user/contacts
Get all contacts across all phones
/api/v1/user/contacts/:phone
Get contacts for specific phone
/api/v1/user/contacts/pagination
Get paginated contacts across all phones
page, limit (optional)
Webhooks
/api/v1/user/webhooks
Get all configured webhooks
/api/v1/user/webhooks
Create a new webhook
{ "url": "string", "services": ["message.received"] }Note: Only one webhook per service type supported
/api/v1/user/webhooks/:id
Update existing webhook
{ "url": "string", "services": ["message.received"] }
/api/v1/user/webhooks/:id
Delete a webhook
Health & Status
/api/v1/health
Get API health status
{ "status": "ok", "timestamp": "ISO date" }
/api/v1/health/resources
Get system resource usage
General Notes
- • All endpoints require authentication via JWT token (cookie or Bearer header)
- • Phone numbers should include country code (e.g., +1234567890)
- • Recipient validation: with "@" = JID, without "@" + country = validated phone, without both = append @s.whatsapp.net if 7-15 digits
- • File uploads use multipart/form-data, other requests use JSON
- • Rate limiting and user quota restrictions may apply
- • WebSocket connections are not documented here but may be available