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

← Вернуться назад

Введение

Добро пожаловать в документацию WhatsApp API Platform. Этот API позволяет отправлять сообщения через WhatsApp, управлять профилем, работать с реакциями на сообщения и управлять блоклистом контактов.

Все запросы к API должны содержать токен авторизации в заголовке Authorization: Bearer YOUR_TOKEN

Аутентификация

Для доступа к API необходим токен канала. Токен можно найти на странице управления каналом в панели управления.

Authorization: Bearer {YOUR_CHANNEL_TOKEN}

Важно: Для использования API необходимо иметь активную подписку с доступом к API, а канал должен быть в статусе "Готов к работе" (READY).

Эндпоинты

GET /api/profile

Получить информацию о профиле WhatsApp канала.

Пример запроса:

curl -X GET https://whapi.kz/api/profile \
  -H "Authorization: Bearer YOUR_TOKEN"

Пример ответа:

{
  "success": true,
  "data": {
    "name": "Имя пользователя",
    "phone": "77001234567",
    "status": "Доступен",
    "avatar": "https://example.com/avatar.jpg"
  }
}
PATCH /api/profile

Обновить информацию профиля WhatsApp канала.

Параметры запроса:

Параметр Тип Обязательный Описание
name string Нет Имя профиля (макс. 64 символа)
status string Нет Статус профиля (макс. 128 символов)

Пример запроса:

curl -X PATCH https://whapi.kz/api/profile \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Новое имя",
    "status": "Доступен для связи"
  }'

Пример ответа:

{
  "success": true,
  "message": "Profile updated successfully"
}
POST /api/message

Отправить текстовое сообщение или медиа-файл на указанный номер телефона.

Параметры запроса:

Параметр Тип Обязательный Описание
to string Да Номер телефона получателя с кодом страны (макс. 15 символов)
text string Да* Текст сообщения (макс. 1024 символа). Обязателен, если не указан media
media file Нет Медиа-файл для отправки (макс. 5MB). Может быть изображение, видео, документ

Пример запроса (текст):

curl -X POST https://whapi.kz/api/message \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "77001234567",
    "text": "Привет! Это тестовое сообщение."
  }'
DELETE /api/message

Удалить сообщение для себя или для всех участников чата.

Параметры запроса:

Параметр Тип Обязательный Описание
id string Да ID сообщения для удаления (макс. 48 символов)
to string Да Номер телефона получателя (макс. 15 символов)
for_everyone boolean Нет Удалить для всех (по умолчанию: true)

Пример запроса:

curl -X DELETE https://whapi.kz/api/message \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "id": "message_123456",
    "to": "77001234567",
    "for_everyone": true
  }'

Пример ответа:

{
  "success": true,
  "message": "Message deleted successfully"
}
POST /api/message/react

Добавить реакцию (эмодзи) к сообщению.

Параметры запроса:

Параметр Тип Обязательный Описание
to string Да Номер телефона получателя (макс. 15 символов)
id string Да ID сообщения (макс. 48 символов)
reaction string Да Эмодзи-реакция (макс. 16 символов, например: 👍, ❤️, 😂)

Пример запроса:

curl -X POST https://whapi.kz/api/message/react \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "77001234567",
    "id": "message_123456",
    "reaction": "👍"
  }'

Пример ответа:

{
  "success": true,
  "message": "Reaction added successfully"
}
DELETE /api/message/react

Удалить реакцию с сообщения.

Параметры запроса:

Параметр Тип Обязательный Описание
to string Да Номер телефона получателя (макс. 15 символов)
id string Да ID сообщения (макс. 48 символов)

Пример запроса:

curl -X DELETE https://whapi.kz/api/message/react \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "77001234567",
    "id": "message_123456"
  }'

Пример ответа:

{
  "success": true,
  "message": "Reaction removed successfully"
}
GET /api/blocklist

Получить список заблокированных контактов.

Пример запроса:

curl -X GET https://whapi.kz/api/blocklist \
  -H "Authorization: Bearer YOUR_TOKEN"

Пример ответа:

{
  "success": true,
  "data": [
    {
      "jid": "77001234567@s.whatsapp.net"
    },
    {
      "jid": "77009876543@s.whatsapp.net"
    }
  ]
}
POST /api/blocklist

Добавить номер телефона в блоклист.

Параметры запроса:

Параметр Тип Обязательный Описание
to string Да Номер телефона для блокировки (макс. 15 символов)

Пример запроса:

curl -X POST https://whapi.kz/api/blocklist \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "77001234567"
  }'

Пример ответа:

{
  "success": true,
  "message": "Blocklist added successfully"
}
DELETE /api/blocklist

Удалить номер телефона из блоклиста.

Параметры запроса:

Параметр Тип Обязательный Описание
to string Да Номер телефона для разблокировки (макс. 15 символов)

Пример запроса:

curl -X DELETE https://whapi.kz/api/blocklist \
  -H "Authorization: Bearer YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "77001234567"
  }'

Пример ответа:

{
  "success": true,
  "message": "Blocklist removed successfully"
}

Лимиты

Лимиты отправки сообщений зависят от вашего тарифного плана:

  • Дневной лимит: Количество сообщений, которые можно отправить за день
  • Общий лимит: Общее количество сообщений за весь период подписки
  • Rate Limit: Ограничение на количество API запросов в минуту

При превышении лимитов API будет возвращать ошибку 429 (Too Many Requests). Дневной лимит сбрасывается ежедневно в 00:00 UTC.

Коды ошибок

Код Описание
400 Неверный запрос (некорректные параметры)
401 Неверный или отсутствующий токен
403 Доступ запрещен. Возможные причины:
  • Подписка не активна (истек срок действия)
  • Канал не готов к работе (статус не READY)
  • Тарифный план не включает доступ к API
429 Превышен лимит отправки сообщений
500 Внутренняя ошибка сервера

Webhook

Вы можете настроить Webhook URL в настройках канала для получения уведомлений о статусе отправленных сообщений.

Пример webhook payload:

{
  "event": "message.sent",
  "data": {
    "messageId": "message_123456",
    "phone": "77001234567",
    "status": "delivered",
    "timestamp": "2025-11-07T10:30:00Z"
  }
}