Введение
Для кого это руководство:
- Разработчикам, внедряющим WhatsApp-функции в бизнес-процессы;
- Low-code пользователям, автоматизирующим процессы через Make, Zapier, N8N, IFTTT или Pabbly;
Примеры использования:
- Автоматическое создание групп для новых клиентов или событий;
- Добавление/удаление участников на основе обновлений CRM;
- Отправка анонсов или напоминаний в групповые чаты;
- Подключение AI-ботов к групповым чатам WhatsApp;
Что потребуется:
- Номер телефона, зарегистрированный в обычном WhatsApp (не Business API от Meta);
- Базовые знания программирования или доступ к low-code платформе Make;
Возможности управления группами WhatsApp через API
- Отправка сообщений в группы: Рассылайте обновления, анонсы или напоминания напрямую в любую группу.
- Создание новых групп WhatsApp: Автоматически создавайте группы для новых клиентов или участников курсов.
- Добавление участников в группу: Приглашайте контакты в группу программно, без ручного подтверждения.
- Назначение администраторов: Делайте участников администраторами или снимайте права админа.
- Получение списка участников: Получайте полный список членов группы для аналитики или синхронизации с CRM.
- Отслеживание событий в группе: Реагируйте на сообщения, входы и выходы через webhook.
- Подключение ботов к группам: Позвольте ботам читать и отвечать на сообщения в группе по заданной логике.
Как подключить WhatsApp и начать работу с API
- 1) Перейдите в личный кабинет и откройте Default Channel — он уже создан.
- 2) На шаге 1 появится QR-код с инструкциями.
- 3) На телефоне откройте WhatsApp → Настройки → Связанные устройства → Привязать устройство, затем отсканируйте QR-код.
- 4) После подключения дайте каналу имя (например, "Мой чат-бот") для удобства.
- 5) Вы попадёте на страницу настроек канала — этот шаг можно пропустить и вернуться позже.




