Campaign Steps
One campaign's results per sequence step and variant.
GET
https://api.foxreach.io/ api/ v1/ analytics/ campaigns/{campaign_id}/ stepsRequires an API key with the read scope.
Counts follow the Reports page: a bounced email counts as sent, replies are distinct leads, and replies from bounce, warmup and unrelated mail are left out. Days are bucketed in the timezone of the user who created the API key.
These are the Reports numbers narrowed to one campaign. The campaign totals endpoint counts differently (from the campaign's lifetime counters), so the two can disagree.
Path Parameters#
campaign_idstringpathrequiredThe campaign id.
Query Parameters#
startstringqueryFirst day,
YYYY-MM-DD. Defaults to 30 days before end.endstringqueryLast day,
YYYY-MM-DD. Defaults to today in the key owner's timezone. A range is at most 365 days.Response#
dataobjectShow data
rangeobjectstart, end and the timezone used to bucket days.stepsarrayOne row per step and variant with
step, stepName, variant and the counters.Errors#
| Status | Description |
|---|---|
401 | Missing, invalid, revoked or expired API key |
403 | API key does not have the required scope: read |
400 | start is after end, or the range is longer than 365 days |
404 | Campaign not found: the campaign does not exist in this workspace |
Rate Limit#
- 300 requests per minute, shared by every
readcall in your workspace. Fixed 60-second window. - Every response includes
X-RateLimit-Limit,X-RateLimit-Remaining,X-RateLimit-Reset(unix epoch seconds) andX-RateLimit-Bucket(read). - A
429response includes aRetry-Afterheader (seconds until the bucket resets).
For client-side patterns, see Rate Limiting.
Was this page helpful?
View as MarkdownLast updated November 4, 2026