Вебхук Дискорд — это URL канала, на который любая программа шлёт POST-запрос с JSON, и текст появляется в чате. Бот и авторизация не нужны. Создаётся за минуту: Настройки сервера → Интеграции → Вебхуки → Новый вебхук → выбрать канал → «Копировать ссылку вебхука». Дальше адрес вставляют в сторонний сервис или свой скрипт: за один запрос уходит до 2000 символов текста и до 10 embed-блоков.

Коротко, что нужно знать до старта:

  • вебхук создаёт участник с правом «Управлять вебхуками» (MANAGE_WEBHOOKS);
  • URL вебхука = пароль: кто знает адрес, тот пишет в канал;
  • один вебхук пишет ровно в один канал, но канал может слушать несколько вебхуков;
  • предел — 15 вебхуков и 1000 на сервер, дальше Discord отдаёт ошибку;
  • вебхук только отправляет сообщения — читать чат и отвечать на команды он не умеет, для этого нужен бот.

Что такое вебхук Дискорд и чем он отличается от бота

Документация Discord описывает вебхуки одной фразой: «Webhooks are a low-effort way to post messages to channels in Discord» — способ публиковать сообщения в каналы с минимумом усилий. И там же ключевое уточнение: «They do not require a bot user or authentication to use» — ни бот-пользователь, ни авторизация не требуются.

Отсюда важная поправка к популярному объяснению «вебхук прослушивает события и перехватывает данные». Входящий вебхук ничего не слушает и никуда не ходит сам. Это односторонняя труба: внешняя программа делает POST-запрос на выданный адрес — Discord публикует сообщение. Событие ловит та сторона (форма на сайте, CRM, скрипт мониторинга, GitHub Actions), вебхук только доставляет результат.

Три типа вебхуков в документации

  • Incoming — «can post messages to channels with a generated token». Именно этот тип создают руками, о нём вся статья.
  • Channel Follower — «internal webhooks used with Channel Following to post new messages into channels». Служебные, появляются сами, когда вы подписываете свой канал на чужой анонс-канал.
  • Application — «webhooks used with Interactions», под ответы приложений.

Вебхук или бот: сравнительная таблица

Критерий Вебхук Бот
Что делает публикует сообщения в один выбранный канал читает чат, отвечает на команды, модерирует, работает с голосом
Авторизация не нужна: доступ = знание URL токен приложения и выданные на сервере права
Направление обмена только наружу → в канал двусторонний
Что нужно для запуска право «Управлять вебхуками» и одна ссылка зарегистрировать приложение, написать и где-то держать код
Типичная задача уведомления: заявка с сайта, деплой, алерт мониторинга игровые механики, модерация, диалоги, ИИ-ассистент в чате

Правило выбора простое: если задача звучит как «отправить сообщение в канал, когда где-то что-то произошло» — хватит вебхука. Всё, что требует реакции на действия людей внутри Discord, — уже бот. Как выглядит второй путь, разобрано в гайде по добавлению Chat GPT в Discord с помощью Python.

ОНЛАЙН-ПРАКТИКУМ
ЗАПУСК нейросети DEEPSEEK R1 ЛОКАЛЬНО НА СВОЕМ КОМПЬЮТЕРЕ
ЧТО БУДЕТ НА ОБУЧЕНИИ?
  • ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросети DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
  • Где и как применять? Потестируем модель после установки на разных задачах
  • Как дообучить модель под себя?

Как создать вебхук в Дискорде: пошаговая инструкция

Путь до вебхука в интерфейсе Discord: пять шагов от настроек сервера до готовой ссылки
Путь до вебхука в интерфейсе Discord: пять шагов от настроек сервера до готовой ссылки

Понадобится аккаунт Discord и право «Управлять вебхуками» на сервере — в документации к методу создания это указано прямо: «Requires the MANAGE_WEBHOOKS permission». Владелец сервера имеет его по умолчанию.

  1. Откройте Настройки сервера — стрелка рядом с названием сервера в левом верхнем углу.
  2. В боковом меню выберите Интеграции и откройте блок Вебхуки.
  3. Нажмите Создать вебхук («Create Webhook»).
  4. Задайте понятное имя и выберите канал, в который будут падать сообщения.
  5. Нажмите Копировать ссылку вебхука («Copy Webhook URL») — адрес окажется в буфере обмена.

Тот же раздел «Интеграции» открывается из настроек конкретного канала — значок шестерёнки рядом с его названием.

Значок настроек рядом с названием канала в Discord

Раздел «Интеграции» в Discord и кнопка создания вебхука

Карточка вебхука: имя, канал и кнопка копирования URL

Как выглядит URL и что в нём зашито

Скопированный адрес построен по схеме https://discord.com/api/webhooks/{webhook.id}/{webhook.token} — это и есть эндпоинт, на который отправляют сообщения. Токен в конце заменяет собой пароль, поэтому обращаться с URL нужно как с ключом от канала.

