Campaign Performance Analytics
The Analytics API exposes campaign performance statistics, date-grained trends, report read models, lead-level rollups, and lead activity using your Organization API Key.
Lifetime campaign totals
Use GET /api/v1/campaigns/{campaign_id}/analytics for the existing no-date-filter campaign summary.
Date-scoped campaign trends
Query /analytics/timeseries?filter[start_date]=2026-05-01&filter[end_date]=2026-05-31&granularity=week.
Organization scoped
Read account-level totals with GET /api/v1/analytics/overview?filter[start_date]=2026-05-01&filter[end_date]=2026-05-31.
Sequence and lead detail
Use /analytics/sequence?filter[start_date]=2026-05-01&filter[end_date]=2026-05-31&granularity=week to compare stable subject revisions within each shared body, and lifetime /analytics/leads for lead detail.
Report read models
Use GET /api/v1/reports/summary, /reports/deliverability, /reports/volume, and /reports/stocks for the same reporting data shown in the web UI.
Send timeline projection
Use GET /api/v1/campaigns/{campaign_id}/send-timeline to retrieve the campaign send projection shown in the campaign editor, including estimated completion instants in the campaign timezone when the underlying send evidence is precise.
Base URL and Authentication
All requests use the standard bearer token header.
https://beam.lightmeter.io
Authorization: Bearer your_api_key_here
Date-Scoped Example Request
GET
/api/v1/campaigns/{campaign_id}/analytics/timeseries?filter[start_date]=2026-05-01&filter[end_date]=2026-05-31&granularity=week
curl -X GET "https://beam.lightmeter.io/api/v1/campaigns/4ed5a7d2-320c-445e-a16c-7ab932bc259a/analytics/timeseries?filter[start_date]=2026-05-01&filter[end_date]=2026-05-31&granularity=week" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json"
Reply Metric Semantics
The API exposes the combined End-autoreply response signal and its human-reply component.
- reply_rate remains human-only.
- end_autoreply_count and end_autoreply_rate combine human responders with automated non-bounce-only responders, counting each sender once.
- Sender-level precedence applies internally: a later human reply moves the sender from the automated-only component into
reply_rate without changing the combined End-autoreply total.
- Both rates use the same deliverable-leads proxy denominator:
leads_contacted - all_bounces.
- Subject metrics are directional evidence for deciding what to enable, disable, or revise. Read rates together with their absolute counts and comparable sending conditions.
Workspace Report Example Request
GET
/api/v1/reports/deliverability?filter[start_date]=2026-05-01&filter[end_date]=2026-05-31
curl -X GET "/api/v1/reports/deliverability?filter[start_date]=2026-05-01&filter[end_date]=2026-05-31" \
-H "Authorization: Bearer your_api_key_here" \
-H "Content-Type: application/json"