
WAHA: HTTP API для управления WhatsApp через Docker всего за 5 минут
Помните тот момент, когда вы впервые попытались интегрировать WhatsApp в свой проект? Официальный Business API с его бесконечными согласованиями, лимитами, кучей бюрократии и ценами, которые заставляют задуматься о смене профессии. А потом были эти сомнительные сервисы с закрытым кодом, где ты не знаешь, что происходит с твоими данными, и каждый месяц молишься, чтобы они не закрылись внезапно.
Хорошая новость: есть проект, который решает эту головную боль элегантно и просто. Называется WAHA (WhatsApp HTTP API), и да, он действительно запускается за 5 минут. Я проверил.
Когда простота — это не компромисс
WAHA — это open-source решение, которое превращает WhatsApp в обычный REST API. Никакой магии, никаких костылей. Просто Docker-контейнер, который запускается одной командой, и у вас уже есть рабочий HTTP API с Swagger-документацией.
Самое интересное — архитектура. Вы можете запустить несколько сессий (читай: WhatsApp аккаунтов) в одном контейнере. Это для Plus версии, но даже бесплатная версия дает вам всё необходимое для старта. Представьте: один сервер, десяток клиентов, каждый со своим WhatsApp. Раньше для такого нужно было городить ферму виртуальных машин.
Первый запуск: действительно быстро
Давайте без воды. У вас установлен Docker? Отлично, тогда:
docker pull devlikeapro/waha
docker run -it --rm -p 3000:3000/tcp --name waha devlikeapro/waha
Открываете http://localhost:3000
— и перед вами полноценная Swagger-документация.
Дальше начинается то, что обычно занимает часы настроек, но здесь укладывается в минуты. Создаете сессию через POST /api/sessions
с простым JSON:
{
"name": "default"
}
Получаете QR-код через GET /api/screenshot
, сканируете его своим телефоном — и всё, вы в игре. WhatsApp подключен, готов принимать команды.
Отправка сообщения? Элементарно:
export PHONE=12132132130
curl -d '{"chatId": "${PHONE}@c.us", "text": "Hello from API"}' \
-H "Content-Type: application/json" \
-X POST http://localhost:3000/api/sendText
Что под капотом?
Проект написан на Node.js (требуется версия 22+), использует Protocol Buffers для коммуникации. Да, это означает, что он работает на уровне протокола WhatsApp, а не эмулирует браузер костыльными способами.
Это важный момент. Многие альтернативы запускают headless Chrome, который жрет память как не в себя и падает от любого чиха. WAHA более элегантен — он общается с WhatsApp напрямую, что делает его стабильнее и быстрее.
Есть две версии: бесплатная базовая и Plus. Plus дает вам мультисессии, дополнительные фичи и поддержку. Но даже бесплатная версия вполне годится для личных проектов или MVP.
Реальные сценарии использования
Уведомления для ваших пользователей? Легко. Чат-бот для техподдержки? Пожалуйста. Автоматизация рассылок? Без проблем.
Один мой знакомый запустил сервис мониторинга для небольших e-commerce магазинов. Когда кто-то оставляет заказ на сайте, владелец получает сообщение в WhatsApp с деталями. Просто, но клиенты в восторге. А реализация заняла вечер пятницы.
Другой кейс — CRM-система для локальной службы доставки. Курьеры получают заказы через WhatsApp, клиенты получают уведомления о статусе. Вся логика на Python, интеграция через WAHA. Работает как часы уже полгода.
О чем стоит помнить
Конечно, не бывает серебряных пуль. WhatsApp может банить аккаунты за подозрительную активность. Если вы планируете спамить тысячи сообщений в минуту — это плохая идея, даже с самым лучшим API.
Проект требует внимания к безопасности. Вы же не хотите, чтобы кто-то получил доступ к вашему API и начал рассылать что попало от вашего имени? Обязательно прячьте его за authentication, используйте HTTPS, не выставляйте наружу без необходимости.
И да, это self-hosted решение. Значит, вам нужен сервер. Впрочем, даже скромный VPS справится.
Почему это важно
Мы живем в мире, где мессенджеры стали основным каналом коммуникации. WhatsApp — это 2+ миллиарда пользователей. Игнорировать эту аудиторию — странно. А официальные решения часто либо слишком дороги, либо слишком ограничены.
WAHA дает вам контроль. Вы знаете, что происходит с данными. Вы не зависите от стороннего сервиса, который может завтра изменить цены или условия. Вы можете кастомизировать что угодно — исходники открыты.
Это тот редкий случай, когда open-source решение не уступает коммерческим аналогам, а во многом их превосходит. По крайней мере, для small-to-medium проектов.
Документация проекта отличная, коммьюнити отзывчивое, примеры кода понятные. Потратите пять минут на запуск, и, возможно, найдете решение, которое искали месяцами.