Skip to content

Export Report CSV

Download a report as CSV.

GET/api/v1/analytics/reports/export

Requires 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.

The file is streamed as it is built. The activity type has one row per event and stops at 100,000 rows.

Query Parameters#

typestringquery
summary, daily, campaigns, steps, accounts or activity. Default campaigns.
startstringquery
First day, YYYY-MM-DD. Defaults to 30 days before end.
endstringquery
Last day, YYYY-MM-DD. Defaults to today in the key owner's timezone. A range is at most 365 days.
campaignIdsstringquery
Comma-separated campaign ids to include.
accountIdsstringquery
Comma-separated email account ids to include.

Response#

Returns text/csv with a Content-Disposition filename such as foxreach-campaigns-2026-10-01-to-2026-10-31.csv.

Errors#

StatusDescription
401Missing, invalid, revoked or expired API key
403API key does not have the required scope: read
400start is after end, or the range is longer than 365 days
404A campaign or account id is not in this workspace
422type is not one of the listed values

Rate Limit#

  • 100 requests per minute, shared by every bulk call in your workspace. Fixed 60-second window.
  • Every response includes X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset (unix epoch seconds) and X-RateLimit-Bucket (bulk).
  • A 429 response includes a Retry-After header (seconds until the bucket resets).

For client-side patterns, see Rate Limiting.

Was this page helpful?
View as MarkdownLast updated November 4, 2026