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
| Endpoint | Returns |
|---|---|
GET /api/v1/stats/aggregate | Visitors, visits, pageviews, views per visit, bounce rate, visit duration. |
GET /api/v1/stats/timeseries | The same metrics per hour, day or month. |
GET /api/v1/stats/breakdown | Top values of a property: source, page, country, browser, a custom property… |
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.