
Who go-whatsapp-web-multidevice is for#
Backend developers building WhatsApp chatbots
GOWA's REST API lets developers integrate WhatsApp messaging into any backend without language-specific SDKs. Webhooks deliver incoming messages as JSON; outgoing messages are a single HTTP POST. The auto-reply flag enables simple bot behavior without custom code for straightforward flows.
Skip if:
Skip if you need the official WhatsApp Business API for compliance or policy reasons, or if your team requires vendor-backed delivery guarantees that an unofficial client cannot provide.
Customer support teams running Chatwoot
Teams already running Chatwoot can use GOWA as a self-hosted WhatsApp channel, routing customer messages into Chatwoot inboxes without paying per-conversation fees to a commercial WhatsApp Business API provider. The Chatwoot integration ships as part of GOWA with its own JID ignore filter.
Skip if:
Skip if your Chatwoot instance must connect through a licensed Business Solution Provider for regulatory compliance or WhatsApp policy coverage.
AI agent developers using MCP
The MCP server at /mcp makes GOWA a first-class WhatsApp tool for any MCP-compatible AI agent framework. Agents can send messages, query device status, and subscribe to incoming events through the standard MCP protocol, without building a custom WhatsApp integration.
Skip if:
Skip if your AI agent framework does not support MCP, or if your use case involves high-volume outbound messaging at a scale that could trigger WhatsApp spam detection on unofficial clients.
Dev teams building multi-tenant notification pipelines
Multi-account support (v8+) lets a single GOWA instance manage notifications across multiple WhatsApp numbers, each with isolated webhook URLs and device_id scoping. This avoids running one server per account for multi-client or multi-product pipelines.
Skip if:
Skip if the account count or delivery volume would benefit more from the managed infrastructure and SLA guarantees of an official Business API provider.
The problem it solves#
Integrating WhatsApp into business applications typically means routing every message through a paid commercial API. Services like Twilio, MessageBird, and Sinch charge per-message or per-session fees that compound quickly once a product reaches any meaningful volume. Beyond cost, every message transits external servers, meaning teams have no control over session data, message storage, or rate limits imposed by the provider.
The operational challenge compounds for teams running multiple WhatsApp numbers, whether for different clients, product lines, or customer support queues. Commercial APIs handle this through seat-based or account-based pricing tiers that grow expensive as requirements scale. Teams that need granular webhook control, custom event filtering, or AI agent integration through MCP often find that commercial platforms restrict or do not support those workflows at all.
How it solves it#
Multi-account management
Manage multiple WhatsApp numbers from a single server instance. Since v8, each device registers under its own device_id and responds to scoped REST calls via the X-Device-Id header or device_id query parameter. Accounts can be added, removed, and listed through dedicated /devices endpoints without restarting the server.
Per-device webhook routing
Each connected WhatsApp account can send events to its own webhook URL, configured via PATCH /devices/:device_id/webhook. When no device-specific webhook is set, events fall back to the global webhook. All webhook payloads are HMAC-signed with a sha256 key you configure, verifiable on receipt.
Webhook event and JID filtering
Control exactly which WhatsApp events reach your webhook using the WHATSAPP_WEBHOOK_EVENTS flag or environment variable. Supported events include messages, reactions, edited messages, delivery receipts, group membership changes, call events, and newsletter subscriptions. Filter by JID (contact or group address) to mute specific chats independently of event-type filtering.
MCP server for AI agent integration
Since v9, the Model Context Protocol server is served directly by the REST server at /mcp: no separate process or subcommand needed. This makes GOWA usable as a WhatsApp tool in any MCP-compatible AI agent framework, allowing agents to send messages, check device status, or react to incoming events through the standard MCP protocol.
ARM and AMD binary releases
Prebuilt binaries for ARM and AMD architectures are published via goreleaser on every release. Docker images are available on Docker Hub (aldinokemal2104/go-whatsapp-web-multidevice) and the GitHub Container Registry. Both architecture variants ship from the same CI pipeline alongside automated Docker image builds.
n8n workflow node
A dedicated n8n community node (@aldinokemal2104/n8n-nodes-gowa) connects GOWA to n8n workflows. Install it via Settings > Community Nodes in n8n to trigger WhatsApp sends and receive webhook events as n8n workflow inputs, without custom code.
Strengths and trade-offs#
Strengths
- MIT license with no per-message costThe entire codebase is MIT licensed, so you pay only for the server running it. Unlike Twilio or MessageBird, there is no per-message billing, no session fee, and no API quota. High-volume notification systems or chatbots that would cost hundreds of dollars per month on commercial APIs run at infrastructure cost only.
- Go runtime for memory-efficient multi-session handlingBuilt in Go specifically for efficient memory use (per the repo description), GOWA can handle multiple concurrent WhatsApp sessions on modest hardware. The database defaults to SQLite for single-instance deployments, with PostgreSQL supported via DB_URI for higher-concurrency production setups.
- Actively maintained with substantive architecture milestonesThe repository has been maintained since February 2022 and last received a push in August 2026. The v8 multi-account milestone and v9 UI separation (moving the dashboard to a separately versioned gowa-ui.html) represent substantive architectural work. 4,551 stars and 1,080 forks reflect meaningful community adoption.
- Chatwoot integration includedGOWA includes built-in Chatwoot support, routing incoming WhatsApp messages to the open source Chatwoot customer support inbox. Teams running Chatwoot can wire GOWA as a WhatsApp channel without a third-party commercial connector or per-conversation fees.
Trade-offs
- -WhatsApp Web protocol, not the official Business APIGOWA connects through the WhatsApp Web multi-device protocol, not Meta's official WhatsApp Business API (used by Twilio, MessageBird, and Sinch). WhatsApp may ban accounts it detects as operating through unofficial clients at scale. Official Business API connections carry delivery guarantees and compliance coverage that GOWA cannot provide.
- -Session re-linking on storage lossEach WhatsApp account must be linked by scanning a QR code on the running server. If the server restarts without persistent session storage, accounts must be re-linked. Session state lives in SQLite or a separate DB_KEYS_URI database; losing that storage means re-pairing all connected devices manually.
- -No managed-cloud tier or SLAGOWA is self-hosted only. There is no vendor-managed cloud option, uptime SLA, or support contract. Teams that need guaranteed delivery, 24/7 vendor support, or licensed Business Solution Provider status for regulated industries should evaluate official WhatsApp Business API providers instead.
go-whatsapp-web-multidevice vs alternatives#
go-whatsapp-web-multidevice vs Twilio WhatsApp
Both tools send and receive WhatsApp messages from application code, but they operate on fundamentally different infrastructure models. Twilio's WhatsApp Business API is a managed cloud service from a licensed Business Solution Provider. GOWA is a self-hosted, MIT-licensed Go server that connects through WhatsApp's multi-device web protocol.
| Feature | GOWA | Twilio WhatsApp |
|---|---|---|
| License | MIT | Proprietary |
| Self-hosting | Yes | No |
| Pricing model | Infrastructure cost only | Per-message billing |
| Multi-account | Yes (v8+) | Yes (separate numbers) |
| MCP server | Yes (v9+) | No |
| Chatwoot integration | Built in | No |
| Official WhatsApp API | No | Yes |
| Delivery SLA | None | Provider SLA |
GOWA is the better choice for teams building internal tools, chatbots, or notification systems that need WhatsApp access without per-message billing. A high-volume pipeline sending tens of thousands of messages per month would cost hundreds of dollars on Twilio; on GOWA, that same pipeline runs at server cost only.
Twilio is the better choice when WhatsApp compliance matters, when delivery receipts with SLA guarantees are required, or when teams need Meta's official Business Solution Provider status for regulated industries or high-profile commercial deployments. WhatsApp may ban accounts operating through unofficial clients at scale, which is a real operational risk for GOWA in production.
go-whatsapp-web-multidevice vs MessageBird and Sinch
MessageBird (now Bird) and Sinch both offer WhatsApp messaging through the official Business API, comparable to Twilio. The licensing, billing, and compliance trade-offs are the same: per-message or platform fees versus GOWA's self-hosted zero-marginal-cost model. GOWA's core advantages versus MessageBird and Sinch are identical to those versus Twilio: no per-message cost, full data ownership, and no dependency on a third-party service for message routing.
The key trade-off versus all three commercial platforms is official API access. MessageBird and Sinch, like Twilio, connect through Meta's officially approved channels, which provides compliance coverage and delivery guarantees that GOWA cannot offer as an unofficial WhatsApp Web client.
Install and self-host#
Self-hosting deploys via Docker; the server binds to port 3000 by default.
```bash
docker run -d -p 3000:3000 aldinokemal2104/go-whatsapp-web-multidevice rest
```What it's built on#
- Languages
- Go
FAQ#
Is go-whatsapp-web-multidevice free to use?
Yes. The project is MIT licensed and free to self-host. There are no per-message fees, no API quotas, and no commercial license required. You pay only for the server running it. Docker images and prebuilt binaries for ARM and AMD are available at no cost via Docker Hub and the GitHub releases page.
How is GOWA different from the official WhatsApp Business API?
GOWA connects through the WhatsApp Web multi-device protocol, not Meta's official Business API. The official API (used by Twilio, MessageBird, and Sinch) is for licensed Business Solution Providers and comes with formal delivery guarantees and Meta compliance review. GOWA is an unofficial client: it works well for development and internal tools, but carries a risk of account banning if WhatsApp detects automated usage that violates its terms of service.
Can I manage multiple WhatsApp accounts on one server?
Yes. Since v8, GOWA supports connecting and managing multiple WhatsApp accounts in a single server instance. Each account gets its own device_id, and all REST API calls scope to a device via the X-Device-Id header or device_id query parameter. Per-device webhook URLs are configurable independently.
What database does go-whatsapp-web-multidevice use?
SQLite by default, stored at storages/whatsapp.db. PostgreSQL is supported via the DB_URI environment variable for production workloads that need concurrent access or higher durability. A separate DB_KEYS_URI can be configured to keep session key storage isolated, which prevents losing WhatsApp session state if the main database is reset.
Does GOWA support Chatwoot?
Yes. GOWA includes built-in Chatwoot integration, routing incoming WhatsApp messages into a Chatwoot inbox. The integration ships its own CHATWOOT_IGNORE_JIDS filter for muting specific contacts or groups within Chatwoot, independent of the global webhook JID filter.
Similar open-source tools#
LiveKit
Real-time voice and video infrastructure on open source WebRTC
iptv
A collaborative database for TV channels
documenso
Open source DocuSign alternative with enterprise e-signatures
Hume AI
Empathic voice AI SDK with open source emotional models
Rocket.Chat
Self-hosted team chat with voice, video, and omnichannel support
Novu
Open source notification infrastructure for product teams

