Our take
Activeregular commits and releases- Activity
- 90
- Community
- 46
- Issues
- 46
- Pull requests
- 82
- Releases more often than 93% of the projects we track
- Merges more pull requests than 92% of the projects we track
OpenWA is a feature-rich self-hosted gateway with sustained recent development, but its unofficial WhatsApp engines and highly concentrated contribution make it a considered choice rather than a low-risk messaging dependency.
Good fit if
- You need a self-hosted WhatsApp API and are comfortable operating its Docker or Node.js deployment.
- Your use case is a personal project, internal tool or opt-in automation, and you can use a dedicated number.
- You want control over sessions, storage and key scopes, and can accommodate the project’s active but contributor-concentrated development.
Look elsewhere if
- Your deployment requires Meta’s official WhatsApp API or must meet strict regulatory or compliance expectations.
- Account continuity is critical and you cannot accept the possibility of WhatsApp restricting an unofficial client.
- You need a vendor-supported service rather than a self-hosted gateway whose development depends heavily on one contributor.
All health signals
| Last commit | 2026-10-25 (today) |
|---|---|
| Commits, last 90 days | 100+ |
| Releases, last 12 months | 100+ (latest v0.25.0, 2026-10-15) |
| Contributors | 78 (top contributor: 95% of commits) |
| Issues closed, last 90 days | 1+ |
| Pull requests merged, last 90 days | 88 (typically merged in 0 days) |
| Project age | 9 months |
Checked on 2026-10-25 with the GitHub API.
Overview
OpenWA is a self-hosted WhatsApp API gateway built on whatsapp-web.js and Baileys. It provides a REST API for WhatsApp messaging and session management, aiming to give developers control over their messaging infrastructure without a hosted API vendor.
The project includes a web dashboard and supports multiple sessions. It is aimed at personal projects, internal tools and automation where self-hosting matters. It is not an official Meta WhatsApp Cloud API client: both engines are unofficial, reverse-engineered clients, and WhatsApp may restrict or ban connected accounts.
Key Features
- REST API for sessions, messages, contacts, groups, labels and other WhatsApp operations.
- Multi-session support, with
whatsapp-web.jsas the default engine and Baileys as an alternative. - Web dashboard for managing sessions, webhooks and API keys.
- Webhooks for real-time events, with HMAC signatures and optional event filters.
- Configurable SQLite or PostgreSQL databases, local or S3-compatible media storage, and optional Redis.
- Operator and viewer API keys can be restricted to selected sessions and chats.
- Docker deployment, a bundled dashboard, Swagger API documentation and an optional MCP interface for AI agents.
Use Cases
- Developers building an internal support bot who need to send and receive WhatsApp messages through an API they host.
- Teams connecting WhatsApp events to their own services with webhooks and session-specific credentials.
- Automation hobbyists running multiple WhatsApp accounts on their own infrastructure.
- Developers experimenting with AI-agent workflows that need a restricted WhatsApp interface through the optional MCP server.
What you need
Detected in the repository
- Node.js >=22.19 (from package.json)
- A Dockerfile, so it can run in a container; a Compose file sets up the related services
- A Helm chart for Kubernetes
- A test suite and automated checks on GitHub Actions
License in plain words
MITpermissive
- Commercial use: yes
- Modify and redistribute: yes
- You must keep: the copyright and license notice
- Share your changes: no
A summary, not legal advice: the LICENSE file is what applies.
Getting Started
With Docker Compose:
git clone https://github.com/rmyndharis/OpenWA.git
cd OpenWA
docker compose -f docker-compose.dev.yml up -d
The dashboard and API are served at http://localhost:2785. See the README for the API-key setup, local development instructions and production deployment options.
Alternatives
- wa-js: wa-js provides a JavaScript API inside a WhatsApp Web session, while OpenWA offers a self-hosted REST gateway with multi-session support.
| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| OpenWA | TypeScript | MIT | 16.2k | Active |
| wa-js | TypeScript | Apache-2.0 | 817 | Active |
Considerations
- Both supported engines connect through unofficial, reverse-engineered WhatsApp clients. The README warns that account restriction or bans are possible, and that the engines differ in resource use and risk profile.
- The project is actively maintained, with recent commits and releases, but measured contribution is highly concentrated in one person despite participation from other contributors. This is relevant when assessing long-term maintenance dependence.
- Running it requires Node.js 22.19 or newer for local development, or Docker and Compose. PostgreSQL, Redis and S3-compatible storage are optional rather than prerequisites.
- The README notes that WhatsApp’s account-linking passkey step is not supported by either engine, and that some first messages to new contacts may be dropped by WhatsApp’s own policies.
- OpenWA is licensed under MIT. Its README advises using Meta’s official Cloud API instead for regulated or high-stakes messaging deployments.
Found this useful?
Share it with someone who would like OpenWA.