📈 GH Trending Explorer 🎲 Surprise me

← all repos

rmyndharis / OpenWA

git clone https://github.com/rmyndharis/OpenWA.git v0.25.0 · 6d ago 🔥 on GitHub Trending today

Self-hosted WhatsApp API gateway that exposes WhatsApp sessions, messaging, and webhooks over a REST API with a web dashboard.

Why you might care

Gives developers a free, MIT-licensed way to run WhatsApp automation on their own infrastructure without vendor paywalls. Supports multiple concurrent sessions, SQLite or PostgreSQL, Local or S3 media storage, optional Redis, and Docker deployment.

Categories

Alternatives

WPPConnectEvolution APIBaileysTwilio API for WhatsAppn8n
+49
stars, 24h · #295
+~343
stars, 7 days · #369
+~1.5k
stars, 30 days · #364
16k
★ total · +2% this week
3.7k
forks · 25 open issues

Star history (as recorded here)

2026-10-20 · 15,975 ★ 2026-10-21 · 16,024 ★
LanguageTypeScript
LicenseMIT
Created2026-02-02 (8mo ago)
Last pushtoday
Watchers88
OwnerUser

Seen on GitHub Trending

  • 2026-10-21 — #7 daily in typescript · +313 ★
  • 2026-10-20 — #7 daily in typescript · +252 ★

GitHub topics

Links

README excerpt
OpenWA 
 Open Source WhatsApp API Gateway 
 Features •
 Quick Start •
 Docs •
 API •
 Contributing 
---
## ✨ Why OpenWA?
**OpenWA** is a free, open-source WhatsApp API Gateway designed for developers who need full control over their messaging infrastructure—without vendor lock-in or hidden paywalls.
Built on a **pluggable architecture**, OpenWA lets you select database engines (SQLite/PostgreSQL), media storage backends (Local/S3), and cache layers (disabled/Redis) through configuration rather than application-code changes. The storage backend is the live store for status media and, when chat-media archiving is enabled, archived chat media; other message media is returned inline to API and webhook consumers. Of the media, `scripts/backup.sh` archives only the local media directory, so an S3 bucket needs a backup of its own.
| | |
| ----------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- |
| 🔓 **100% Open Source** | No licensing fees, no feature locks, full source code access |
| 🏗️ **Pluggable Architecture** | Swap adapters for database, storage, and cache via config |
| 🖥️ **Full Dashboard** | Modern React UI for session, webhook, and API key management |
| 🔹 **Multi-Session Ready** | Run multiple WhatsApp sessions concurrently on one instance |
| 🐳 **Docker Native** | Production-ready with zero configuration |
| 🧩 **Official Plugins** | Chatwoot, Typebot & more as sandboxed plugins on the Integration Fabric — OpenWA-plugins |
| 🔗 **n8n Integration** | Community nodes for workflow automation |
| 🧩 **Community Adapters** | Third-party integrations (e.g. ioBroker) — see docs |
| 🔐 **Session-scoped keys** | Operator and viewer (reader) tokens can be limited to chosen sessions — or all sessions if none are selected |
| 🔒 **Chat-scoped keys** | Those same tokens can also be limited to chosen chats — a few groups and contacts — so an agent on a shared account sees only its own |
### Session-scoped operator & viewer tokens
When you create or edit an **operator** or **viewer** API key in the dashboard, you can tick the WhatsApp sessions that key may use.
- **No sessions selected** — the key can access every session, including ones created later.
- **One or more sessions selected** — the key can only list, read, and (for operator) manage those sessions. A request naming any other session returns `403` ("API key not authorized for this session"); session-filtered lists (sessions, audit, webhook delivery failures) return that key's rows rather than an error; and the key-management routes and the queue dashboard, which name no session at all, return `403`.
Admin keys stay unscoped in the dashboard so they can keep managing other API keys. The HTTP API still accepts `allowedSessions` on any role if you need that from a client.
### Chat-scoped operator & viewer tokens
A session-scoped key still reaches every chat on the sessions it may use. A key c

Blurb generated by claude-haiku-5-5 today. Star deltas marked ~ are extrapolated from partial history.