Latest release What's new

Open Source
WhatsApp API Gateway

The free, self-hosted WhatsApp HTTP API for developers who want to own their stack — full control, a clean architecture, and zero vendor lock-in. Your data never leaves your server.

100% Free
Open Source
Self-Hosted
Production Ready
01 — Capabilities

Everything you need to ship.

A complete WhatsApp integration platform — 100% free and open source, production-ready out of the box.

Core

  • Full REST API
  • Multi-Session Support
  • Real-time Webhooks (HMAC)
  • Web Dashboard (9 Locales)
  • Scoped API Key Auth
  • Swagger Docs

Messaging

  • Text Messages
  • Images & Videos
  • Documents & Audio
  • Message Reactions
  • Bulk Messaging
  • Delivery Status

Advanced

  • Groups API
  • Channels / Newsletter
  • Labels Management
  • Proxy Per Session
  • CIDR IP Whitelisting
  • Rate Limiting & Audit

Infrastructure

  • SQLite / PostgreSQL
  • Redis Cache + Queues
  • S3 / MinIO Storage
  • Multi-arch Docker
  • Non-root Container
  • Health & Migrations
02 — Architecture

Built on a pluggable core.

Swap your database, storage, cache, and even the WhatsApp engine — all from config. Zero code changes.

Pluggable Architecture

Database (SQLite / PostgreSQL), storage (Local / S3 / MinIO), and cache (Memory / Redis) are swappable adapters — configured, not coded. Move from local dev to production scale without touching application logic.

SQLitePostgreSQLLocalS3MinIORedis

Dual WhatsApp Engine

Choose your engine per deployment via ENGINE_TYPE. Ship with the battle-tested whatsapp-web.js (Puppeteer) by default, or switch to the lightweight baileys WebSocket engine when you'd rather skip the browser entirely.

whatsapp-web.jsbaileys
03 — Comparison

Why developers choose OpenWA.

Feature OpenWA W. Core W. Plus W. Cloud
Price Free Forever Free $50+/mo $30+/mo
Open Source
Multi-Session Limited
Web Dashboard
PostgreSQL N/A
Webhook UI
Source Code
Self-Hosted

Comparison reflects publicly available feature listings as of 2026. Competitor names are abbreviated. Features and pricing may change — verify on their official sites before deciding.

04 — Quick Start

Live in 5 minutes.

One command with Docker, or a quick local setup for development — no complicated config, no surprises.

Terminal
# Clone and start with Docker (single-container quick start)
git clone https://github.com/rmyndharis/OpenWA.git
cd OpenWA
docker compose -f docker-compose.dev.yml up -d

# Dashboard & API are bundled on one port:
# http://localhost:2785
Terminal
# Clone and run locally
git clone https://github.com/rmyndharis/OpenWA.git
cd OpenWA

# Install dependencies (includes dashboard)
npm install

# Start API + Dashboard with hot reload
npm run dev

# Dashboard: http://localhost:2886
Dashboard:2785
REST API:2785/api
Swagger:2785/api/docs

In npm run dev (local) the dashboard runs on its own Vite server at :2886 with hot reload. In Docker it's bundled into the API image and served on :2785. For production, deploy using docker compose up -d, with optional scaling profiles: --profile postgres, --profile redis, --profile minio, or --profile full.

05 — Tech Stack

Built on a modern, trusted stack.

Proven, production-grade tools — chosen for reliability, not novelty.

Node.jsNode.js 22
NestJSNestJS 11
TypeScriptTypeScript 5
ReactReact 19
PostgreSQLPostgreSQL
RedisRedis + BullMQ
DockerDocker Multi-arch
Socket.IOSocket.IO

TypeORM for data access · Vite + TanStack Query + i18next power the dashboard · Helmet & NestJS Throttler harden the API · Pluggable WA engine: whatsapp-web.js (default) or baileys via ENGINE_TYPE.

07 — Plugins

Make it yours. Build a plugin.

OpenWA is yours to shape. Got an idea? Spin up a plugin — it comes alive on real WhatsApp events through typed lifecycle hooks: send replies, query chats and contacts, reach your own services, all behind a safe, permission-gated API. No fork, no core changes. Build it, share it with the community, and make the gateway do exactly what you imagined.

  • React to events
  • Send & reply
  • Query & call out
08 — Changelog

Shipping, in the open.

Every release, pulled live from the source CHANGELOG.md — no copy-paste, always current.

Loading the latest releases…
View full changelog on GitHub
09 — FAQ

Frequently Asked Questions

Got questions? We've got answers.

Yes. OpenWA is 100% free and open source under the MIT license — no licensing fees, no feature locks, and full source code access. You can use it in personal and commercial projects without any restrictions.

No. OpenWA is an independent, community-driven open-source project and has no affiliation, association, authorization, endorsement, or official connection with Meta Platforms, Inc., WhatsApp LLC, or any of their subsidiaries or affiliates.

This software is developed independently to help developers integrate WhatsApp capabilities into their own applications using self-hosted infrastructure. All registered trademarks and logos belong to their respective owners.

Because OpenWA is self-hosted and acts as a gateway on your own infrastructure, account safety is entirely determined by your messaging behavior. WhatsApp's automated spam detection filters look for bot-like patterns on their network, and any automated third-party integration carries some risk if abused.

To minimize these risks, OpenWA is specifically engineered with built-in protection mechanisms:

  • Simulated Human Behavior: Configurable simulated typing indicators and randomized message delivery intervals.
  • Session Proxying: Ability to route each session through a dedicated proxy IP to match account locations.
  • Strict Rate-Limiting: Hardened limits to prevent bursting message delivery.
  • Official Engine Parity: Stays aligned with standard web browser and network protocols to avoid protocol fingerprinting flags.

To keep your account safe, we strongly recommend warming up new numbers, avoiding cold outreach/spam, and using OpenWA primarily for transactional notifications, customer service, or opt-in communication.

Yes. OpenWA is designed for self-hosting with a single Docker command. The API and the dashboard are bundled together on port 2785, making it easy to deploy to any cloud provider, VPS, or local server.

The default engine is whatsapp-web.js (a Puppeteer-based headless browser). You can also switch to the lightweight baileys engine (a WebSocket-based implementation) via the ENGINE_TYPE environment variable to save resources and run browserless.

Yes. OpenWA's pluggable architecture lets you swap the database (SQLite / PostgreSQL), media storage (Local / S3 / MinIO), and cache layer (Memory / Redis) purely from configuration without changing any code.

10 — Community

Built in the open.

OpenWA is open from the first commit to the latest release. MIT licensed, free forever, and open to contributions of every kind — code, documentation, or a well-written bug report.

MITLicense
100%Free
OpenSource

How to contribute

  1. 01Fork the repository
  2. 02Create your feature branch
  3. 03Commit your changes
  4. 04Push to the branch
  5. 05Open a Pull Request

The people behind OpenWA

Every developer who has shipped code, docs, or fixes — pulled live from GitHub. Thank you.

Loading contributors…