Вебхуки мониторинга
Мониторинг (платные тарифы) шлёт события на ваш URL. Канал-вебхук добавляется в кабинете как канал уведомлений: указываете URL и секрет.
Доставка
- Метод:
POSTна ваш URL, тело — JSON. - Заголовок подписи:
X-ScanOps-Signature: sha256=<hex>, где<hex>— HMAC-SHA256 от сырого тела запроса с ключом-секретом канала. - Приёмник должен ответить
2xx.
Тело события
{
"event": "incident.down", // тип события (см. таблицу)
"delivery_id": "550e8400-…", // уникальный id доставки
"sent_at": "2026-08-14T10:00:00Z", // RFC 3339
"host": "example.ru",
"data": { /* поля, зависящие от типа события */ }
}
Типы событий (event)
| event | Когда |
|---|---|
incident.down | Сайт упал (открыт инцидент) |
incident.recovered | Сайт восстановился |
report.changes | В ежедневном скане изменились находки |
site.changes | Изменилось наблюдаемое содержимое сайта |
expiry.domain | Приближается окончание регистрации домена |
expiry.tls | Приближается окончание TLS-сертификата |
test | Тестовое событие (кнопка проверки в кабинете) |
data для expiry.*: { "days_left": 14, "expires_at": "…" }. Для
report.changes/site.changes: массив changes с kind и summary. Для
test: {}.
Проверка подписи
Всегда проверяйте X-ScanOps-Signature по сырому телу перед обработкой.
import hmac, hashlib
def valid(secret: str, raw_body: bytes, header: str) -> bool:
expected = "sha256=" + hmac.new(secret.encode(), raw_body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, header)
Другие каналы
Кроме вебхука, уведомления доставляются на email всем участникам команды и в Telegram. Вебхук — для интеграции с вашими системами (Slack, дежурства, тикеты).