Webhooks para dominios caducados

Webhooks de Expired Domains que hacen POST cuando un dominio coincide — o se mueve un precio

Suscríbete con la misma clave Pro que la Public API. Karma.Domains envía un evento JSON firmado a Zapier, Make, n8n, IFTTT o cualquier URL HTTPS pública cuando un filtro coincide, cambia una subasta o actualizas una nota, un favorito o una tarea de usuario.

30 Suscripciones
5.000 Entregas al día
3 Tipos de suscripción
60/min Límite de tasa compartido
Preguntar a la IA
  • ChatGPT
  • Claude
  • Gemini
  • Grok
  • Perplexity

Conecta Zapier, Make, n8n o IFTTT

Crea un disparador de webhook en tu herramienta, copia su URL HTTPS y regístrala con POST /v1/webhooks. La misma llamada sirve para cada cliente — solo cambia la URL.

Requiere el plan Pro o superior. Crea o restablece la clave en Perfil → Desarrollador. Trátala como una contraseña.

Suscripciones 30 por cuenta
Entregas 5.000 por día UTC
Límite de tasa 60 peticiones/minuto por clave (compartido con la Public API y MCP)

Zapier — Webhooks by Zapier, Catch Hook

  1. Crea un Zap y elige Webhooks by Zapier como disparador. Selecciona Catch Hook.
  2. Copia la URL HTTPS del webhook que muestra Zapier.
  3. Envía POST /v1/webhooks con tu clave Pro, esa URL, un kind y los eventos que quieras. Prueba el Zap después de la primera 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 }
  }'

Tres formas de suscribirse

Un evento es un informe, salvo los eventos de tarea de usuario, que son un evento por tarea. El secreto solo se devuelve al crear la suscripción o al rotarlo.

Coincidencia de filtro

kind=filter envía domain.matched_filter cuando un informe empieza a coincidir con los mismos filtros que POST /v1/reports/search. El cursor empieza al suscribirte, así que las filas antiguas no se repiten. Un informe que vuelve a coincidir después de salir del filtro puede dispararse otra vez.

Suscribirse

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 recibes

{
  "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 informe concreto

kind=reports vigila hasta 100 informes. Los eventos de subasta cubren precio, número de pujas, fin próximo y finalizada. Los eventos de nota, etiqueta y favorito solo se disparan para la cuenta que hizo el cambio — otra cuenta que vigila el mismo informe por el precio no los recibe. ending_soon_seconds solo es obligatorio si seleccionas auction.ending_soon.

Suscribirse

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 recibes

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

Tareas de usuario

kind=user no tiene filtro ni lista de informes. usertask.created se dispara una vez cuando se guarda una tarea. usertask.completed se dispara una vez cuando termina. No se envían ticks de progreso. El payload nombra la tarea y el número de informes — no cada dominio de la tarea.

Suscribirse

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 recibes

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

Las entregas se firman con Standard Webhooks. Cada POST incluye webhook-id, webhook-timestamp y webhook-signature. El secreto whsec_ vuelve una sola vez, al crear y al rotar. Envía POST /v1/webhooks/{id}/ping para entregar un webhook.ping y confirmar la URL.

Preguntas frecuentes

¿Es la misma clave que la Public API?

Sí. Una clave Pro de Perfil → Desarrollador para REST, MCP y webhooks. Crear y actualizar suscripciones cuenta para las 60 peticiones por minuto compartidas.

¿Cuáles son los límites de los webhooks?

30 suscripciones por cuenta y 5.000 entregas por día UTC. Pasado el tope diario, la suscripción pasa a quota_paused hasta el siguiente día UTC. Puedes pausar una suscripción tú mismo con PATCH.

¿A qué eventos puedo suscribirme?

kind=filter solo acepta domain.matched_filter. kind=reports acepta auction.price_changed, auction.bid_count_changed, auction.ending_soon, auction.ended, report.note_changed, report.tags_changed y report.favorite_changed. kind=user acepta usertask.created y usertask.completed.

¿Por qué falta Majestic (u otra métrica) en el evento?

Los datos del informe llegan en segundo plano, no de una vez. Un filtro que no exige una métrica puede coincidir antes de que exista. Un informe de baja prioridad puede no recibirla nunca.

¿Debo poner una métrica obligatoria en el filtro?

Sí, si solo quieres informes que ya la tengan. Eso reduce el conjunto y puede retrasar el evento hasta que se recoja la métrica. En dominios caducados el retraso importa — el nombre puede salir del feed mientras esperas. Si necesitas la señal más temprana, deja la métrica fuera y compruébala después del POST.

¿En qué orden suelen aparecer las métricas?

Primero los datos de subasta, luego Karma Metric, luego Karma Score y el contenido de archivo, luego las métricas SEO (Majestic, Moz, Ahrefs y el resto), luego los datos de Google. No hay una espera fija. Un paso posterior se puede saltar.

¿Los eventos de nota y favorito llegan a todos los que vigilan ese informe?

No. Esos eventos solo van a las suscripciones de la cuenta que cambió la nota, las etiquetas o el favorito. Una vigilancia del mismo informe para el precio se queda en los eventos de subasta.

¿Dónde está el esquema de la petición?

Los tipos y una consola try-it están en Swagger UI. La página Public API cubre la búsqueda, los informes y el resto de REST.

El mismo inventario que la app — enviado a tu URL

Registra un endpoint HTTPS y empieza a recibir eventos

Una clave Pro. 30 suscripciones. 5.000 entregas al día.

Pro Plan necesario
30 Suscripciones
5.000 Entregas al día
Obtener API key

¿Prefieres tirar de los datos tú? Ver la Public API

¿Prefieres el chat? Ver el servidor MCP