О как! Эмодзи счастливого человека Полнофункциональная песочница для разработчиков — навсегда бесплатно! Регистрация
Возможности WhatsApp API

Всё, что вы можете автоматизировать в WhatsApp

Единый REST API для любых сценариев автоматизации WhatsApp — JSON-эндпоинты, события в реальном времени и подробная документация.

Перейти к разделу:

3 300+ клиентов 5 500+ активных каналов

Документация API

Whapi REST API: JSON requests, webhooks, and developer docs
Декоративный пузырь
Без миграции номера — используйте любой существующий аккаунт WhatsApp.

Начните работу за 3 простых шага

Icon

Привяжите номер по QR-коду

Подключите любой личный или бизнес-аккаунт WhatsApp так же просто, как WhatsApp Web. Начните в бесплатной песочнице для настройки и тестирования.

Icon

Отправьте первый API-запрос

Используйте ваш токен в песочнице, curl или Postman. Единый REST API для отправки сообщений, управления группами, каналами и многого другого.

Icon

Подключите вебхуки для получения событий

Получайте сообщения и события WhatsApp в режиме реального времени — подписывайтесь только на те события, которые нужны вашему приложению.

WhatsApp API Grouping Messages and Management

Автоматизация групп и сообществ

Автоматизируйте группы WhatsApp прямо из вашей системы: отправляйте сообщения, читайте групповые чаты, добавляйте или удаляйте участников и управляйте администраторами без открытия приложения. Экспортируйте номера телефонов участников для синхронизации с CRM и масштабируйте онбординг пользователей. Если вам станет тесно в рамках одной группы, управляйте Сообществами со связанными подгруппами через один и тот же REST API. Руководство по Groups API →

Публикуйте текстовые, медиа- или интерактивные сообщения в группах и читайте входящие чаты, включая группы объявлений.

Добавляйте или удаляйте участников, назначайте администраторов, создавайте ссылки-приглашения и экспортируйте номера участников.

Управляйте сообществами со связанными подгруппами. Отправляйте объявления, модерируйте подгруппы, планируйте события и организуйте участников программно.

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

Управление WhatsApp Каналами через API

Создавайте и управляйте каналами WhatsApp прямо из вашей системы: публикуйте посты, назначайте администраторов и читайте реакции без использования приложения. Настройте кросс-постинг новостей, обновлений и спецпредложений с вашего сайта, из Telegram или CRM. Публикации в каналах не тарифицируются. Обзор Channel API →

Публикуйте тексты, фото, видео, опросы, викторины и вопросы по расписанию или автоматически из внешних источников.

Открывайте новые каналы и назначайте администраторов через API — без необходимости вручную настраивать каждый канал в приложении.

Получайте данные о постах и реакциях для синхронизации с вашим сайтом или панелью мониторинга.
WhatsApp Channel API
WhatsApp API messaging, catalog, and media

Сообщения и электронная коммерция

Взаимодействуйте с клиентами без ограничений с помощью личных сообщений и встроенных инструментов для e-commerce. Отправляйте медиафайлы, интерактивные кнопки и каталоги товаров прямо в чат — без платы за каждое сообщение и без предварительного согласования шаблонов. Создавайте умных чат-ботов, синхронизируйте заказы с CRM и управляйте всей воронкой продаж через один API.

Показывайте товары и категории прямо в диалоге, синхронизируйте корзины и мгновенно реагируйте на заказы, оформленные клиентами в WhatsApp.

Отправляйте текст, документы, аудиосообщения, геопозицию, карточки контактов, стикеры, кнопки и ссылки с превью — с возможностью добавления верхних и нижних колонтитулов (headers/footers).

Используйте реакции-эмодзи, цитирование при ответах, отчеты о прочтении, а также отображение статусов «печатает» или «записывает аудио».

Импортируйте сообщения, чаты, контакты и сведения о номерах в вашу CRM. Экспортируйте каталоги, товары и заказы.
Попробовать бесплатно

Статусы и истории (Stories)

Вовлекайте аудиторию с помощью автоматических обновлений статусов WhatsApp (аналог Stories). Публикуйте изображения, видео или тексты на цветном фоне программно. Откройте для себя мощный маркетинговый канал, который полностью отсутствует в большинстве официальных WhatsApp API.

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

