API или вебхук — в чём разница и когда что брать

Строишь бота или автоматизацию — и натыкаешься на выбор: подключить сервис через API или через вебхук? Звучит как два разных зверя, но делают они одно — дают двум программам поговорить.
Разница в одном: в направлении. С API ты идёшь к серверу и спрашиваешь. Вебхук наоборот — сервер идёт к тебе и сообщает. Выбор между ними — это по сути выбор, кто кого ждёт. Разберём, когда что.
API: ты спрашиваешь
API — это когда твоя программа сама дёргает чужой сервер: «дай мне погоду», «сколько на счёте?», «есть новые сообщения?». Ты инициируешь, ты получаешь ответ здесь и сейчас. Как позвонить в справочную: набрал — узнал.
Отлично работает, когда данные нужны в момент запроса: пользователь нажал кнопку — ты сходил в API, показал результат. Но есть засада. Если тебе нужно узнавать о событии, которое случается когда-то потом, приходится спрашивать снова и снова — «есть новое? есть новое?». Это называется polling (опрос), и он тратит силы впустую: 99 запросов из 100 вернут «пока ничего».
Вебхук: тебе сообщают
Вебхук переворачивает направление. Ты один раз даёшь сервису свой адрес — и дальше он сам стучится к тебе, как только что-то произошло. Оплата прошла, пришло сообщение, случился пуш в репозиторий — сервер шлёт тебе пакет данных сам, мгновенно.
Как оставить курьеру звонок вместо того, чтобы каждые пять минут выбегать к двери. Придёт — позвонит. Ты не тратишь силы на проверки и узнаёшь о событии в ту же секунду.
Сравним по делу
| Критерий | API (ты спрашиваешь) | Вебхук (тебе сообщают) | |---|---|---| | Кто инициирует | ты дёргаешь сервер | сервер дёргает тебя | | Когда узнаёшь о событии | когда сам спросишь | сразу, как случилось | | Нужен постоянный сервер | нет, можно с кнопки | да — адрес должен быть онлайн | | Нагрузка | много холостых опросов | только по событию | | Для чего | получить данные по запросу | реагировать на события |
Кому что подойдёт
Без увиливаний:
- Нужны данные прямо сейчас, по действию пользователя — бери API. Показать погоду, курс, профиль по кнопке — это его работа.
- Нужно реагировать на событие, которое случится потом — бери вебхук. Бот, отвечающий на сообщения; уведомление об оплате; автоматизация «пришло письмо → сделай Х» — всё это вебхуки.
И главное: чаще всего они работают в паре. Вебхук будит тебя — «эй, что-то произошло», — а ты в ответ дёргаешь API, чтобы узнать детали. Так устроено большинство живых интеграций. Собираешь телеграм-бота? Telegram доставляет сообщения вебхуком, а ты отвечаешь через его API.
Вебхук — это разве не тоже API?
По технике — да, вебхук обычно шлёт данные тем же способом, что и API-запрос. Но роли противоположные: в «обычном» API запрос идёшь делать ты, а вебхук — это когда запрос к тебе делает сервер. Поэтому их и различают: дело не в технологии, а в том, кто кого зовёт.
Что выбрать новичку для первого проекта?
Начни с API — он проще: не нужен постоянно работающий сервер, можно дёргать хоть из браузера. Вебхуки добавляй, когда упрёшься в задачу «надо реагировать на событие в реальном времени» — и заметишь, что бесконечно опрашивать сервер глупо. Кстати, эта же логика «спрашивать против реагировать» отличает чат-бота от агента.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.




