Вебхук Дискорд — это 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 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
- Где и как применять? Потестируем модель после установки на разных задачах
- Как дообучить модель под себя?
Как создать вебхук в Дискорде: пошаговая инструкция

Понадобится аккаунт Discord и право «Управлять вебхуками» на сервере — в документации к методу создания это указано прямо: «Requires the MANAGE_WEBHOOKS permission». Владелец сервера имеет его по умолчанию.
- Откройте Настройки сервера — стрелка рядом с названием сервера в левом верхнем углу.
- В боковом меню выберите Интеграции и откройте блок Вебхуки.
- Нажмите Создать вебхук («Create Webhook»).
- Задайте понятное имя и выберите канал, в который будут падать сообщения.
- Нажмите Копировать ссылку вебхука («Copy Webhook 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 /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: что нельзя превышать

| Что | Предел |
|---|---|
Текст сообщения (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 и узнай, как пользоваться функционалом остальных ИИ в одном
- УЧАСТВОВАТЬ ЗА 0 РУБ.
- Расскажем, как получить подписку
- ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросеть DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