Skip to content

Stats API

Read the same numbers the dashboard shows, as JSON. Aggregates only: no visitor or visit identifiers ever leave Nordtally. The full reference is the OpenAPI 3.1 document.

Keys

Owners and admins create keys under Workspace → API keys. A key starts with nt_live_, is shown once, and can be limited to some sites. Send it as a bearer token. Revoking a key takes effect on the next request.

Endpoints

EndpointReturns
GET /api/v1/stats/aggregateVisitors, visits, pageviews, views per visit, bounce rate, visit duration.
GET /api/v1/stats/timeseriesThe same metrics per hour, day or month.
GET /api/v1/stats/breakdownTop values of a property: source, page, country, browser, a custom property…
terminal
curl -H "Authorization: Bearer $NORDTALLY_API_KEY" \
  "https://app.nordtally.com/api/v1/stats/breakdown?site_id=YOUR_SITE_ID&period=30d&property=source&limit=10"

Common parameters: site_id (the id from your snippet), period (today, 7d, 30d, month, 12mo, or custom with from and to), filters such as page:contains:/blog (repeatable), and compare=previous on aggregate and timeseries. Unknown or malformed parameters return 400 naming the parameter, so a typo never returns unfiltered numbers.

Limits: 600 requests per hour and 30 per 10 seconds per key. Every response carries X-RateLimit-Limit, X-RateLimit-Remaining and X-RateLimit-Reset; over the limit you get 429 with Retry-After. Very large ranges are estimated from a sample, and the response says so in sampling.