Monitorización y automatización

API de alertas webhook

Envía alertas de la lista de seguimiento, de cambios de dominio y de monitorización de marca a tus propios endpoints HTTPS como JSON firmado. Elige los eventos que recibe cada endpoint, verifica cada solicitud con HMAC-SHA256 y paga solo por las alertas que tu endpoint acepta.

Categoría Monitorización y automatización
Endpoints 7
Características principales 6
Preguntas frecuentes 6

Utilizado por personas en estas empresas

InstantOutseerMongoDBRespondentSage Expense ManagementInstantlyD.R. HortonWhatConvertsAdobeLLM Pulse

Señales de confianza antes de integrar

Documentación transparente, solicitudes autenticadas y detalles visibles de fiabilidad facilitan evaluar DomScan antes de publicar.

En directo Estado del servicio

Consulta el estado del servicio en directo y las respuestas de error documentadas antes de integrar la API.

OpenAPI Artefactos de API

OpenAPI, Swagger, Postman, CLI, SDK y enlaces MCP están a un clic.

Claves API Acceso protegido

Los endpoints autenticados usan claves API con costes de créditos claros antes de llamarlos.

10,000 Créditos gratuitos

Empieza con 10.000 créditos mensuales y actualiza solo cuando crezca el uso.

Qué te ayuda a lanzar esta API

Usa esta página como un resumen de producción: endpoints, ejemplos, forma de respuesta y piezas de flujo necesarias para integrar DomScan en tu producto.

Flujos de producto

Integra comprobaciones de dominios, inteligencia DNS, señales de riesgo o enriquecimiento en onboarding, búsqueda y herramientas internas.

Automatización de analistas

Sustituye consultas manuales repetidas por tareas programadas, alertas y pasos de investigación reproducibles.

Datos JSON limpios

Usa campos previsibles, códigos de estado documentados y costes de créditos en lugar de raspar páginas de proveedores.

IA y operaciones

Alimenta agentes, paneles, playbooks SOAR y CRMs mediante OpenAPI, SDK, Postman o MCP.

Flujo de integración

Un camino simple desde la primera solicitud hasta un uso repetible en producción.

1
Autentica una vez

Envía tu clave API con la cabecera documentada y mantén solicitudes coherentes entre servicios.

2
Consulta con ejemplos

Empieza con las muestras curl y HTTP, y luego mapea los parámetros en el código de tu aplicación.

3
Opera y monitoriza

Usa códigos de estado, costes de créditos y campos de respuesta para crear reintentos, logs y alertas.

Kit para desarrolladores

Salta desde esta página a documentación legible por máquinas, colecciones de solicitudes, SDKs o herramientas para agentes.

Mapa de parámetros y respuesta

Revisa entradas, campos de salida y códigos de estado antes de conectar el endpoint a tu cliente.

Parámetros de solicitud

Parámetro

urldescriptioneventsenabledwebhook_idlimit
Campos de respuesta

Respuesta de ejemplo

endpointendpoint.idendpoint.urlendpoint.eventsendpoint.statusendpoint.disabled_reasonendpoint.consecutive_failuresendpoint.secret_hintendpoint.previous_secret_expires_atsecret
Cobertura de estados

Códigos de estado HTTP

200201400401409429

Endpoints

POST /v1/webhooks
Créditos: 0Autenticación: Autenticación requerida
urldescriptionevents
GET /v1/webhooks
Créditos: 0Autenticación: Autenticación requerida
PATCH /v1/webhooks/:webhook_id
Créditos: 0Autenticación: Autenticación requerida
enabledeventsdescription
POST /v1/webhooks/:webhook_id/rotate-secret
Créditos: 0Autenticación: Autenticación requerida
POST /v1/webhooks/:webhook_id/test
Créditos: 0Autenticación: Autenticación requerida
GET /v1/webhooks/:webhook_id/deliveries
Créditos: 0Autenticación: Autenticación requerida
limit
DELETE /v1/webhooks/:webhook_id
Créditos: 0Autenticación: Autenticación requerida

Verifica cada alerta

Usa el cuerpo de la solicitud sin procesar, exactamente como lo recibes. El encabezado contiene una firma, o dos durante una rotación de secreto. Acepta la solicitud cuando cualquiera de las firmas coincida.

import crypto from 'node:crypto';

// rawBody: the request body exactly as received, before JSON parsing.
function verifyDomScanWebhook(rawBody, headers, secret) {
  const timestamp = headers['x-domscan-timestamp'];
  const header = headers['x-domscan-signature'] || '';
  if (!/^\d{10}$/.test(timestamp || '')) return false;
  if (Math.abs(Date.now() / 1000 - Number(timestamp)) > 300) return false;
  const expected = Buffer.from('sha256=' + crypto
    .createHmac('sha256', secret)
    .update(timestamp + '.' + rawBody)
    .digest('hex'));
  // One entry normally; two during a secret rotation (new secret first).
  return header.split(',').some((entry) => {
    const candidate = Buffer.from(entry.trim());
    return candidate.length === expected.length &&
      crypto.timingSafeEqual(candidate, expected);
  });
}

Rota secretos con 24 horas de margen

Al rotar se devuelve un nuevo secreto, una sola vez. Hasta que termine el periodo de gracia, cada alerta se firma primero con el secreto nuevo y después con el anterior, así que los receptores que aún usan el secreto antiguo siguen funcionando.

X-DomScan-Signature: sha256=<new>,sha256=<previous>

Señales de confianza antes de integrar

Documentación transparente, solicitudes autenticadas y detalles visibles de fiabilidad facilitan evaluar DomScan antes de publicar.

En directo Estado del servicio

Consulta el estado del servicio en directo y las respuestas de error documentadas antes de integrar la API.

OpenAPI Artefactos de API

