Перейти к основному содержимому

Данные из API в ответах команд

Переменная $(api ...) подставляет в ответ команды данные внешнего сервиса. Например, бот может показать курс валюты или игровую статистику. Для этого нужна ссылка на API, которое возвращает JSON, и путь к нужному полю в его ответе.

Пример: курс доллара​

Создадим команду !курс, которая показывает курс доллара к рублю из API Frankfurter.

  1. Откройте раздел команд в панели управления, создайте команду и укажите !курс.

  2. Вставьте в текст ответа:

    Курс доллара: $(api https://api.frankfurter.dev/v2/rate/USD/RUB $.rate) ₽
  3. Нажмите «Тест», чтобы проверить результат.

  4. Сохраните команду и вызовите !курс в чате.

Редактор команды !курс: переменная с API Frankfurter и результат теста Курс доллара: 86.3 ₽

На скриншоте бот отвечает: Курс доллара: 86.3 ₽.

Вызов команды !курс в чате и ответ бота Курс доллара: 86.3 ₽

Как устроена переменная​

Общий формат:

$(api URL $.path)

Замените URL ссылкой на API, а $.path — путём к полю, которое хотите вывести. Между ссылкой и путём нужен пробел.

В нашем примере API возвращает:

{
"date": "2026-09-08",
"base": "USD",
"quote": "RUB",
"rate": 86.3
}

Символ $ обозначает весь ответ. Путь $.rate выбирает поле rate, поэтому вместо переменной бот подставляет число 86.3, сохраняя текст вокруг неё.

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

Вложенные поля и списки​

Допустим, другой сервис возвращает такой JSON:

{
"player": {
"nickname": "Streamer",
"elo": 1850
},
"matches": [
{"map": "Mirage"},
{"map": "Inferno"}
]
}
Что вывестиПутьРезультат
Никнейм игрока$.player.nicknameStreamer
Elo игрока$.player.elo1850
Карту первого матча$.matches[0].mapMirage

Точка переходит к вложенному полю. Число в квадратных скобках выбирает элемент списка: нумерация начинается с нуля. Если путь находит несколько значений, бот выводит первое.

Переменную API можно сочетать с обычным текстом и другими переменными команды.

Если вместо значения появилась ошибка​

Сообщение «API временно недоступно» означает, что бот не смог получить нужное значение. Такое бывает, если сервис недоступен, возвращает ошибку или не JSON, либо указанного поля нет в ответе.

Проверьте ссылку и фактический ответ сервиса. Сверьте названия полей, их вложенность и индекс элемента списка. Затем снова нажмите «Тест». Успешное сохранение команды проверяет её запись, но не гарантирует доступность внешнего сервиса.

После нескольких ошибок обращения к одному адресу бот может временно приостановить запросы к нему. Если тест уже работает, а чат ещё показывает ошибку, повторите вызов позже: такая пауза длится до 15 минут.

Ограничения​

  • Используйте прямую публичную ссылку по HTTPS, без перенаправлений.
  • Ссылка должна быть фиксированной: подставить в неё ник зрителя или другую переменную нельзя.
  • Бот выполняет GET-запрос. Собственные заголовки авторизации и тело запроса задать нельзя.
  • В одном ответе допускается до 2 переменных API. Если у команды несколько вариантов ответа, суммарно в них допускается до 10 таких переменных.
  • На бесплатном тарифе можно создать до 3 команд с API, с платной подпиской — до 10 на канал.
  • Результат кешируется на 15 секунд. Повторный вызов в это время может показать прежнее значение.
  • Общая задержка между вызовами одной команды с API — минимум 5 секунд, независимо от того, какой зритель её вызвал.