Этот метод возвращает текущий статус подключения канала связи, к которому привязан API-токен: на связи ли мессенджер, ожидает авторизации, ограничен и т.д. Запрос удобен для мониторинга интеграций, проверки готовности канала перед отправкой сообщений и для отображения состояния в вашей CRM или панели администратора.

В отличие от методов отправки и чтения сообщений, этот запрос не требует состояния authorized — вы получите актуальное значение state даже если канал ещё не подключён. Для обзора всех каналов аккаунта сразу используйте получение списка каналов связи.

Ответ при успехе не содержит поля err — только объект с полем state. Это отличает метод от большинства других запросов API.


Поддерживаемые мессенджеры

WhatsApp, MAX Personal, Telegram Personal, Telegram Bot и другие.

Метод привязан к каналу, для которого выдан токен: тип мессенджера определяется настройками этого канала в WAMM.chat.


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

GET https://wamm.chat/api2/state/{token}/

Параметры запроса
ПараметрТипОбязательныйОписание
tokenstringДаAPI-токен канала из раздела Настройки > Управление > API.

Ответ при успехе
{"state":"authorized"}

Возможные значения поля state (неполный список):

  • authorized — канал на связи, готов к работе
  • suspended — подключение ограничено (часть операций API по-прежнему доступна)
  • notAuthorized — не авторизован, требуется подключение (QR-код или код)
  • starting — идёт запуск или переподключение
  • init — инициализация канала
  • blocked — канал заблокирован

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


Возможные ошибки
Код ошибкиОписание
token failТокен отсутствует, неверный или канал не в статусе оплаты active (в т.ч. архивный канал)

Примеры использования
function getChannelState($token) {
    $url = "https://wamm.chat/api2/state/" . rawurlencode($token) . "/";

    $response = file_get_contents($url);
    if ($response === false) {
        echo "Не удалось выполнить запрос к серверу";
        return null;
    }

    $json = json_decode($response, true);
    if (!is_array($json)) {
        echo "Не удалось обработать ответ от сервера";
        return null;
    }

    if (isset($json['err'])) {
        echo "Ошибка: " . $json['err'];
        return null;
    }

    if (isset($json['state'])) {
        return $json['state'];
    }

    echo "Неожиданный формат ответа";
    return null;
}

$token = "YOUR_TOKEN";
$state = getChannelState($token);

if ($state !== null) {
  if ($state === 'authorized') {
      echo "Канал на связи, можно отправлять сообщения";
  } elseif ($state === 'suspended') {
      echo "Канал ограничен, состояние: " . $state;
  } else {
      echo "Канал не готов к отправке, состояние: " . $state;
  }
}