{"name":"OpenWA: WhatsApp API Gateway with whatsapp-web.js and Baileys","description":"OpenWA is a self-hosted WhatsApp API gateway built on whatsapp-web.js and Baileys, with a REST API, dashboard and multi-session support. It suits developers who want to operate their own messaging infrastructure, but relies on unofficial WhatsApp clients and carries account-restriction risk.","github":"https://github.com/rmyndharis/OpenWA","url":"https://osrepos.com/repo/rmyndharis-openwa","source":"osrepos.com","sourceDescription":"This repository profile is provided by osrepos.com, an open source repository discovery platform.","repositoryProfile":"https://osrepos.com/repo/rmyndharis-openwa","generatedFor":"open source discovery and AI-assisted research","markdown":"https://osrepos.com/repo/rmyndharis-openwa.md","json":"https://osrepos.com/repo/rmyndharis-openwa.json","topics":["typescript","self-hosted","api","automation","whatsapp-api","whatsapp-gateway","whatsapp-bot"],"keywords":["typescript","self-hosted","api","automation","whatsapp-api","whatsapp-gateway","whatsapp-bot"],"stars":null,"summary":"OpenWA is a self-hosted WhatsApp API gateway built on whatsapp-web.js and Baileys, with a REST API, dashboard and multi-session support. It suits developers who want to operate their own messaging infrastructure, but relies on unofficial WhatsApp clients and carries account-restriction risk.","content":"## Overview\n\n[OpenWA](https://github.com/rmyndharis/OpenWA) is a self-hosted WhatsApp API gateway built on [whatsapp-web.js](https://github.com/pedroslopez/whatsapp-web.js) and [Baileys](https://github.com/WhiskeySockets/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.\n\nThe 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.\n\n## Key Features\n\n- REST API for sessions, messages, contacts, groups, labels and other WhatsApp operations.\n- Multi-session support, with `whatsapp-web.js` as the default engine and Baileys as an alternative.\n- Web dashboard for managing sessions, webhooks and API keys.\n- Webhooks for real-time events, with HMAC signatures and optional event filters.\n- Configurable SQLite or PostgreSQL databases, local or S3-compatible media storage, and optional Redis.\n- Operator and viewer API keys can be restricted to selected sessions and chats.\n- Docker deployment, a bundled dashboard, Swagger API documentation and an optional MCP interface for AI agents.\n\n## Use Cases\n\n- Developers building an internal support bot who need to send and receive WhatsApp messages through an API they host.\n- Teams connecting WhatsApp events to their own services with webhooks and session-specific credentials.\n- Automation hobbyists running multiple WhatsApp accounts on their own infrastructure.\n- Developers experimenting with AI-agent workflows that need a restricted WhatsApp interface through the optional MCP server.\n\n## Our Take\n\nOpenWA 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.\n\n**Good fit if:**\n- You need a self-hosted WhatsApp API and are comfortable operating its Docker or Node.js deployment.\n- Your use case is a personal project, internal tool or opt-in automation, and you can use a dedicated number.\n- You want control over sessions, storage and key scopes, and can accommodate the project’s active but contributor-concentrated development.\n\n**Look elsewhere if:**\n- Your deployment requires Meta’s official WhatsApp API or must meet strict regulatory or compliance expectations.\n- Account continuity is critical and you cannot accept the possibility of WhatsApp restricting an unofficial client.\n- You need a vendor-supported service rather than a self-hosted gateway whose development depends heavily on one contributor.\n\n## Project Health\n\n| Signal | Value |\n|---|---|\n| Status | **Active**: regular commits and releases |\n| Last commit | 2026-10-25 (today) |\n| Commits, last 90 days | 100+ |\n| Releases, last 12 months | 100+ (latest v0.25.0, 2026-10-15) |\n| Contributors | 78 (top contributor: 95% of commits) |\n| Issues closed, last 90 days | 1+ |\n| Pull requests merged, last 90 days | 88 (typically merged in 0 days) |\n| Project age | 9 months |\n\nChecked on 2026-10-25 with the GitHub API.\n\n## Project Facts\n\n- Language: TypeScript\n- License: MIT\n- Stars: 16.2k\n- Forks: 3.8k\n- Topics: api, bot, gateway, self-hosted, whatsapp, whatsapp-api, whatsapp-automation, whatsapp-bot\n- Website: https://www.open-wa.org\n- Archived: no\n\n## What You Need\n\nDetected in the repository:\n\n- Node.js >=22.19 (from package.json)\n- A Dockerfile, so it can run in a container; a Compose file sets up the related services\n- A Helm chart for Kubernetes\n- A test suite and automated checks on GitHub Actions\n\n## Getting Started\n\nWith Docker Compose:\n\n```bash\ngit clone https://github.com/rmyndharis/OpenWA.git\ncd OpenWA\ndocker compose -f docker-compose.dev.yml up -d\n```\n\nThe dashboard and API are served at `http://localhost:2785`. See the [README](https://github.com/rmyndharis/OpenWA#readme) for the API-key setup, local development instructions and production deployment options.\n\n## License in Plain Words\n\n**MIT** (permissive).\n\n- Commercial use: yes\n- Modify and redistribute: yes\n- You must keep: the copyright and license notice\n- Share your changes: no\n\nA summary, not legal advice: the LICENSE file is what applies.\n\n## Alternatives\n\n- [wa-js](https://osrepos.com/repo/wppconnect-team-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.\n\n| Project | Language | License | Stars | Status |\n|---|---|---|---|---|\n| **OpenWA** | TypeScript | MIT | 16.2k | Active |\n| [wa-js](https://osrepos.com/repo/wppconnect-team-wa-js) | TypeScript | Apache-2.0 | 817 | Active |\n\n## Considerations\n\n- 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.\n- 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.\n- 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.\n- 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.\n- OpenWA is licensed under MIT. Its README advises using Meta’s official Cloud API instead for regulated or high-stakes messaging deployments.","metrics":{"detailViews":1,"githubClicks":0},"dates":{"published":null,"modified":"2026-10-25T14:21:24.000Z"}}