Вебхуки для просроченных доменов

Вебхуки Expired Domains, которые шлют POST, когда домен совпал с фильтром — или сдвинулась цена

Подписка тем же ключом Pro, что и у Public API. Karma.Domains отправляет подписанное JSON-событие в Zapier, Make, n8n, IFTTT или на любой публичный HTTPS-адрес, когда срабатывает фильтр, меняется аукцион или вы обновляете заметку, избранное или задачу пользователя.

30 Подписок
5 000 Доставок в день
3 Типа подписок
60/min Общий лимит запросов
Спросить ИИ
  • ChatGPT
  • Claude
  • Gemini
  • Grok
  • Perplexity

Подключите Zapier, Make, n8n или IFTTT

Создайте триггер вебхука в своём инструменте, скопируйте его HTTPS-адрес и зарегистрируйте его через POST /v1/webhooks. Один и тот же вызов работает для любого клиента — меняется только URL.

Нужен тариф Pro или выше. Создайте или сбросьте ключ в Профиль → Разработчику. Относитесь к нему как к паролю.

Подписки 30 на аккаунт
Доставки 5 000 за сутки UTC
Лимит запросов 60 запросов в минуту на ключ (общий с Public API и MCP)

Zapier — Webhooks by Zapier, Catch Hook

  1. Создайте Zap и выберите Webhooks by Zapier как триггер. Укажите Catch Hook.
  2. Скопируйте HTTPS-адрес вебхука, который показывает Zapier.
  3. Отправьте POST /v1/webhooks с ключом Pro, этим URL, типом kind и нужными событиями. Проверьте Zap после первой доставки.
curl https://api.karma.domains/v1/webhooks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "filter",
    "url": "https://hooks.zapier.com/hooks/catch/123456/abcdef",
    "events": ["domain.matched_filter"],
    "bases": ["expired", "auctions"],
    "filter": { "karmascore_min": 60 }
  }'

Три способа подписки

Одно событие — один отчёт, кроме событий задач пользователя: там одно событие на задачу. Секрет возвращается только при создании подписки или при его смене.

Совпадение с фильтром

kind=filter отправляет domain.matched_filter, когда отчёт начинает совпадать с теми же фильтрами, что и POST /v1/reports/search. Курсор стартует в момент подписки, поэтому старые строки не повторяются. Отчёт, который снова попал в фильтр после выхода из него, может сработать ещё раз.

Подписка

curl https://api.karma.domains/v1/webhooks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "filter",
    "url": "https://hooks.example.com/karma",
    "events": ["domain.matched_filter"],
    "bases": ["expired", "auctions"],
    "filter": { "karmascore_min": 60 }
  }'

Событие, которое вы получаете

{
  "id": "evt_example",
  "type": "domain.matched_filter",
  "version": "1",
  "subscription_id": "sub_example",
  "object": {
    "domain": "example.com",
    "report_id": "665f0example",
    "report_type": "expired"
  },
  "data": { "current": { "changed_at": 1710000000 } },
  "links": { "report": "https://karma.domains/app/reports/expired/report-665f0example/" }
}

Конкретный отчёт

kind=reports следит максимум за 100 отчётами. События аукциона покрывают цену, число ставок, скорое окончание и завершение. События заметки, тегов и избранного срабатывают только для аккаунта, который сделал изменение — другой аккаунт, следящий за тем же отчётом ради цены, их не получает. ending_soon_seconds нужен только если выбрано auction.ending_soon.

Подписка

curl https://api.karma.domains/v1/webhooks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "reports",
    "url": "https://hooks.example.com/karma",
    "events": ["auction.price_changed", "report.note_changed"],
    "reports": [{ "report_type": "auctions", "report_id": "665f0example" }]
  }'

Событие, которое вы получаете

{
  "id": "evt_example",
  "type": "auction.price_changed",
  "version": "1",
  "subscription_id": "sub_example",
  "object": {
    "domain": "example.com",
    "report_id": "665f0example",
    "report_type": "auctions"
  },
  "data": {
    "current": { "price": 120, "bid_count": 4 },
    "previous": { "price": 100, "bid_count": 3 },
    "changes": { "price_delta": 20, "bid_count_delta": 1 }
  }
}

Задачи пользователя

У kind=user нет фильтра и списка отчётов. usertask.created срабатывает один раз, когда задача сохранена. usertask.completed срабатывает один раз, когда она завершена. Промежуточный прогресс не отправляется. В теле — название задачи и число отчётов, а не каждый домен в задаче.

Подписка

curl https://api.karma.domains/v1/webhooks \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "user",
    "url": "https://hooks.example.com/karma",
    "events": ["usertask.created", "usertask.completed"]
  }'

Событие, которое вы получаете

{
  "id": "evt_example",
  "type": "usertask.completed",
  "version": "1",
  "subscription_id": "sub_example",
  "object": {
    "task_id": "665f0task",
    "report_type": "expired"
  },
  "data": {
    "current": { "task_name": "French plumbing", "reports_count": 12 }
  }
}

Доставки подписываются по Standard Webhooks. Каждый POST содержит webhook-id, webhook-timestamp и webhook-signature. Секрет whsec_ приходит один раз — при создании и при смене секрета. Отправьте POST /v1/webhooks/{id}/ping, чтобы доставить webhook.ping и проверить URL.

Часто задаваемые вопросы

Это тот же ключ, что у Public API?

Да. Один ключ Pro из Профиль → Разработчику для REST, MCP и вебхуков. Создание и изменение подписок учитывается в общем лимите 60 запросов в минуту.

Какие лимиты у вебхуков?

30 подписок на аккаунт и 5 000 доставок за сутки UTC. После дневного потолка подписка переходит в quota_paused до следующих суток UTC. Подписку можно поставить на паузу самому через PATCH.

На какие события можно подписаться?

kind=filter принимает только domain.matched_filter. kind=reports принимает auction.price_changed, auction.bid_count_changed, auction.ending_soon, auction.ended, report.note_changed, report.tags_changed и report.favorite_changed. kind=user принимает usertask.created и usertask.completed.

Почему в событии нет Majestic (или другой метрики)?

Данные отчёта приходят в фоне, не одним пакетом. Фильтр, который не требует метрику, может сработать до того, как она появится. Отчёт с низким приоритетом может так и не получить её.

Нужно ли указывать обязательную метрику в фильтре?

Да, если нужны только отчёты, где она уже есть. Это сужает выборку и может задержать событие, пока метрика не соберётся. Для просроченных доменов задержка важна — имя может уйти из ленты, пока вы ждёте. Если нужен самый ранний сигнал, не включайте метрику в фильтр и проверьте её после POST.

В каком порядке обычно появляются метрики?

Сначала данные аукциона, затем Karma Metric, затем Karma Score и контент из архива, затем SEO-метрики (Majestic, Moz, Ahrefs и остальные), затем данные Google. Фиксированного ожидания нет. Более поздний шаг может быть пропущен.

События заметки и избранного приходят всем, кто следит за отчётом?

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

Где схема запроса?

Типы и консоль try-it — в Swagger UI. Страница Public API описывает поиск, отчёты и остальной REST.

Тот же инвентарь, что в приложении — на ваш URL

Зарегистрируйте HTTPS-адрес и начните получать события

Один ключ Pro. 30 подписок. 5 000 доставок в день.

Pro Нужен тариф
30 Подписок
5 000 Доставок в день
Получить API-ключ

Хотите забирать данные сами? Смотрите Public API

Удобнее чат? Смотрите MCP-сервер