Быстрая проверка: вставьте адрес в адресную строку браузера. Обычный GET-запрос вернёт JSON с описанием вебхука — метод «Get Webhook with Token», по документации, «does not require authentication». Пришёл JSON — вебхук жив, ошибка — адрес битый или вебхук удалён.

Имя вебхука ограничено: «name of the webhook (1-80 characters)», плюс в нём нельзя использовать слова «clyde» и «discord» — Discord отклонит такое имя.

Как отправить сообщение через вебхук Discord: curl и Python

Как сообщение доходит до канала: путь POST-запроса
Как сообщение доходит до канала: путь POST-запроса

Метод один: POST /webhooks/{webhook.id}/{webhook.token} с телом в JSON. В документации есть обязательное условие: «you must provide a value for at least one of content, embeds, components, file, or poll» — пустой запрос не пройдёт.

Минимальный вызов через curl:

curl -X POST "https://discord.com/api/webhooks/ID/TOKEN" \ -H "Content-Type: application/json" \ -d '{"content": "Новая заявка с сайта", "username": "Робот отдела продаж"}'

То же самое на Python через requests:

import requests WEBHOOK_URL = "https://discord.com/api/webhooks/ID/TOKEN" payload = { "content": "Новая заявка с сайта", "username": "Робот отдела продаж", } r = requests.post(WEBHOOK_URL, json=payload, timeout=10) print(r.status_code) # 204 — сообщение ушло

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

  • content — текст сообщения, «up to 2000 characters»;
  • username и avatar_url — подменяют имя и аватар вебхука для конкретного сообщения, менять настройки в интерфейсе не нужно;
  • tts — сообщение зачитает синтезатор речи;
  • allowed_mentions — что вебхуку разрешено пингануть, страховка от случайного @everyone;
  • thread_name — имя ветки, которую вебхук создаст сам.

Два параметра передаются в строке запроса, а не в теле. ?wait=true — «waits for server confirmation of message send before response, and returns the created message body (defaults to false)»: вместо пустого ответа придёт JSON сообщения с его id, по которому потом можно это сообщение отредактировать или удалить. ?thread_id= — «Send a message to the specified thread within a webhook’s channel»: сообщение уйдёт в конкретную ветку канала.

По умолчанию ответ — 204 No Content: тела нет, но сообщение доставлено. Многие ловят на этом первый баг, ожидая в ответе JSON.

Embed: как оформить сообщение вебхука Дискорд

Простой текст годится для «пришла заявка». Для алертов и отчётов используют embed — карточку с заголовком, цветной полосой и полями. Параметр embeds принимает «array of up to 10 embed objects».

{ "username": "Мониторинг", "embeds": [ { "title": "Сайт недоступен", "description": "example.com вернул 503", "color": 15158332, "fields": [ {"name": "Проверка", "value": "каждые 5 минут", "inline": true}, {"name": "Дежурный", "value": "инженер смены", "inline": true} ], "footer": {"text": "Alertbot"} } ] }

Поле color задаётся десятичным числом, а не строкой #RRGGBB: 15158332 — это красный #E74C3C. Строку Discord не примет.

Ограничения embed из документации: title — 256 символов, description — 4096, полей fields — «Up to 25», имя поля — 256, значение поля — 1024, footer.text — 2048, author.name — 256. Плюс общий потолок: «the combined sum of characters in all title, description, field.name, field.value, footer.text, and author.name fields across all embeds attached to a message must not exceed 6000 characters».

Практический вывод: логи и трейсбеки в embed не помещаются. Их отправляют файлом или обрезают до сути, иначе запрос вернёт ошибку целиком, а не «частично».

Лимиты вебхуков Discord: что нельзя превышать

Что делать при ответе 429: правильный цикл повтора
Что делать при ответе 429: правильный цикл повтора
Что Предел
Текст сообщения (content) 2000 символов
Embed-объектов в сообщении 10
Полей в одном embed 25
Символов суммарно по всем embed 6000
Длина имени вебхука 1–80 символов
Вебхуков (ошибка 30007) 15
Вебхуков на сервер (ошибка 30058) 1000

Два последних значения взяты из таблицы кодов ошибок дословно: 30007 — «Maximum number of webhooks reached (15)», 30058 — «Maximum number of webhooks per guild reached (1000)».

Частота запросов

Отдельного опубликованного числа «столько-то сообщений в минуту на вебхук» в документации нет — там задан общий потолок «All bots can make up to 50 requests per second to our API» и механика заголовков. Ориентироваться нужно не на слухи, а на ответ сервера: X-RateLimit-Remaining («The number of remaining requests that can be made») и X-RateLimit-Reset-After («Total time (in seconds) of when the current rate limit bucket will reset»). Если лимит выбран, придёт HTTP 429 с полем retry_after — «The number of seconds to wait before submitting another request».

Поэтому любой скрипт, который шлёт больше пары сообщений подряд, должен уметь читать 429 и ждать retry_after, а не просто повторять запрос в цикле. Иначе канал замолчит в самый нужный момент.

Управление, удаление и безопасность URL вебхука