OpenAPI, Swagger, Postman, CLI, SDK y enlaces MCP están a un clic.

Claves API Acceso protegido

Los endpoints autenticados usan claves API con costes de créditos claros antes de llamarlos.

10,000 Créditos gratuitos

Empieza con 10.000 créditos mensuales y actualiza solo cuando crezca el uso.

Características principales

Solicitudes firmadas

Cada alerta lleva una firma HMAC-SHA256 calculada sobre una marca de tiempo y el cuerpo sin procesar, para que tu receptor pueda rechazar solicitudes falsificadas y repetidas.

Elige tus eventos

Suscribe cada endpoint a alertas de disponibilidad, caducidad, estado, DNS, certificados, registro, alojamiento, tecnología, seguridad del correo o amenazas de marca, o a todas ellas.

Reintentos con ID de evento estables

Las entregas fallidas se reintentan con retrasos crecientes, hasta 6 intentos. Cada reintento repite el mismo ID de evento, así que puedes ignorar las alertas que ya procesaste.

Paga solo las alertas entregadas

Una alerta cuesta 2 créditos solo cuando tu endpoint responde con un estado 2xx. Las entregas fallidas se reembolsan, y los eventos de prueba y la rotación de secretos son gratuitos.

Pausa automática con aviso por correo

Un endpoint que sigue fallando se pausa y recibes un correo con el host del endpoint y el último error. Actívalo de nuevo cuando esté arreglado y el contador de fallos empieza de cero.

Rotación de secretos sin interrupciones

Rota un secreto de firma en cualquier momento. Durante 24 horas, cada alerta se firma con el secreto nuevo y con el anterior, así que puedes cambiar de receptor sin perder alertas.

Solicitud de ejemplo

POST /v1/webhooks bash
curl -X POST "https://domscan.net/v1/webhooks" \
  -H "X-API-Key: $DOMSCAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"url":"https://hooks.example.com/domscan","events":["domain.expiring_30","domain.available","domain.dns_changed"]}'
POST /v1/webhooks/:webhook_id/rotate-secret bash
curl -X POST "https://domscan.net/v1/webhooks/whe_3f1c0a9b8e7d6c5b4a39281706f5e4d3/rotate-secret" \
  -H "X-API-Key: $DOMSCAN_API_KEY"
PATCH /v1/webhooks/:webhook_id bash
curl -X PATCH "https://domscan.net/v1/webhooks/whe_3f1c0a9b8e7d6c5b4a39281706f5e4d3" \
  -H "X-API-Key: $DOMSCAN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"enabled":true}'

Respuesta de ejemplo

200 OK json
{
  "endpoint": {
    "id": "whe_3f1c0a9b8e7d6c5b4a39281706f5e4d3",
    "url": "https://hooks.example.com/domscan",
    "events": ["domain.available", "domain.expiring_30", "domain.dns_changed"],
    "status": "active",
    "disabled_reason": null,
    "consecutive_failures": 0,
    "secret_hint": "9c2e",
    "previous_secret_expires_at": null
  },
  "secret": "whsec_..."
}

Preguntas frecuentes

¿Qué alertas se pueden enviar a un webhook?

Cambios de disponibilidad, caducidad y estado de la lista de seguimiento, la monitorización de cambios de dominio en DNS, certificados, registro, alojamiento, tecnología y seguridad del correo, y dominios recién registrados que imitan una marca que monitorizas.

¿Cómo verifico que una solicitud viene de DomScan?

Calcula un HMAC-SHA256 del valor de X-DomScan-Timestamp, un punto y el cuerpo sin procesar con el secreto de tu endpoint, compáralo en tiempo constante con cada entrada de X-DomScan-Signature y rechaza las marcas de tiempo de más de 5 minutos.

¿Cuánto cuestan las alertas webhook?

Cada alerta entregada con una respuesta 2xx cuesta 2 créditos. Crear endpoints, los eventos de prueba y la rotación de secretos son gratuitos, y los créditos reservados para una entrega fallida se reembolsan.

¿Qué pasa cuando mi endpoint no responde?

Cada alerta se reintenta hasta 6 veces durante unas 6 horas. Tras 15 intentos fallidos consecutivos, el endpoint se pausa y recibes un correo. Actívalo de nuevo desde los ajustes de Monitor o desde la API para reanudar las entregas.

¿Cómo roto un secreto de firma de forma segura?

Llama al endpoint de rotación de secreto o usa los ajustes de Monitor. El nuevo secreto se muestra una sola vez y, durante 24 horas, cada alerta lleva las firmas de ambos secretos, así que tu receptor puede aceptar cualquiera mientras despliegas el cambio.

¿Puedo recibir la misma alerta dos veces?

Un reintento puede llegar después de que tu endpoint ya haya gestionado la alerta, por ejemplo tras un tiempo de espera agotado. Cada reintento repite el ID de evento en el cuerpo y en X-DomScan-Event-Id, así que guarda los ID procesados y omite los duplicados.

Herramientas y recursos relacionados

Códigos de estado HTTP

Documentamos los códigos de estado HTTP que debes gestionar para distinguir respuestas correctas, problemas de autenticación o créditos, límites de frecuencia, datos inexistentes y fallos del servicio de origen.

OK 200

Solicitud correcta

Creado 201

Recurso creado correctamente.

Solicitud incorrecta 400

Parámetros no válidos

No autorizado 401

Clave de API o sesión ausente o no válida.

HTTP 409 409

Documentamos los códigos de estado HTTP que debes gestionar para distinguir respuestas correctas, problemas de autenticación o créditos, límites de frecuencia, datos inexistentes y fallos del servicio de origen.

Demasiadas solicitudes 429

Límite de frecuencia superado

Añade tu primer endpoint de webhook