OpenWA: бесплатный self-hosted шлюз WhatsApp API

«Разработан разработчиками для разработчиков» — именно так позиционирует себя OpenWA, предлагая полный контроль над инфраструктурой обмена сообщениями без скрытых платежей.

Что такое OpenWA и для кого он?

OpenWA — это бесплатный open-source шлюз WhatsApp API, разработанный для разработчиков, которым необходим полный контроль над инфраструктурой обмена сообщениями без привязки к вендору или скрытых платежей.

Проект представляет собой open-source платформу, предоставляющую HTTP API для интеграции с WhatsApp, и создан как бесплатная альтернатива платным решениям, таким как WAHA Plus.

Целевая аудитория:

  • Backend-разработчики и стартапы, которым нужна WhatsApp-автоматизация
  • Малый бизнес с техническими ресурсами
  • DevOps-команды, строящие собственную инфраструктуру
  • Участники open-source сообщества
ℹ Лицензия и стоимость
OpenWA распространяется под лицензией MIT, является форк-дружественным и на 100% бесплатным — без каких-либо платных функций.

Архитектура и технологический стек

OpenWA построен на подключаемой архитектуре, позволяющей переключать движки баз данных (SQLite/PostgreSQL), хранилища (Local/S3) и кэш-слои (Memory/Redis) без изменения единой строки кода приложения.

Проект написан на TypeScript с использованием NestJS и работает поверх whatsapp-web.js (Puppeteer), что обеспечивает надёжный fingerprint браузера.


graph TD
    A[Ваше приложение / n8n] -->|REST API + API Key| B[OpenWA Gateway]
    B --> C{Движок whatsapp-web.js}
    C --> D[WhatsApp Web]
    B --> E[SQLite / PostgreSQL]
    B --> F[Redis Cache]
    B --> G[S3 / MinIO Storage]
    B --> H[React Dashboard]
    B --> I[Webhooks / Socket.IO]

Ключевые возможности

📨 Обмен сообщениями

OpenWA поддерживает отправку текстовых сообщений, изображений, видео, документов и аудио, реакции на сообщения, массовую рассылку и отслеживание статуса доставки.

Пример отправки текстового сообщения через REST API:

curl -X POST http://localhost:2785/api/sessions/my-bot/messages/send-text \
  -H "Content-Type: application/json" \
  -H "X-API-Key: YOUR_API_KEY" \
  -d '{
    "chatId": "79001234567@c.us",
    "text": "Привет от OpenWA! 🚀"
  }'

🔄 Мультисессионность

OpenWA поддерживает полный REST API, мультисессионный режим, real-time вебхуки, веб-дашборд, аутентификацию по API-ключу и Swagger-документацию.

Каждая сессия авторизуется через QR-код и работает независимо:

# Запуск сессии
curl -X POST http://localhost:2785/api/sessions/{sessionId}/start \
  -H "X-API-Key: YOUR_API_KEY"

# Получение QR-кода для сканирования
curl http://localhost:2785/api/sessions/{sessionId}/qr \
  -H "X-API-Key: YOUR_API_KEY"

🪝 Вебхуки и Socket.IO

Для настройки вебхука достаточно передать URL назначения, список событий (например, message.received, session.status) и HMAC-секрет для верификации подписи.

Каждый вебхук снабжён полями deliveryId и idempotencyKey — это предотвращает дублирование обработки на стороне клиента.

Дополнительно поддерживается подписка на события через Socket.IO:

import { io } from 'socket.io-client';
const socket = io('http://localhost:2785/events', {
  extraHeaders: { 'X-API-Key': 'your-api-key' },
  transports: ['websocket'],
});
socket.on('connect', () => {
  socket.emit('message', {
    type: 'subscribe',
    sessionId: 'sess_abc123',
    events: ['message.received', 'session.status'],
  });
});

🔧 Инфраструктурные возможности

Из коробки доступны: управление метками чатов, поддержка прокси на уровне сессии, rate limiting с настраиваемыми лимитами, CIDR-вайтлистинг для IP-контроля доступа и аудит-лог всех API-операций.

Для хранения данных поддерживаются SQLite (без конфигурации), PostgreSQL (для продакшена), Redis (опциональное кэширование), S3/MinIO (масштабируемое хранилище медиа), а для деплоя — Docker с готовыми health-check-пробами для Kubernetes.

🔗 Интеграция с n8n

Существует официальный пакет community-нод для n8n (@rmyndharis/n8n-nodes-openwa), позволяющий запускать n8n-воркфлоу при поступлении WhatsApp-событий — входящих сообщений или изменений статуса сессии.

📝 Примеры автоматизации через n8n

Например, можно захватывать входящие сообщения и сохранять их в Google Sheets, используя цепочку: OpenWA Trigger → Google Sheets Append → OpenWA Send Text.

Также реализуема отправка WhatsApp-уведомлений при поступлении нового заказа: Webhook (New Order) → OpenWA Send Text с подтверждением заказа.

📦 Пакетная отправка (Bulk Messaging)

API поддерживает пакетную отправку сообщений с отслеживанием прогресса: поля total, sent, failed, pending, а также возможность отмены батча через POST /batch/:batchId/cancel.

