Skip to main content
Read a site’s core analytics: timeseries, dimension breakdowns, goal conversions, Web Vitals, and the on-demand DETAILS drill-downs (locations, campaigns, pages). A site is addressed by {siteKey} (UUID or domain). All endpoints require Authorization: Bearer {token}. Every endpoint accepts the shared date range parameters (range, or from/to) and, unless noted otherwise, the shared dashboard filters as query parameters. Money fields (revenue, recurring_revenue, and their _new/_renewal/_refunds splits) follow the Conventions money contract — integers in minor units, never floats. The site’s Overview endpoint (topline metrics + previous-period delta) is documented in Sites — this page covers the deeper reads.

Timeseries

Per-bucket metrics across the resolved range, zero-filled for buckets with no matching events. Path parameters Query parametersdate range and filters only; no dimension-specific params. Response — a flat object: Status: 200 OK.

Breakdown

Rank the values of one dimension by volume over the resolved range. Path parameters Query parameters Plus date range and filters. sort_by allows visitors, revenue, recurring_revenue — except: on the event_name dimension, or whenever an active goal filter puts the breakdown into conversions mode (every dimension except entry_path, exit_path, channel, source, campaign), only visitors is allowed. An invalid pairing returns 422. Note: this endpoint does not accept a campaign_param; the campaign dimension always unions every UTM/ref column (equivalent to campaign_param=all on the Campaign details endpoint below). Response Each row in rows: Status: 200 OK.

Goal breakdown

Every one of the site’s goals’ conversions over the resolved range, in one pass. Path parameters Query parametersdate range and filters. The goal filter, if present, is ignored — this endpoint always lists every goal. Response — flat JSON array of: Status: 200 OK.

Performance overview

Site-wide Core Web Vitals percentiles for the resolved range. Path parameters Query parametersdate range and filters. Response — a flat object with 4 percentiles (p50, p75, p90, p99) for each of 5 metrics (lcp, cls, inp, fcp, ttfb), plus a total count: Status: 200 OK.

Performance timeseries

Per-bucket Core Web Vitals percentiles for the Performance chart. Path parameters Query parameters Plus date range and filters. Response Status: 200 OK.

Performance by dimension

Core Web Vitals ranked by a single dimension. Path parameters Query parameters Plus date range and filters. Response — flat JSON array, one entry per dimension value: Status: 200 OK.

Location details

On-demand session-entry DETAILS ranking, with bounce rate and average visit duration, for a location/device/acquisition dimension. Richer per-row metrics than the Breakdown endpoint’s country/region/city/browser/os/device/channel/source/referrer_domain dimensions, fetched on demand rather than for the dashboard card. Path parameters Query parameters Plus date range and filters. channel/source/referrer_domain ignore an active goal filter (they rank visit volume, not conversions). Response Each row in rows: Status: 200 OK.

Campaign details

On-demand campaign DETAILS: session-entry param=value rows unioned across every UTM/ref column (or one column when narrowed), with bounce rate and average visit duration. Path parameters Query parameters Plus date range and filters. An active goal filter is ignored (ranks visit volume, not conversions). Response Each row in rows: Status: 200 OK.

Page details

On-demand Top / Entry / Exit pages DETAILS, ranked with the richer per-kind metrics each drill-down needs. Path parameters Query parameters Plus date range and filters. Response Each row in rows — fields depend on kind: Status: 200 OK.