Как отправлять сообщения в группы WhatsApp через API (с примерами кода)
- 1) Сначала получите ID группы. Используйте endpoint
GET /groups
для получения списка ваших групп WhatsApp с их уникальными идентификаторами. Подробнее — Get groups. - 2) Получив ID группы, отправьте сообщение. Автоматически создавайте новые группы по событиям (например, новый клиент). Используйте endpoint
POST /messages/text
, указывая ID группы в параметреto
и текст сообщения вbody
. Подробнее — Send text message.
Получить ID можно через endpoint Get groups или просмотрев недавние чаты через chats endpoint.
- 1) При создании группы ID будет в ответе API. Пример ниже;
- 2) Endpoint Get a list of groups;
- 3) Endpoint Get a list of all chats;
curl --request POST \
--url https://gate.whapi.cloud/messages/text \
--header 'accept: application/json' \
--header 'authorization: Bearer YOUR_API_TOKEN' \
--header 'content-type: application/json' \
--data '
{
"to": "[email protected]",
"body": "Hello, this message was sent via API!"
}
'
// composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://gate.whapi.cloud/messages/text', [
'body' => '{"to":"[email protected]","body":"Hello, this message was sent via API!"}',
'headers' => [
'accept' => 'application/json',
'authorization' => 'Bearer YOUR_API_TOKEN',
'content-type' => 'application/json',
],
]);
echo $response->getBody();
# python -m pip install requests
import requests
url = "https://gate.whapi.cloud/messages/text"
payload = {
"to": "[email protected]",
"body": "Hello, this message was sent via API!"
}
headers = {
"accept": "application/json",
"content-type": "application/json",
"authorization": "Bearer YOUR_API_TOKEN"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
// npm install axios --save
import axios from 'axios';
const options = {
method: 'POST',
url: 'https://gate.whapi.cloud/messages/text',
headers: {
accept: 'application/json',
'content-type': 'application/json',
authorization: 'Bearer YOUR_API_TOKEN'
},
data: {to: '[email protected]', body: 'Hello, this message was sent via API!'}
};
axios
.request(options)
.then(res => console.log(res.data))
.catch(err => console.error(err));
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"to\":\"[email protected]\",\"body\":\"Hello, this message was sent via API!\"}");
Request request = new Request.Builder()
.url("https://gate.whapi.cloud/messages/text")
.post(body)
.addHeader("accept", "application/json")
.addHeader("content-type", "application/json")
.addHeader("authorization", "Bearer YOUR_API_TOKEN")
.build();
Response response = client.newCall(request).execute();
//dotnet add package RestSharp
using RestSharp;
var options = new RestClientOptions("https://gate.whapi.cloud/messages/text");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer YOUR_API_TOKEN");
request.AddJsonBody("{\"to\":\"[email protected]\",\"body\":\"Hello, this message was sent via API!\"}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
Как отправлять сообщения в группы WhatsApp с помощью no-code инструментов (Make, n8n)
GET https://gate.whapi.cloud/groups

POST https://gate.whapi.cloud/messages/text
to
: ID группы.body
: текст сообщения


Как создать группу WhatsApp через API
- 1) Используйте
POST
запрос кhttps://gate.whapi.cloud/groups
для создания новой группы. Укажите название группы в параметре subject и хотя бы один номер в participants — это обязательно для успешного создания. - 2) После успешного создания API вернёт ID группы. Он потребуется для отправки сообщений.
- 3) Для отправки сообщений используйте стандартный метод, указывая ID группы в
to
и текст вbody
.
participants
для гарантии.
curl --request POST \
--url https://gate.whapi.cloud/groups \
--header 'accept: application/json' \
--header 'authorization: Bearer Your_Token' \
--header 'content-type: application/json' \
--data '
{
"participants": [
"498935516106",
"4915155985667"
],
"subject": "SEO Common GmbH"
}
'
// composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://gate.whapi.cloud/groups', [
'body' => '{"participants":["498935516106","4915155985667"],"subject":"SEO Common GmbH"}',
'headers' => [
'accept' => 'application/json',
'authorization' => 'Bearer Your_Token',
'content-type' => 'application/json',
],
]);
echo $response->getBody();
# python -m pip install requests
import requests
url = "https://gate.whapi.cloud/groups"
payload = {
"participants": ["498935516106", "4915155985667"],
"subject": "SEO Common GmbH"
}
headers = {
"accept": "application/json",
"content-type": "application/json",
"authorization": "Bearer Your_Token"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
// npm install axios --save
import axios from 'axios';
const options = {
method: 'POST',
url: 'https://gate.whapi.cloud/groups',
headers: {
accept: 'application/json',
'content-type': 'application/json',
authorization: 'Bearer Your_Token'
},
data: {participants: ['498935516106', '4915155985667'], subject: 'SEO Common GmbH'}
};
axios
.request(options)
.then(res => console.log(res.data))
.catch(err => console.error(err));
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"participants\":[\"498935516106\",\"4915155985667\"],\"subject\":\"SEO Common GmbH\"}");
Request request = new Request.Builder()
.url("https://gate.whapi.cloud/groups")
.post(body)
.addHeader("accept", "application/json")
.addHeader("content-type", "application/json")
.addHeader("authorization", "Bearer Your_Token")
.build();
Response response = client.newCall(request).execute();
//dotnet add package RestSharp
using RestSharp;
var options = new RestClientOptions("https://gate.whapi.cloud/groups");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer Your_Token");
request.AddJsonBody("{\"participants\":[\"498935516106\",\"4915155985667\"],\"subject\":\"SEO Common GmbH\"}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
Как создать группу WhatsApp через no-code платформу
https://gate.whapi.cloud/groups
с параметрами subject
(название) и participants
(массив номеров).{
"participants": [
"498935516106",
"4915155985667"
],
"subject": "SEO Common GmbH"
}

Как добавить участников в группу WhatsApp
- 1) Получите ID группы, в которую хотите добавить участников. Это обязательный параметр. Как получить ID — выше.
- 2) Отправьте
POST
запрос наhttps://gate.whapi.cloud/groups/{GroupID}/participants
для добавления новых участников. В URL укажите ID группы, а в теле — массив номеров.
curl --request POST \
--url https://gate.whapi.cloud/groups/120367831625595066%40g.us/participants \
--header 'accept: application/json' \
--header 'authorization: Bearer Your_Token' \
--header 'content-type: application/json' \
--data '
{
"participants": [
"373983445541",
"373983445542",
"373983445543"
]
}
'
// composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('POST', 'https://gate.whapi.cloud/groups/120367831625595066%40g.us/participants', [
'body' => '{"participants":["373983445541","373983445542","373983445543"]}',
'headers' => [
'accept' => 'application/json',
'authorization' => 'Bearer Your_Token',
'content-type' => 'application/json',
],
]);
echo $response->getBody();
# python -m pip install requests
import requests
url = "https://gate.whapi.cloud/groups/120367831625595066%40g.us/participants"
payload = { "participants": ["373983445541", "373983445542", "373983445543"] }
headers = {
"accept": "application/json",
"content-type": "application/json",
"authorization": "Bearer Your_Token"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)
// npm install axios --save
import axios from 'axios';
const options = {
method: 'POST',
url: 'https://gate.whapi.cloud/groups/120367831625595066%40g.us/participants',
headers: {
accept: 'application/json',
'content-type': 'application/json',
authorization: 'Bearer Your_Token'
},
data: {participants: ['373983445541', '373983445542', '373983445543']}
};
axios
.request(options)
.then(res => console.log(res.data))
.catch(err => console.error(err));
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\"participants\":[\"373983445541\",\"373983445542\",\"373983445543\"]}");
Request request = new Request.Builder()
.url("https://gate.whapi.cloud/groups/120367831625595066%40g.us/participants")
.post(body)
.addHeader("accept", "application/json")
.addHeader("content-type", "application/json")
.addHeader("authorization", "Bearer Your_Token")
.build();
Response response = client.newCall(request).execute();
//dotnet add package RestSharp
using RestSharp;
var options = new RestClientOptions("https://gate.whapi.cloud/groups/120367831625595066%40g.us/participants");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer Your_Token");
request.AddJsonBody("{\"participants\":[\"373983445541\",\"373983445542\",\"373983445543\"]}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
Как добавить участников в группу WhatsApp с помощью no-code инструментов
https://gate.whapi.cloud/groups/[email protected]/participants
.@
на %40
.{
"participants": [
"373983445541",
"373983445542",
"373983445543"
]
}
Как получить список участников группы WhatsApp через API
- 1) Убедитесь, что вы участник нужной группы. Без этого получить список не получится.
- 2) Используйте API-метод Get Groups для получения всех групп вашего аккаунта. Если знаете ID, вызовите Get group напрямую.
- 3) В ответе будет массив групп с ID, названием и полем participants — список участников. Пример ответа:
{
"id": "[email protected]",
"name": "A group of researchers",
"participants": [
{ "id": "972558557032", "rank": "member" },
{ "id": "14409416972", "rank": "creator" },
{ "id": "905589461962", "rank": "member" }
]
}
curl --request GET \
--url 'https://gate.whapi.cloud/groups?count=100' \
--header 'accept: application/json' \
--header 'authorization: Bearer Your_Token'
// composer require guzzlehttp/guzzle
require_once('vendor/autoload.php');
$client = new \GuzzleHttp\Client();
$response = $client->request('GET', 'https://gate.whapi.cloud/groups?count=100', [
'headers' => [
'accept' => 'application/json',
'authorization' => 'Bearer Your_Token',
],
]);
echo $response->getBody();
# python -m pip install requests
import requests
url = "https://gate.whapi.cloud/groups?count=100"
headers = {
"accept": "application/json",
"authorization": "Bearer Your_Token"
}
response = requests.get(url, headers=headers)
print(response.text)
// npm install axios --save
import axios from 'axios';
const options = {
method: 'GET',
url: 'https://gate.whapi.cloud/groups?count=100',
headers: {accept: 'application/json', authorization: 'Bearer Your_Token'}
};
axios
.request(options)
.then(res => console.log(res.data))
.catch(err => console.error(err));
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url("https://gate.whapi.cloud/groups?count=100")
.get()
.addHeader("accept", "application/json")
.addHeader("authorization", "Bearer Your_Token")
.build();
Response response = client.newCall(request).execute();
//dotnet add package RestSharp
using RestSharp;
var options = new RestClientOptions("https://gate.whapi.cloud/groups?count=100");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("authorization", "Bearer Your_Token");
var response = await client.GetAsync(request);
Console.WriteLine("{0}", response.Content);
Как получить участников группы WhatsApp через no-code
GET
запрос к https://gate.whapi.cloud/groups
для получения всех групп, где вы участник, с деталями по каждой — включая участников.GET https://gate.whapi.cloud/groups/{GroupID}
для получения данных по конкретной группе.Как подключить бота к группе WhatsApp
- Создание бота WhatsApp на Node.js;
- Создание бота WhatsApp на Python;
- Создание бота WhatsApp на PHP;
- Создание бота WhatsApp на Java;
chat_id
(формат [email protected]
), а поле from
покажет номер отправителя внутри группы.Советы, ограничения и лучшие практики
- Не добавляйте пользователей в группы без их согласия. Соблюдайте приватность и избегайте нежелательных приглашений;
- Не рассылайте спам — это может привести к блокировке или бану аккаунта;
- Хотя строгих лимитов нет, имитируйте поведение человека: не создавайте десятки групп и не отправляйте много сообщений в секунду. Делайте паузы между действиями;
Promote to Group Admin
. Подробнее — здесь.Устранение неполадок
Бот не реагирует на входящие сообщения
- Убедитесь, что вы отправляете сообщения на номер, на котором запущен бот, с другого телефона. Бот не сможет реагировать на сообщения, отправленные с того же номера.
- Если бот не реагирует на сообщения с других номеров, проверьте работу вебхуков. Используйте сервисы для симуляции вебхуков, например, Webhook.site, чтобы удостовериться, по какому пути приходят callback запросы. После этого проверьте соответствует ли путь, указанному вами в конфигурации. Так же, убедитесь, что ваш сервер отвечает 200Ok.
Бот отправляет сообщения без остановки
Не удаётся добавить пользователя в группу?
- Вы должны быть администратором группы. Только админы могут добавлять новых участников.
- Пользователь мог ограничить приглашения в группы настройками приватности. В этом случае добавить его через API не получится.
- Группа достигла лимита в 1024 участника. Удалите неактивных или создайте новую группу.
- Антиспам-фильтры WhatsApp могут блокировать добавление — особенно если контакт не сохранён или не взаимодействовал с вами. Попробуйте синхронизировать контакты через Google Contacts API, но даже это не всегда гарантирует успех из-за внутренних фильтров WhatsApp.
Сообщение не доставлено?
- Проверьте ID группы — неверный или устаревший ID приведёт к ошибке доставки.
- Если сообщение отправлено, но не видно в группе, проверьте формат. Например, группы WhatsApp могут не отображать некоторые типы контента (webp, интерактивные кнопки).
Доступ запрещён?
- Ваш номер не распознан как администратор группы.
- API мог не синхронизировать ваш статус администратора или номер. В таком случае попробуйте повторно авторизовать канал для обновления прав.
Участники группы не отображаются?
GET /groups
или GET /group
запроса данные ставятся в очередь на синхронизацию.Что означает @lid в списке участников?
Деплой и использование серверов
Firebase
- Создайте проект в Firebase Console;
- Установите Firebase CLI, следуя инструкциям;
- Инициализируйте Firebase в директории вашего проекта с помощью команды firebase init;
- Разверните вашего бота, используя команду firebase deploy --only functions.
AWS (Amazon Web Services)
- Зарегистрируйтесь или войдите в AWS Management Console;
- Создайте новую функцию Lambda через консоль AWS, выбрав в качестве триггера API Gateway;
- Загрузите код вашего бота в Lambda функцию;
- Настройте API Gateway для взаимодействия вашего бота с внешним миром.
Heroku
- Создайте аккаунт на Heroku;
- Установите Heroku CLI и войдите в систему;
- Создайте новое приложение на Heroku через консоль или используя команду heroku create;
- Свяжите ваш Git репозиторий с Heroku и выполните деплой с помощью команд git push heroku master;
- Установите URL вебхука, предоставленный Heroku.