Wapi turns WhatsApp into a clean API. Instead of dealing with low-level libraries and fragile sessions, it exposes a REST interface to send messages, receive events via webhooks and manage several accounts from a single dashboard.
The challenge
Sending WhatsApp programmatically usually means per-message vendor fees or fragile integrations that keep disconnecting. Many businesses want to wire their CRM, store or bot to WhatsApp without losing control of their data or paying a margin per message.
What we did
A self-hosted gateway with a NestJS + Next.js architecture, Postgres and Redis:
- Multiple WhatsApp accounts with persistent sessions (Baileys).
- Sending via REST API with full media support (images, audio, documents).
- Real-time webhooks for incoming messages and status changes.
- Dashboard to manage accounts, templates and message history.
How we built it
We prioritised reliability: automatic session reconnection, a Redis queue for send spikes and Postgres persistence. The API is documented so any system can integrate in minutes. It all runs on your own infrastructure or on Cloudflare, with no third-party dependency.
Results
A single integration point for WhatsApp: your CRM, store or bot talks to a stable API, your data never leaves your control, and you scale across accounts without changing providers.