Webhooks pour domaines expirés

Des webhooks Expired Domains qui envoient un POST quand un domaine correspond — ou qu'un prix bouge

Abonnez-vous avec la même clé Pro que la Public API. Karma.Domains envoie un événement JSON signé à Zapier, Make, n8n, IFTTT ou toute URL HTTPS publique quand un filtre correspond, qu'une enchère change, ou que vous mettez à jour une note, un favori ou une tâche utilisateur.

30 Abonnements
5 000 Livraisons par jour
3 Types d'abonnement
60/min Limite de débit partagée
Demander à l'IA
  • ChatGPT
  • Claude
  • Gemini
  • Grok
  • Perplexity

Connecter Zapier, Make, n8n ou IFTTT

Créez un déclencheur webhook dans votre outil, copiez son URL HTTPS et enregistrez-la avec POST /v1/webhooks. Le même appel fonctionne pour chaque client — seule l'URL change.

Nécessite le plan Pro ou supérieur. Créez ou réinitialisez la clé dans Profil → Développeur. Traitez-la comme un mot de passe.

Abonnements 30 par compte
Livraisons 5 000 par jour UTC
Limite de débit 60 requêtes/minute par clé (partagée avec la Public API et MCP)

Zapier — Webhooks by Zapier, Catch Hook

  1. Créez un Zap et choisissez Webhooks by Zapier comme déclencheur. Sélectionnez Catch Hook.
  2. Copiez l'URL HTTPS du webhook que Zapier affiche.
  3. Envoyez POST /v1/webhooks avec votre clé Pro, cette URL, un kind et les événements voulus. Testez le Zap après la première livraison.
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 }
  }'

Trois façons de s'abonner

Un événement correspond à un rapport, sauf les événements de tâche utilisateur, qui font un événement par tâche. Le secret n'est renvoyé qu'à la création de l'abonnement ou lors de sa rotation.

Correspondance de filtre

kind=filter envoie domain.matched_filter quand un rapport commence à correspondre aux mêmes filtres que POST /v1/reports/search. Le curseur démarre à l'abonnement, les anciennes lignes ne sont pas rejouées. Un rapport qui correspond de nouveau après avoir quitté le filtre peut se déclencher encore.

S'abonner

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 }
  }'

Événement reçu

{
  "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/" }
}

Un rapport précis

kind=reports surveille jusqu'à 100 rapports. Les événements d'enchère couvrent le prix, le nombre d'enchères, la fin proche et la fin. Les événements de note, de tag et de favori ne partent que pour le compte qui a fait le changement — un autre compte qui surveille le même rapport pour le prix ne les reçoit pas. ending_soon_seconds n'est requis que si vous sélectionnez auction.ending_soon.

S'abonner

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" }]
  }'

Événement reçu

{
  "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 }
  }
}

Tâches utilisateur

kind=user n'a ni filtre ni liste de rapports. usertask.created part une fois quand une tâche est enregistrée. usertask.completed part une fois quand elle se termine. Les ticks de progression ne sont pas envoyés. La payload nomme la tâche et le nombre de rapports — pas chaque domaine de la tâche.

S'abonner

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"]
  }'

Événement reçu

{
  "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 }
  }
}

Les livraisons sont signées avec Standard Webhooks. Chaque POST inclut webhook-id, webhook-timestamp et webhook-signature. Le secret whsec_ revient une seule fois, à la création et à la rotation. Envoyez POST /v1/webhooks/{id}/ping pour livrer un webhook.ping et confirmer l'URL.

Questions fréquentes

Est-ce la même clé que la Public API ?

Oui. Une clé Pro depuis Profil → Développeur pour REST, MCP et les webhooks. Créer et mettre à jour des abonnements compte dans les 60 requêtes par minute partagées.

Quelles sont les limites des webhooks ?

30 abonnements par compte et 5 000 livraisons par jour UTC. Au-delà du plafond quotidien, l'abonnement passe en quota_paused jusqu'au jour UTC suivant. Vous pouvez pauser un abonnement vous-même avec PATCH.

À quels événements puis-je m'abonner ?

kind=filter n'accepte que domain.matched_filter. kind=reports accepte auction.price_changed, auction.bid_count_changed, auction.ending_soon, auction.ended, report.note_changed, report.tags_changed et report.favorite_changed. kind=user accepte usertask.created et usertask.completed.

Pourquoi Majestic (ou une autre métrique) manque dans l'événement ?

Les données du rapport arrivent en arrière-plan, pas d'un seul coup. Un filtre qui n'exige pas une métrique peut correspondre avant qu'elle existe. Un rapport de faible priorité peut ne jamais la recevoir.

Faut-il mettre une métrique obligatoire dans le filtre ?

Oui, si vous ne voulez que les rapports qui l'ont déjà. Cela réduit l'ensemble et peut retarder l'événement jusqu'à la collecte de la métrique. Sur les domaines expirés, ce délai compte — le nom peut quitter le flux pendant que vous attendez. Si vous voulez le signal le plus tôt, laissez la métrique de côté et vérifiez-la après le POST.

Dans quel ordre les métriques apparaissent-elles d'habitude ?

D'abord les données d'enchère, puis Karma Metric, puis Karma Score et le contenu d'archive, puis les métriques SEO (Majestic, Moz, Ahrefs et le reste), puis les données Google. Il n'y a pas d'attente fixe. Une étape plus tardive peut être sautée.

Les événements de note et de favori vont-ils à tous ceux qui surveillent ce rapport ?

Non. Ces événements ne vont qu'aux abonnements du compte qui a changé la note, les tags ou le favori. Une surveillance du même rapport pour le prix reste sur les événements d'enchère.

Où est le schéma de requête ?

Les types et une console try-it sont dans Swagger UI. La page Public API couvre la recherche, les rapports et le reste de REST.

Le même inventaire que l'app — poussé vers votre URL

Enregistrez un endpoint HTTPS et commencez à recevoir des événements

Une clé Pro. 30 abonnements. 5 000 livraisons par jour.

Pro Plan requis
30 Abonnements
5 000 Livraisons par jour
Obtenir la clé API

Vous préférez tirer les données vous-même ? Voir la Public API

Vous préférez le chat ? Voir le serveur MCP