Все созданные вебхуки лежат в том же разделе «Интеграции» → «Вебхуки»: там их переименовывают, меняют аватар и канал, копируют URL заново и удаляют. Удаление необратимо — метод «Delete a webhook permanently», в ответ приходит 204 No Content.

Про безопасность есть один неочевидный момент. Токен внутри URL — единственная проверка: «Get Webhook with Token … does not require authentication». Значит, любой, кому попал адрес, пишет в ваш канал от имени вебхука. Отсюда рабочие правила:

  • URL не хранят в публичном репозитории и не вшивают во фронтенд — только в переменные окружения или секреты CI;
  • под каждый сервис заводят отдельный вебхук: утёк один — гасите его, остальные работают;
  • при подозрении на утечку вебхук удаляют и создают новый — «отозвать токен», оставив адрес, нельзя;
  • шумные интеграции лучше уводить в отдельный канал с ограниченным доступом.

Почему вебхук Дискорд не работает: коды ответов

  • Пришёл 204, но сообщения нет. Скорее всего, вебхук указывает на другой канал — проверьте выбранный канал в карточке вебхука.
  • Ошибка 50027 «Invalid webhook token provided». Адрес скопирован не полностью или вебхук пересоздали, а старый URL остался в сервисе.
  • Запрос отклонён без сообщения. Тело пустое: нужен хотя бы один из content, embeds, components, file, poll.
  • HTTP 429. Превышена частота — читайте retry_after и ставьте паузу.
  • Ошибка 30007. Уже 15 вебхуков, удалите ненужные.
  • Имя не сохраняется. В нём есть «discord» или «clyde» либо больше 80 символов.
  • Ошибка 50073 «Cannot modify a system webhook». Это служебный вебхук Channel Following, руками его не редактируют.

Где применяют вебхуки Дискорд

Вебхук нужен там, где событие рождается вне Discord, а видеть его должна команда. Типовые связки:

  • Заявки и формы. Конструкторы форм вроде JotForm умеют отдавать исходящий вебхук — адрес канала вставляется в настройках формы.
  • Разработка. GitHub шлёт в канал пуши, пул-реквесты и статусы сборки.
  • Таблицы и отчёты. Классический сценарий из практики игровых студий: новая строка о продажах в Google Sheets — и цифра сразу в канале команды, без ручных сводок.
  • Мониторинг. Скрипт проверяет доступность сайта и на 5xx кидает красный embed с кодом ответа.

Если писать код не хочется, событие и вебхук связывают через ноукод-платформы: разбор такой связки — в статье об интеграции с Discord в Make. Смежные инструменты для командных чатов мы разбирали в обзоре Geneva, а сценарии автоматизации на стороне мессенджеров — в материале о подключении OpenClaw к Телеграму.

Проверить факты и найти остальные параметры можно в первоисточниках: описание Webhook Resource в документации Discord и справка Intro to Webhooks.

Частые вопросы о вебхуках Discord

Что такое вебхук Дискорд простыми словами?

Это персональный адрес канала. Программа отправляет на него POST-запрос с JSON — Discord публикует содержимое как сообщение. В документации формулировка такая: «low-effort way to post messages to channels in Discord».

Нужен ли бот, чтобы отправлять сообщения через вебхук?

Нет. Документация говорит прямо: «They do not require a bot user or authentication to use». Достаточно URL вебхука.

Сколько вебхуков можно создать?

При превышении Discord возвращает код 30007 — «Maximum number of webhooks reached (15)». На уровне сервера действует код 30058 — «Maximum number of webhooks per guild reached (1000)».

Сколько текста помещается в сообщение вебхука?

Поле content — до 2000 символов. Плюс до 10 embed-объектов, суммарно не более 6000 символов по их текстовым полям.

Что делать, если URL вебхука утёк?

Удалить вебхук и создать новый. Токен зашит в адрес, отозвать его отдельно нельзя — любой владелец ссылки может писать в канал.

Можно ли вебхуком отправить сообщение в ветку?

Да. Для существующей ветки добавьте к URL параметр ?thread_id=, для новой — передайте в теле запроса thread_name.

Материал обновлён в июле 2026 года, лимиты и названия методов сверены с текущей документацией Discord.

Большой практикум
ЗАМЕНИ ВСЕ НЕЙРОСЕТИ НА ОДНУ — PERPLEXITY
ПОКАЖЕМ НА КОНКРЕТНЫХ КЕЙСАХ
  • Освой нейросеть Perplexity и узнай, как пользоваться функционалом остальных ИИ в одном
  • УЧАСТВОВАТЬ ЗА 0 РУБ.
  • Расскажем, как получить подписку
Участвовать бесплатно
ОНЛАЙН-ПРАКТИКУМ
ЗАПУСК нейросети DEEPSEEK R1 ЛОКАЛЬНО НА СВОЕМ КОМПЬЮТЕРЕ
ЧТО БУДЕТ НА ОБУЧЕНИИ?
  • ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросеть DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
Участвовать бесплатно