# OpenWA: WhatsApp API Gateway with whatsapp-web.js and Baileys

This repository profile is provided by osrepos.com, an open source repository discovery platform.

Source: osrepos.com
Repository profile: https://osrepos.com/repo/rmyndharis-openwa
Generated for open source discovery and AI-assisted research.

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
OSRepos URL: https://osrepos.com/repo/rmyndharis-openwa

## 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.

## Topics

- typescript
- self-hosted
- api
- automation
- whatsapp-api
- whatsapp-gateway
- whatsapp-bot

## Repository Information

Last analyzed by OSRepos: Sun Oct 25 2026 14:21:24 GMT+0000 (Western European Standard Time)
Detail views: 1
GitHub clicks: 0

## Safety Notice

OSRepos shares public repositories for knowledge and discovery only. Review source code, dependencies, licenses, and security implications before running or installing anything.

## Content

## Overview

[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.

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.js` as 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.

## Our Take

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.

## Project Health

| Signal | Value |
|---|---|
| Status | **Active**: regular commits and releases |
| 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.

## Project Facts

- Language: TypeScript
- License: MIT
- Stars: 16.2k
- Forks: 3.8k
- Topics: api, bot, gateway, self-hosted, whatsapp, whatsapp-api, whatsapp-automation, whatsapp-bot
- Website: https://www.open-wa.org
- Archived: no

## 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

## Getting Started

With Docker Compose:

```bash
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](https://github.com/rmyndharis/OpenWA#readme) for the API-key setup, local development instructions and production deployment options.

## License in Plain Words

**MIT** (permissive).

- 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.

## Alternatives

- [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.

| Project | Language | License | Stars | Status |
|---|---|---|---|---|
| **OpenWA** | TypeScript | MIT | 16.2k | Active |
| [wa-js](https://osrepos.com/repo/wppconnect-team-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.