Consultar el historial completo de eventos de una campaña puntual (envíos, aperturas, clics, reportes, credenciales comprometidas, etc.) desde tus propios sistemas: reporting, dashboards internos, integraciones con tu SIEM.
Para el listado de campañas con sus estadísticas agregadas, ver API de Campañas. Este artículo cubre únicamente el detalle evento por evento de una campaña puntual.
Base URL: todos los endpoints viven bajo el prefijo {{base_url}}/api/companies/v1.
Para obtener el host de producción (
base_url), contacta a tu representante de Whalemate o escríbenos a través del chat de soporte.
Autenticación: header X-API-KEY.
X-API-KEY: tu_api_key_de_empresa
Genera o consulta tu clave desde Configuración → Integraciones → tarjeta Claves API → Claves Activas. Detalle en Claves API: cómo generarlas, usarlas y revocarlas.
La compañía se resuelve automáticamente a partir de la API Key: no envías company_id, y el endpoint solo devuelve eventos de campañas que pertenecen a tu compañía.
Header | Valor | Obligatorio |
|---|---|---|
| Tu API Key de empresa | ✅ Sí |
|
| ✅ Sí |
GET {{base_url}}/api/companies/v1/campaigns/{id}/events
Devuelve el historial completo de eventos de una campaña puntual (sin paginar).
Param | Tipo | Descripción |
|---|---|---|
| integer | ID de la campaña (path param) |
Ejemplo Request: GET {{base_url}}/api/companies/v1/campaigns/88/events
Respuesta (200 OK):
{
"data": [
{
"id": 4567,
"date_time": "2026-03-05T09:15:32Z",
"type": "Clicked Link",
"ip": "192.168.1.45",
"user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36",
"victim": {
"id": 789,
"email": "[email protected]",
"first_name": "Juan",
"last_name": "Pérez",
"department": "Finanzas",
"position": "Analista Senior",
"country": "México"
}
}
]
}
Ordenados por date_time descendente. No incluye eventos de tipo Automatic Clicked (clics automáticos de escáneres de seguridad corporativos, no de la víctima), ni eventos posteriores al cierre de la campaña (closes_at) — el mismo recorte que aplican las estadísticas del listado en API de Campañas.
type puede ser cualquiera de: Email Sent, Failed, Clicked Link, Email Reported, Email Opened, Credential Harvesting, File Open, Download, Reported, Impersonated.
Respuesta de error (404) — la campaña no existe o no pertenece a tu compañía:
{
"message": "No query results for model [Src\\Domain\\Campaign\\Models\\Campaign]."
}
Código | Causa | Body |
|---|---|---|
| Falta |
|
| API Key inexistente/revocada |
|
| La campaña no existe o no pertenece a tu compañía |
|
curl -X GET "https://api.whalemate.io/api/companies/v1/campaigns/88/events" \
-H "X-API-KEY: tu_api_key_aqui" -H "Accept: application/json"
¿Viene paginado? No, se devuelven todos los eventos de la campaña de una vez.
¿Por qué no veo eventos de tipo Automatic Clicked? El endpoint los excluye a propósito: son clics automáticos de escáneres/proxies de seguridad corporativos, no de la víctima, y ensuciarían las analíticas.
¿En qué zona horaria vienen las fechas? En UTC, igual que el resto de la Company API.
¿Cómo consigo el id de la campaña? Con el listado de API de Campañas (GET /campaigns).
¿Dónde consigo mi API Key? En Configuración → Integraciones → tarjeta Claves API → Claves Activas.
¿Tienes feedback o quieres solicitar mejoras? Háznoslo saber en roadmap.whalemate.com/roadmap