DocumentationAnalytics API

Analytics API

Aggregated open, click and bounce metrics over the REST API.

The analytics endpoints return aggregated send metrics for your tenant. They use the dashboard JWT session (tenant-scoped) — they are not exposed through API-key scopes.

All endpoints accept an optional ?days parameter (default 30, capped at 90) and exclude logs removed by retention.

Summary

GET /analytics/summary?days=30

Returns totals and rates over the period:

{
  "period": { "days": 30, "since": "...", "until": "..." },
  "totals": { "total": 0, "sent": 0, "opened": 0, "clicked": 0, "bounced": 0, "complained": 0, "failed": 0 },
  "rates": { "openRate": 0, "clickRate": 0, "bounceRate": 0, "complaintRate": 0 }
}

sent counts SENT + DELIVERED; rates are percentages rounded to one decimal.

Daily time series

GET /analytics/daily?days=30

Returns one zero-filled bucket per day, for charts:

{ "days": 30, "daily": [{ "date": "2026-07-01", "sent": 0, "opened": 0, "clicked": 0, "bounced": 0 }] }

Top templates

GET /analytics/top-templates?days=30

Returns the top 10 templates by send volume:

{ "top": [{ "id": "...", "name": "...", "subject": "...", "sent": 0, "opened": 0, "clicked": 0 }] }

See Email statuses for what each counter means.