Webhooks para domínios expirados

Webhooks de Expired Domains que fazem POST quando um domínio corresponde — ou um preço se move

Subscreva com a mesma chave Pro da Public API. A Karma.Domains envia um evento JSON assinado para o Zapier, Make, n8n, IFTTT ou qualquer URL HTTPS pública quando um filtro corresponde, um leilão muda ou atualiza uma nota, um favorito ou uma tarefa de utilizador.

30 Subscrições
5.000 Entregas por dia
3 Tipos de subscrição
60/min Limite de taxa partilhado
Perguntar à IA
  • ChatGPT
  • Claude
  • Gemini
  • Grok
  • Perplexity

Ligue o Zapier, Make, n8n ou IFTTT

Crie um gatilho de webhook na sua ferramenta, copie o URL HTTPS e registe-o com POST /v1/webhooks. A mesma chamada serve para cada cliente — só muda o URL.

Requer o plano Pro ou superior. Crie ou reponha a chave em Perfil → Desenvolvedor. Trate-a como uma palavra-passe.

Subscrições 30 por conta
Entregas 5.000 por dia UTC
Limite de taxa 60 pedidos/minuto por chave (partilhado com a Public API e o MCP)

Zapier — Webhooks by Zapier, Catch Hook

  1. Crie um Zap e escolha Webhooks by Zapier como gatilho. Selecione Catch Hook.
  2. Copie o URL HTTPS do webhook que o Zapier mostra.
  3. Envie POST /v1/webhooks com a sua chave Pro, esse URL, um kind e os eventos que quer. Teste o Zap depois da primeira entrega.
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 }
  }'

Três formas de subscrever

Um evento é um relatório, exceto os eventos de tarefa de utilizador, que são um evento por tarefa. O segredo só é devolvido quando cria a subscrição ou o roda.

Correspondência de filtro

kind=filter envia domain.matched_filter quando um relatório começa a corresponder aos mesmos filtros que POST /v1/reports/search. O cursor começa na subscrição, por isso as linhas antigas não são repetidas. Um relatório que volta a corresponder depois de sair do filtro pode disparar outra vez.

Subscrever

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

Evento que recebe

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

Um relatório específico

kind=reports observa até 100 relatórios. Os eventos de leilão cobrem preço, número de licitações, a terminar e terminado. Os eventos de nota, tag e favorito só disparam para a conta que fez a alteração — outra conta a observar o mesmo relatório pelo preço não os recebe. ending_soon_seconds só é obrigatório se selecionar auction.ending_soon.

Subscrever

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

Evento que recebe

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

Tarefas de utilizador

kind=user não tem filtro nem lista de relatórios. usertask.created dispara uma vez quando uma tarefa é guardada. usertask.completed dispara uma vez quando termina. Os ticks de progresso não são enviados. O payload nomeia a tarefa e a contagem de relatórios — não cada domínio da tarefa.

Subscrever

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

Evento que recebe

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

As entregas são assinadas com Standard Webhooks. Cada POST inclui webhook-id, webhook-timestamp e webhook-signature. O segredo whsec_ volta uma vez, na criação e na rotação. Envie POST /v1/webhooks/{id}/ping para entregar um webhook.ping e confirmar o URL.

Perguntas frequentes

É a mesma chave da Public API?

Sim. Uma chave Pro de Perfil → Desenvolvedor para REST, MCP e webhooks. Criar e atualizar subscrições conta no limite partilhado de 60 pedidos por minuto.

Quais são os limites dos webhooks?

30 subscrições por conta e 5.000 entregas por dia UTC. Acima do teto diário, a subscrição fica quota_paused até ao dia UTC seguinte. Pode pausar uma subscrição com PATCH.

A que eventos posso subscrever?

kind=filter só aceita domain.matched_filter. kind=reports aceita auction.price_changed, auction.bid_count_changed, auction.ending_soon, auction.ended, report.note_changed, report.tags_changed e report.favorite_changed. kind=user aceita usertask.created e usertask.completed.

Porque é que o Majestic (ou outra métrica) falta no evento?

Os dados do relatório chegam em segundo plano, não de uma vez. Um filtro que não exige uma métrica pode corresponder antes de ela existir. Um relatório de baixa prioridade pode nunca a receber.

Devo pôr uma métrica obrigatória no filtro?

Sim, se só quiser relatórios que já a tenham. Isso reduz o conjunto e pode atrasar o evento até a métrica ser recolhida. Em domínios expirados o atraso importa — o nome pode sair do feed enquanto espera. Se precisar do sinal mais cedo, deixe a métrica de fora e verifique-a depois do POST.

Por que ordem é que as métricas costumam aparecer?

Primeiro os dados de leilão, depois Karma Metric, depois Karma Score e o conteúdo de arquivo, depois as métricas SEO (Majestic, Moz, Ahrefs e o resto), depois os dados do Google. Não há uma espera fixa. Um passo posterior pode ser saltado.

Os eventos de nota e favorito vão para todos os que observam esse relatório?

Não. Esses eventos só vão para as subscrições da conta que alterou a nota, as tags ou o favorito. Uma observação do mesmo relatório para o preço fica nos eventos de leilão.

Onde está o esquema do pedido?

Os tipos e uma consola try-it estão no Swagger UI. A página Public API cobre a pesquisa, os relatórios e o resto do REST.

O mesmo inventário da app — enviado para o seu URL

Registe um endpoint HTTPS e comece a receber eventos

Uma chave Pro. 30 subscrições. 5.000 entregas por dia.

Pro Plano necessário
30 Subscrições
5.000 Entregas por dia
Obter API key

Prefere ir buscar os dados? Ver a Public API

Prefere o chat? Ver o servidor MCP