Отслеживайте количество просмотров ваших статусов и программно получайте истории ваших контактов для аналитики и сценариев вовлечения.
Попробовать бесплатно
WhatsApp Status and Stories API

Что еще можно автоматизировать

Встроенные полезные инструменты в простом и понятном API — начните быстро решать любые задачи. Автоматизируйте звонки, опросы, проверку номеров и ярлыки чатов — всё включено в подписку, без скрытых платежей.

События звонков

Запускайте групповые звонки, отклоняйте входящие вызовы и получайте события звонков через вебхуки: пропущенные, отвеченные, идет звонок или завершен.

Опросы

Создавайте опросы в чатах и группах и мгновенно реагируйте, когда пользователи голосуют.

Проверка номеров

Проверяйте наличие аккаунта WhatsApp у номера телефона перед отправкой сообщений.

Бизнес-ярлыки

Размечайте чаты ярлыками через API — это удобно для ведения сделок по этапам CRM и управления очередью поддержки.

WhatsApp webhooks and real-time events

Продвинутые возможности вебхуков

Получайте события WhatsApp на свой server в реальном времени: новые сообщения, изменения в группах, публикации в каналах и заказы. Подключайте несколько URL-адресов для распределения нагрузки между сервисами и подписывайтесь только на нужные события. Если ваш server будет недоступен, мы автоматически повторим доставку. Документация по вебхукам →

Выбирайте только те типы событий, которые необходимы вашему приложению.

  • Сообщения и статусы: новые, измененные или удаленные сообщения, а также статус их доставки.
  • Чаты и пользователи: новые чаты и обновления профилей пользователей.
  • Группы и контакты: создание новых групп, вступление участников и изменения в контактах.
  • Каналы и сообщества: новые публикации, реакции и обновления статуса участников.
  • Заказы и товары: новые заказы, брошенные корзины и изменения в каталоге товаров.

Настраивайте метод доставки, количество попыток и параметры безопасности, а не только конечный адрес.

  • HTTP-методы: POST, PUT, PATCH или DELETE для каждого типа событий.
  • Повторные попытки: автоматическая повторная отправка с экспоненциальной задержкой, если ваш endpoint недоступен.
  • Заголовок авторизации: добавьте секретный токен, чтобы только ваш server мог принимать события.
  • Несколько URL: направляйте разные типы событий на разные сервисы или обработчики.

Безопасность и здоровье номеров

Защитите ваши номера с помощью проактивных инструментов безопасности и выделенной инфраструктуры. Алгоритмы антиспама WhatsApp работают агрессивно — временные и вечные блокировки случаются часто и зависят от характера использования номера: массовых рассылок, холодного охвата и реакции получателей. Мы не обещаем полное отсутствие рисков — мы даем инструменты для безопасного масштабирования: изолированные региональные прокси, встроенный модуль прогрева номеров и индикатор безопасности активности в реальном времени.

Каждый канал получает выделенный региональный прокси и уникальный порт подключения. Если у одного аккаунта возникнут проблемы, остальные останутся в безопасности.

Модуль прогрева имитирует естественное общение между номерами в фоновом режиме, формируя историю активности номера перед началом рассылок. Включено в стоимость API — узнать больше о прогреве.

Ежедневная оценка активности вашего номера на основе объема отправлений и недавних диалогов. Сверяйтесь с ней перед масштабированием рассылок или делайте паузу, если показатель риска высок.
Попробовать бесплатно
WhatsApp number safety and channel isolation
WhatsApp API integrations and connectors

Интеграции и коннекторы

Единый API-токен для REST-запросов, модулей Make/n8n и инструментов для ИИ-агентов — подключите Whapi к любому стеку технологий.

Документация, коллекция Postman и готовые примеры кода. Один токен, JSON на входе и выходе. Документация API →

Нативные модули для Make.com и n8n. Интеграции с Zapier, IFTTT и Pabbly Connect работают через стандартные HTTP-запросы и вебхуки. Также доступны готовые решения для Google Таблиц и DialogFlow.

