Skip to main content
Consulta el estado de los emails enviados — entregas, aperturas, clicks, rebotes y reclamos — por ID o con filtros.

Autenticacion

Incluye tu API key del proyecto en cada request:
Sin una API key válida, la respuesta es 401 con { "error": "..." }. Ver más en Public API.

Endpoints

GET /v1/activity/:id

Obtén el detalle de un envío específico por su ID. Parámetros: Request:
Respuesta 200 OK
Campos: Estados posibles de current_status: Con ?include=events — agrega un array events con el timeline completo, ordenado por event_timestamp ascendente:
event_type puede ser: sent, delivered, bounce, complaint, reject, open, click, rendering_failure, delivery_delay. Con ?include=html — agrega el campo html_content con el HTML completo renderizado del email (puede ser grande, solo pedirlo cuando se necesite). Errores: Las respuestas de error tienen la forma { "error": "mensaje" }.

GET /v1/activity

Lista envíos con filtros para obtener datasets históricos y analizar patrones de entrega. Parámetros (query): Caso típico con automation_run_id: guarda el automation_run_id que devuelve POST /v1/automations/:id/enroll. Cuando el flujo haya ejecutado N emails, obtén todos filtrando por ese ID. Caso típico con sender_domain: si envías en nombre de varios clientes desde un mismo proyecto, este filtro aísla los envíos de uno solo. Es la vía para depurar “¿qué pasó con los emails de este cliente?” sin separarlos en proyectos distintos.
sender_domain matchea el dominio completo, no un prefijo: filtrar por acme.com no devuelve envíos de acme.com.mx. Un valor que no sea un dominio válido devuelve 400 INVALID_SENDER_DOMAIN.
Request:
Filtrar por automation_run_id:
Los rebotes de un cliente concreto, útil cuando envías en nombre de varios:
Respuesta 200 OK
Cada elemento de data incluye los mismos campos base que GET /v1/activity/:id (aquí abreviados). Orden por created_at DESC (más reciente primero). Errores: Las respuestas de error tienen la forma { "error": "mensaje" }.

Pull vs Webhook

  • Pull (este endpoint): consultas cuando lo necesites. Simple de integrar, pero con latencia — las aperturas y clicks se procesan en segundo plano y pueden tardar unos segundos (~5s) en reflejarse en opened_first_at / clicked_first_at y en el timeline de eventos.
  • Webhook: eventos push en tiempo real. Mejor para triggers reactivos.
Para analizar patrones de entrega en batch, usa pull. Para automatizaciones reactivas en tiempo real, usa webhooks. Ver más en Webhooks.

GET /v1/domain-stats

Métricas agregadas por dominio del remitente. Si envías en nombre de varios clientes desde un mismo proyecto, este endpoint te da el resumen de cada uno: GET /v1/activity?sender_domain= lista los envíos uno a uno, esto los agrega. Parámetros (query): Request:
Response:
Campos de la respuesta:
Mira hard_bounce_rate, no el total de rebotes. Los proveedores de email calculan el umbral de suspensión (habitualmente 5%) sobre los rebotes permanentes. Los temporales no cuentan, y confundirlos lleva a alarmas falsas: un dominio puede mostrar 12% de rebote total y estar por debajo del 1% de hard bounce.Si hard_bounce_rate supera el 3% de forma sostenida, revisa la calidad de esa lista antes de seguir enviando.

Rate limits

  • Max 200 resultados por página en GET /v1/activity (per_page mayor a 200 se ajusta a 200).
  • GET /v1/domain-stats agrega sobre el período pedido; rangos muy largos tardan más.