Ограничения на размер медиафайлов:

  • Изображения: до 16 МБ
  • Видео: до 64 МБ
  • Документы: до 100 МБ
  • Стикеры: до 500 КБ

Установка и быстрый старт

Для быстрого старта достаточно склонировать репозиторий и запустить Docker Compose — дашборд будет доступен на порту 2886, API на 2785, Swagger-документация по адресу /api/docs.

# Клонирование и запуск
git clone https://github.com/rmyndharis/OpenWA.git
cd OpenWA
docker compose -f docker-compose.dev.yml up -d

# Доступ:
# Dashboard: http://localhost:2886
# API:       http://localhost:2785/api
# Swagger:   http://localhost:2785/api/docs

Альтернативно — локальный запуск через npm:

npm install
npm run dev
💡 Конфигурация генерируется автоматически
При первом запуске конфигурационный файл создаётся автоматически. Ключ API по умолчанию сохраняется в папке data/ — обязательно смените его перед выходом в продакшен.

Тарифы и цены

OpenWA полностью бесплатен: лицензия MIT, отсутствие платных функций, данные хранятся на вашем сервере. Единственные возможные расходы — это аренда сервера для self-hosting.

КомпонентСтоимость
Лицензия OpenWAБесплатно (MIT)
Все функцииВключены без ограничений
Хостинг (VPS)От ~$5/мес (зависит от провайдера)
ПоддержкаCommunity (GitHub Issues)

Плюсы и минусы

✅ Плюсы❌ Минусы
100% бесплатно, MIT-лицензияТребует технических знаний для настройки
Полный контроль над даннымиНе является официальным WhatsApp BSP
Все функции без paywallРиск бана аккаунта при нарушении ToS WhatsApp
Docker-деплой в одну командуНет коммерческой поддержки
Swagger-документацияМолодой проект (v0.1.x)
Поддержка PostgreSQL, Redis, S3Зависимость от Puppeteer (тяжёлый процесс)
Интеграция с n8nНеобходимо самостоятельно обновлять
WebSocket + Webhook событияСообщество пока небольшое

Сравнение с альтернативами

WAHA (WhatsApp HTTP API) — популярная open-source альтернатива с тремя движками (WEBJS, NOWEB, GOWS) и возможностью развёртывания за 5 минут через Docker.

Evolution API — open-source решение для интеграции с WhatsApp без зависимости от Meta.

ПараметрOpenWAWAHAEvolution API
ЛицензияMIT (всё бесплатно)Core бесплатно, Plus — платноOpen Source
Мультисессии
PostgreSQL⚠️ (Plus)
Redis кэш⚠️ (Plus)
S3/MinIO хранилище⚠️ (Plus)
React Dashboard
n8n-ноды✅ (официальные)⚠️ (сторонние)
Swagger-документация
Возраст проектаНовый (2025)ЗрелыйЗрелый
СообществоРастущееКрупноеКрупное
⚠ Важно: официальный vs неофициальный API
Для корпоративного продакшена с гарантиями стабильности, официальной поддержкой и соответствием нормативным требованиям рекомендуется официальный WhatsApp Cloud API от Meta. OpenWA, WAHA и Evolution API — неофициальные решения, и использование их сопряжено с риском блокировки аккаунта.

Структура проекта

openwa/
├── src/
│   ├── main.ts              # Точка входа
│   ├── engine/              # Абстракция WhatsApp-движка
│   └── modules/
│       ├── session/         # Управление сессиями
│       ├── message/         # Обработка сообщений
│       ├── webhook/         # Управление вебхуками
│       ├── group/           # API групп
│       ├── contact/         # API контактов
│       └── auth/            # API-ключи
├── dashboard/               # React веб-дашборд
├── docs/                    # Документация
├── docker-compose.yml
└── Dockerfile

Вердикт

OpenWA — комплексный API, превосходящий аналоги в разработке чат-ботов и автоматизации рабочих процессов, с обширной документацией и поддержкой интеграций со сторонними инструментами.

Проект привлекателен для:

  • Разработчиков, которым нужна полная свобода без vendor lock-in
  • Стартапов, ищущих бесплатный production-ready WhatsApp-шлюз
  • DevOps-команд, строящих собственный мессенджинг-стек
  • n8n-пользователей, желающих автоматизировать WhatsApp-сценарии
💡 Кому не подойдёт
OpenWA не подойдёт компаниям с требованием официального статуса BSP, SLA и гарантиями от Meta. В этом случае рассмотрите официальный WhatsApp Cloud API или сертифицированных партнёров.

Рейтинг: 7.5 / 10

КритерийОценка
Функциональность9/10
Простота установки8/10
Документация8/10
Зрелость проекта5/10
Сообщество6/10
Стоимость владения10/10

OpenWA — молодой, но уже зрелый по функциональности проект. Если вы ищете бесплатный self-hosted WhatsApp API с богатым набором возможностей «из коробки» и готовы взять на себя ответственность за инфраструктуру — это один из лучших вариантов на рынке open-source решений прямо сейчас.