Skip to main content

Endpoint

GET /v1/events

Headers

HeaderValor
X-API-KeyTu API key

Parámetros de consulta

ParámetroTipoRequeridoDescripción
fromstring (fecha)Fecha inicial, formato YYYY-MM-DD
tostring (fecha)Fecha final, formato YYYY-MM-DD
channelstringNoFiltrar por canal: email o whatsapp
event_typestringNoFiltrar por tipo: sent, delivered, read, opened, clicked, bounced, failed
limitintegerNoEventos por página. Default 100, máximo 500
cursorintegerNoCursor de paginación (ver abajo). Omitir en la primera página

Paginación por cursor

Los resultados se ordenan de más reciente a más antiguo. Cada respuesta incluye has_more y next_cursor:
# Primera página
curl "https://comms.panzo.mx/v1/events?from=2026-03-01&to=2026-03-31&limit=100" \
  -H "X-API-Key: TU_API_KEY"
{
  "events": [ ... ],
  "has_more": true,
  "next_cursor": 8500
}
# Siguiente página — pasar el next_cursor como cursor
curl "https://comms.panzo.mx/v1/events?from=2026-03-01&to=2026-03-31&limit=100&cursor=8500" \
  -H "X-API-Key: TU_API_KEY"
{
  "events": [ ... ],
  "has_more": false,
  "next_cursor": 0
}
Continúa hasta que has_more sea false.

Respuesta

{
  "events": [
    {
      "event_id": 9000,
      "job_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "channel": "whatsapp",
      "event_type": "delivered",
      "result": {},
      "created_at": "2026-03-30T10:00:05Z"
    },
    {
      "event_id": 8999,
      "job_id": "3fa85f64-5717-4562-b3fc-2c963f66afa6",
      "channel": "whatsapp",
      "event_type": "sent",
      "result": {},
      "created_at": "2026-03-30T10:00:00Z"
    }
  ],
  "has_more": true,
  "next_cursor": 8999
}

Límites y restricciones

from y to son obligatorios. Las consultas sin rango de fechas son rechazadas.
RestricciónLímite
Ventana máxima por request31 días
Eventos por página500 máximo
Rate limit (plan free)100 req/min
Rate limit (plan pro)1 000 req/min
Para exportar más de 31 días, divide en múltiples llamados:
# Mes 1
GET /v1/events?from=2026-01-01&to=2026-01-31

# Mes 2
GET /v1/events?from=2026-02-01&to=2026-02-28

Errores

CódigoCausa
400Falta from o to, rango mayor a 31 días, o formato de fecha inválido
401API key inválida
500Error interno

Ejemplo: exportar todos los envíos de email de marzo

#!/bin/bash
CURSOR=0
PAGE=1

while true; do
  URL="https://comms.panzo.mx/v1/events?from=2026-03-01&to=2026-03-31&channel=email&limit=500"
  if [ "$CURSOR" -gt 0 ]; then
    URL="${URL}&cursor=${CURSOR}"
  fi

  RESPONSE=$(curl -s "$URL" -H "X-API-Key: TU_API_KEY")
  echo "$RESPONSE" >> eventos_marzo.jsonl

  HAS_MORE=$(echo "$RESPONSE" | jq -r '.has_more')
  CURSOR=$(echo "$RESPONSE" | jq -r '.next_cursor')

  echo "Página $PAGE descargada. has_more=$HAS_MORE"
  PAGE=$((PAGE + 1))

  if [ "$HAS_MORE" = "false" ]; then
    break
  fi
done