Skip to content

Export your analytics as CSV or JSON

GET
/v1/analytics/export

Generates one dataset, stores it for 15 minutes, and returns a time-limited download URL. The link carries a random id and needs no key, so treat it as the secret it is.

dataset is daily (one row per day), visitors (one row per person, the fullest export), goals, or any breakdown dimension: channel, referrer, utm_source, utm_medium, utm_campaign, path, country, city, device, browser, os.

Two things the answer tells you rather than leaving you to find out: truncated is true when a breakdown hit the 1,000-row cap, and the visitors dataset holds only visits that were allowed to carry a visitor id, so someone who refused cookies is in the totals but has no row.

Days older than 90 come from daily totals kept after raw events expire: from_rollups says when, and a breakdown then ends in an (other) row. The visitors dataset needs raw events and reaches back 90 days.

Auth: Secret key. Every plan can export. How far back you may read is your plan’s analytics history (Free 30 days, Indie 365, Builder 730), the same cap as every other analytics read; it is also the default.

Countries left out: the project’s saved excluded_countries (PATCH /v1/analytics/settings) are left out of this read, unless exclude_country names others (a comma list of two-letter codes, e.g. NO,CH; empty counts every country). The answer names the list it applied in excluded_countries. Past 90 days the totals, time series, goals, map and the country breakdown lose those countries (visits and page views exactly; engaged time, visits with ids, bounce, new visitors and goals in proportion, marked rollups.excluded_estimated; visitors become null); a breakdown or signups grouping by anything else answers ANALYTICS_RAW_EVENTS_ONLY with param: "exclude_country" when those countries had visits on those days.

dataset
string
default: daily
Allowed values: daily visitors goals channel referrer utm_source utm_medium utm_campaign path country city device browser os
format
string
default: csv
Allowed values: csv json
period_days
integer
>= 1

Defaults to the plan’s full history.

exclude_country
string
/^([A-Za-z][A-Za-z0-9](,[A-Za-z][A-Za-z0-9])*)?$/

Countries to leave out instead of the saved list, e.g. NO,CH; empty for none.

Export info with download_url valid for 15 minutes

Error envelope. See error.code for the discriminator.

object
data
required
null
error
required
object
code
required
string
message
required
string
remediation
required
string
doc_url
string format: uri
param
string
request_id
string
meta
object
key
additional properties

Error envelope. See error.code for the discriminator.

object
data
required
null
error
required
object
code
required
string
message
required
string
remediation
required
string
doc_url
string format: uri
param
string
request_id
string
meta
object
key
additional properties

Error envelope. See error.code for the discriminator.

object
data
required
null
error
required
object
code
required
string
message
required
string
remediation
required
string
doc_url
string format: uri
param
string
request_id
string
meta
object
key
additional properties