Self-hosted WhatsApp messaging that scales with you.
Link your devices with a QR scan, send single messages or run bulk campaigns, deliver OTPs, and integrate everything through a clean REST API. No per-message fees, no third-party gatekeepers.
The complete WhatsApp platform, in one app.
Devices, campaigns, OTPs, contacts, API, team — every piece of the messaging workflow lives here, in a self-hosted package you control.
Channels & Devices
Link multiple WhatsApp numbers with a QR scan and manage them from one place.
- QR-pair new numbers in seconds
- Multi-channel broadcast from one dashboard
- Persistent sessions survive redeploys (WA_SESSIONS_DIR)
- Per-device API tokens with rotation
Bulk Campaigns
Run personalised, throttled bulk sends with templates and country-code awareness.
- {{name}} placeholders per contact
- Country-code picker (IN, US, UK, AE, …)
- Ready-made greeting, promo & reminder templates
- Interval throttling to stay under WhatsApp radar
OTP Delivery
Send one-time passwords with rotation, contact-group targeting, and delivery status.
- Auto-rotate OTP codes
- Target an entire contact group in one go
- Live delivery & failure reporting
- Works with any of your linked devices
Contacts & Groups
Full CRUD on contacts, organise them into groups, and reuse groups across sends.
- Import, edit, delete contacts
- Group contacts by audience or use-case
- Search & filter across thousands of contacts
- Re-use groups in campaigns and OTPs
REST API & SDKs
Hit three endpoints to send, check balance, and pull reports. Sample code in 6 languages.
- GET /api/send-message · /api/balance · /api/reports
- cURL, Node.js, PHP, Python, Java, Go samples
- Per-device API tokens
- Drop-in for any backend stack
Team & Multi-tenancy
Three-tier roles, company isolation, audit logs, and a superadmin console.
- Roles: superadmin · admin · user
- Company-level data isolation
- Invite teammates via email or link
- Full audit log for every privileged action
Your infrastructure. Your data.
WASend is a self-hosted Next.js app. Run it on a $5 VPS with PM2, behind Nginx, or inside Docker. No third-party API bills, no rate-limited middleman.
On a redeploy, the container filesystem is wiped. Set WA_SESSIONS_DIR to a persistent volume or host mount so your linked WhatsApp devices reconnect automatically — no QR re-scans.
# 1. Install
npm install
# 2. Configure
cp .env .env.local
# set MONGODB_URI, NEXTAUTH_SECRET, NEXTAUTH_URL, ADMIN_SETUP_KEY
# 3. Seed the first superadmin
npm run seed
# 4. Build & run with PM2
npm run build
npm install -g pm2
pm2 start npm --name wasend -- start
pm2 save && pm2 startup