Предоставьте Cursor, Claude Desktop или вашим собственным ИИ-агентам инструменты для работы с WhatsApp через WhatsApp MCP — отправляйте сообщения, запрашивайте списки чатов, настраивайте вебхуки и находите Chat ID. Или загрузите готовый AI Agent Skill, чтобы агент сразу правильно взаимодействовал с API.

Интегрируйте API на любом языке программирования — это просто!

                                            
curl --request POST \
     --url 'https://gate.whapi.cloud/messages/text' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}' \
     --header 'content-type: application/json' \
     --data '
{
  "to": "15056482143",
  "body": "Hello, world!"
}
'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/text",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'to' => '15056482143',
    'body' => 'Hello, world!'
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/messages/text"

payload = {
    "to": "15056482143",
    "body": "Hello, world!"
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/messages/text';
const payload = { to: '15056482143', body: 'Hello, world!' };

const response = await fetch(url, {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
    'content-type': 'application/json',
  },
  body: JSON.stringify(payload),
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create("{"to":"15056482143","body":"Hello, world!"}", mediaType);
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/text")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
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_token}");
request.AddJsonBody("{"to":"15056482143","body":"Hello, world!"}", false);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
# First get chat_id via GET /chats, GET /groups, or GET /newsletters
curl --request POST \
     --url 'https://gate.whapi.cloud/messages/text' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}' \
     --header 'content-type: application/json' \
     --data '
{
  "to": "[email protected]",
  "body": "Hello, group!"
}
'
                                            
                                        
                                            
// First get chat_id via GET /chats, GET /groups, or GET /newsletters
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/text",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'to' => '[email protected]',
    'body' => 'Hello, group!'
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
# First get chat_id via GET /chats, GET /groups, or GET /newsletters
import requests

url = "https://gate.whapi.cloud/messages/text"

payload = {
    "to": "[email protected]",
    "body": "Hello, group!"
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
                                            
                                        
                                            
// First get chat_id via GET /chats, GET /groups, or GET /newsletters
const url = 'https://gate.whapi.cloud/messages/text';
const payload = { to: '[email protected]', body: 'Hello, group!' };

const response = await fetch(url, {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
    'content-type': 'application/json',
  },
  body: JSON.stringify(payload),
});

console.log(await response.text());
                                            
                                        
                                            
// First get chat_id via GET /chats, GET /groups, or GET /newsletters
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create("{\"to\":\"[email protected]\",\"body\":\"Hello, group!\"}", mediaType);
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/text")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
// First get chat_id via GET /chats, GET /groups, or GET /newsletters
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_token}");
request.AddJsonBody("{\"to\":\"[email protected]\",\"body\":\"Hello, group!\"}", false);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request GET \
     --url 'https://gate.whapi.cloud/chats?count=100' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/chats?count=100",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/chats?count=100"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/chats?count=100';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/chats?count=100")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/chats?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);
                                            
                                        
                                            
curl --request GET \
     --url 'https://gate.whapi.cloud/messages/list?count=100' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/messages/list?count=100",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/messages/list?count=100"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/messages/list?count=100';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/messages/list?count=100")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/messages/list?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);
                                            
                                        
                                            
curl --request GET \
     --url 'https://gate.whapi.cloud/groups' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/groups",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/groups"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/groups';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/groups")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
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}");
var response = await client.GetAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request POST \
     --url https://gate.whapi.cloud/contacts \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}' \
     --header 'content-type: application/json' \
     --data '
{
  "force_check": false,
  "contacts": [
    "919984351847",
    "61371989950"
  ]
}
'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/contacts",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS => json_encode([
    'force_check' => false,
    'contacts' => ['919984351847', '61371989950']
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/contacts"

payload = {
    "force_check": False,
    "contacts": ["919984351847", "61371989950"]
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}",
    "content-type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/contacts';
const payload = {
  force_check: false,
  contacts: ['919984351847', '61371989950'],
};

const response = await fetch(url, {
  method: 'POST',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
    'content-type': 'application/json',
  },
  body: JSON.stringify(payload),
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create("{"force_check":false,"contacts":["919984351847","61371989950"]}", mediaType);
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/contacts")
  .post(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/contacts");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
request.AddJsonBody("{"force_check":false,"contacts":["919984351847","61371989950"]}", false);
var response = await client.PostAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        
                                            
curl --request GET \
     --url https://gate.whapi.cloud/contacts/ids/118876465958956%40lid \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/contacts/ids/118876465958956%40lid",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "GET",
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/contacts/ids/118876465958956%40lid"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}"
}

response = requests.get(url, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/contacts/ids/118876465958956%40lid';

const response = await fetch(url, {
  method: 'GET',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
  },
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/contacts/ids/118876465958956%40lid")
  .get()
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/contacts/ids/118876465958956%40lid");
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);
                                            
                                        
                                            
curl --request PATCH \
     --url 'https://gate.whapi.cloud/settings' \
     --header 'accept: application/json' \
     --header 'authorization: Bearer {your_token}' \
     --header 'content-type: application/json' \
     --data '
{
  "callback_backoff_delay_ms": 3000,
  "max_callback_backoff_delay_ms": 900000,
  "callback_persist": true,
  "webhooks": [
    {
      "headers": {
        "myKey": "secret-key"
      },
      "mode": "body",
      "events": [
        {
          "type": "messages",
          "method": "post"
        },
        {
          "type": "statuses",
          "method": "post"
        },
        {
          "type": "groups",
          "method": "patch"
        }
      ],
      "url": ""
    }
  ]
}
'
                                            
                                        
                                            
$curl = curl_init();

curl_setopt_array($curl, [
  CURLOPT_URL => "https://gate.whapi.cloud/settings",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PATCH",
  CURLOPT_POSTFIELDS => json_encode([
    'callback_backoff_delay_ms' => 3000,
    'max_callback_backoff_delay_ms' => 900000,
    'callback_persist' => true,
    'webhooks' => [
        [
                'headers' => ['myKey' => 'secret-key'],
                'mode' => 'body',
                'events' => [
                                ['type' => 'messages', 'method' => 'post'],
                                ['type' => 'statuses', 'method' => 'post'],
                                ['type' => 'groups', 'method' => 'patch']
                ],
                'url' => ''
        ]
    ]
  ]),
  CURLOPT_HTTPHEADER => [
    "accept: application/json",
    "authorization: Bearer {your_token}",
    "content-type: application/json"
  ],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
}
                                            
                                        
                                            
import requests

url = "https://gate.whapi.cloud/settings"

payload = {
    "callback_backoff_delay_ms": 3000,
    "max_callback_backoff_delay_ms": 900000,
    "callback_persist": True,
    "webhooks": [
        {
            "headers": {"myKey": "secret-key"},
            "mode": "body",
            "events": [
                {"type": "messages", "method": "post"},
                {"type": "statuses", "method": "post"},
                {"type": "groups", "method": "patch"}
            ],
            "url": ""
        }
    ]
}
headers = {
    "accept": "application/json",
    "authorization": "Bearer {your_token}",
    "content-type": "application/json"
}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
                                            
                                        
                                            
const url = 'https://gate.whapi.cloud/settings';
const payload = {
  callback_backoff_delay_ms: 3000,
  max_callback_backoff_delay_ms: 900000,
  callback_persist: true,
  webhooks: [
    {
      headers: { myKey: 'secret-key' },
      mode: 'body',
      events: [
        { type: 'messages', method: 'post' },
        { type: 'statuses', method: 'post' },
        { type: 'groups', method: 'patch' },
      ],
      url: '',
    },
  ],
};

const response = await fetch(url, {
  method: 'PATCH',
  headers: {
    accept: 'application/json',
    authorization: 'Bearer {your_token}',
    'content-type': 'application/json',
  },
  body: JSON.stringify(payload),
});

console.log(await response.text());
                                            
                                        
                                            
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create("{\"callback_backoff_delay_ms\":3000,\"max_callback_backoff_delay_ms\":900000,\"callback_persist\":true,\"webhooks\":[{\"headers\":{\"myKey\":\"secret-key\"},\"mode\":\"body\",\"events\":[{\"type\":\"messages\",\"method\":\"post\"},{\"type\":\"statuses\",\"method\":\"post\"},{\"type\":\"groups\",\"method\":\"patch\"}],\"url\":\"\"}]}", mediaType);
Request request = new Request.Builder()
  .url("https://gate.whapi.cloud/settings")
  .patch(body)
  .addHeader("accept", "application/json")
  .addHeader("authorization", "Bearer {your_token}")
  .addHeader("content-type", "application/json")
  .build();

Response response = client.newCall(request).execute();
                                            
                                        
                                            
using RestSharp;

var options = new RestClientOptions("https://gate.whapi.cloud/settings");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("accept", "application/json");
request.AddHeader("Authorization", "Bearer {your_token}");
request.AddJsonBody("{\"callback_backoff_delay_ms\":3000,\"max_callback_backoff_delay_ms\":900000,\"callback_persist\":true,\"webhooks\":[{\"headers\":{\"myKey\":\"secret-key\"},\"mode\":\"body\",\"events\":[{\"type\":\"messages\",\"method\":\"post\"},{\"type\":\"statuses\",\"method\":\"post\"},{\"type\":\"groups\",\"method\":\"patch\"}],\"url\":\"\"}]}", false);
var response = await client.PatchAsync(request);

Console.WriteLine("{0}", response.Content);
                                            
                                        

Используйте наши руководства с исходным кодом для быстрого старта

Пошаговые руководства с готовым кодом для Python, PHP, Node.js и Java, а также готовые боты, чекеры и шаблоны автоматизации с открытым исходным кодом на GitHub. Сделайте форк репозитория и запускайтесь быстрее. Более 20 репозиториев на GitHub →

Meta* Cloud API против Whapi.Cloud API — что вы получаете

Те же критерии выбора, что и в нашем полном руководстве: модель расходов, скорость подключения, доступные функции и эксплуатационные компромиссы между официальным API от Meta* и решением Whapi.Cloud.

Meta* Cloud API Whapi.Cloud API
Цены и подключение
Модель оплаты исходящих За каждое сообщение (зависит от категории и страны) Фиксированная подписка, без комиссий Meta*
Предсказуемость расходов Переменная (лимиты, изменения тарифов) Полностью предсказуемая стоимость в месяц
Скорость запуска Многоэтапная верификация компании и шаблонов Сканирование QR — запуск за пару минут
Шаблоны сообщений Обязательны для большинства исходящих рассылок Не требуются — отправляйте любые сообщения без модерации
Возможности и доступ
Группы WhatsApp Ограничено (до 8 участников, только Enterprise) Полная поддержка групп API (1024–2048 участников)
Каналы и статусы Недоступно Полный доступ через API
Проверка существования номера Недоступно Доступно
Телефон + API на одном номере Ограниченное совместное использование Режим Multi-device, приложение на телефоне работает параллельно
Нативные функции (каталоги, корзины) Только базовый обмен сообщениями Группы, каналы, статусы, каталоги товаров
Риски и эксплуатация
Ограничения по категориям бизнеса Строгая фильтрация тематик со стороны Meta* Работает для любого бизнеса без ограничений
Модерация сообщений Предварительная и пост-модерация со стороны Meta* Без предварительной модерации
Профиль блокировок и ограничений Многоступенчатые ограничения аккаунта Временные блокировки, обычно легко восстанавливаемые
Прогрев и инструменты безопасности Недоступно Модуль прогрева + Индикатор безопасности
VoIP / API для звонков Облачная телефония Meta* Только REST-сообщения

Полное руководство по сравнению →

Выбор разработчиков

Нам доверяют 3 300+ разработчиков и SaaS-команд

Разработчики по всему миру используют Whapi.Cloud для создания автоматизаций, ботов, CRM-интеграций, массовых рассылок и продвинутых WhatsApp-воркфлоу. Наша инфраструктура обрабатывает миллионы API-запросов с высокой стабильностью — и этот показатель растёт каждый месяц.

Иконка функции

5,5K+

активных API-каналов

Иконка функции

21M+

API-запросов в месяц

«Всё просто, интуитивно и легко. Документация понятная, и вся нужная информация всегда под рукой. Отличная работа.»

Roberto K. / Web-разработчик

«Мы подключили WhatsApp к нашим процессам через n8n всего за несколько минут. Без кода, без сложностей — всё заработало с первого раза.»

Martin P. / Разработчик

«Whapi.Cloud стал важной частью нашей коммуникации с клиентами. Мы автоматизировали обновления по продуктам, уведомления о заказах и поддержку — без шаблонов и модерации.»

Oscar T. / CTO

Декоративный пузырь
Возможности WhatsApp API

Часто задаваемые вопросы

Whapi.Cloud поддерживает отправку сообщений (текст, медиа, каталоги, реакции), работу с группами и сообществами, каналами WhatsApp, статусами, контактами и чатами, вебхуки для событий в реальном времени и интеграции с инструментами автоматизации. Каждый раздел на этой странице соответствует методам API, которые вы можете вызывать по протоколу HTTPS.
Нет. Вы можете начать работу без прохождения сложных проверок и согласования шаблонов. Просто подключите ваш номер WhatsApp к каналу и сразу отправляйте любые сообщения через API.
Да. Вы можете привязать свой текущий номер по QR-коду или коду сопряжения в разделе «Связанные устройства» в WhatsApp. Миграция номера не требуется, и при необходимости вы сможете сменить привязанный номер позже.
Да. Вы можете создавать группы и управлять ими, добавлять и удалять участников, отправлять сообщения в группы, работать с сообществами, а также полностью автоматизировать каналы WhatsApp — публикацию постов, управление администраторами и чтение данных каналов через API.
Укажите URL-адрес вашего вебхука (HTTPS) в настройках канала. При возникновении событий (новые сообщения, изменение статуса доставки, изменения в группах и т. д.) Whapi.Cloud отправит POST-запрос с данными на ваш сервер, чтобы ваше приложение могло мгновенно отреагировать без постоянных опросов API.
Да. Вы можете использовать готовые нативные коннекторы для Make.com и n8n или вызывать REST API из любого языка программирования и платформы. Интеграции с Zapier, IFTTT и другими подобными сервисами легко настраиваются через стандартные HTTP-запросы и вебхуки.
Да. Тариф Sandbox позволяет бесплатно подключить номер и протестировать основные методы API с суточными и месячными лимитами. Вы можете перейти на платный тариф в любой момент, когда вам потребуются рабочие объемы без ограничений песочницы.
Whapi.Cloud использует фиксированную ежемесячную оплату за каждый подключенный канал (номер), а не за количество отправленных сообщений или начатых диалогов. На платных тарифах количество API-запросов не тарифицируется отдельно.
Любая автоматизация несет в себе риск ограничений со стороны WhatsApp, если алгоритмы сочтут активность спамом. Риск напрямую зависит от объемов рассылки, интервалов между сообщениями, репутации номера и качества контента. Мы предоставляем инструменты прогрева номеров, рекомендации по безопасности и техническую поддержку для анализа сложных ситуаций.
Whapi.Cloud - Начните бесплатно!

WhatsApp API Цены

Ежемесячная оплата

Оплата за год

Песочница

Бесплатно Навсегда

Полный функционал API для тестирования и разработки с применением лимитов использования

  • До 5 активных чатов в месяц

  • До 150 сообщений в день

  • До 30 проверок номеров WhatsApp в день

  • До 1 000 API-запросов в месяц

  • Требуется периодическая активность

  • Стандартная поддержка (без приоритета)

Начать бесплатно
Премиум

500 рублей / месяц

750 рублей
33% скидка

Стабильный и надёжный сервис для production-нагрузок с приоритетной поддержкой

  • Неограниченные сообщения и медиа

  • Полный доступ к группам, товарам и вебхукам

  • Без оплаты за сообщения

  • Приоритетная живая поддержка и ускоренное реагирование на инциденты

  • Модуль автоматического прогрева номера

  • Встроенные инструменты и интеграции для автоматизации

  • Подходит для долгосрочных и стабильных production-процессов

Цена указана за один WhatsApp-номер. Доступны скидки при подключении нескольких номеров.

Сколько планируете номеров? 1

1

Цена за номер

Начать бесплатно
5-дневный
триал