Analytics
Timeseries
The same figures as overview, in buckets — what a chart is drawn from.
curl --request GET \
--url 'https://truestat.io/api/v1/sites/{siteId}/timeseries' \
--header 'Authorization: Bearer <token>'{
"data": [
{
"goals": 0,
"views": 42,
"bucket": "2026-09-16 00:00:00",
"visitors": 23,
"new_visitors": 19,
"crawler_views": 1132,
"goal_value_cents": 0,
"returning_visitors": 5
}
],
"meta": {
"range": {
"to": "2026-09-16T13:40:00.000Z",
"tz": "UTC",
"from": "2026-09-09T00:00:00.000Z",
"clamped": false
},
"site_id": "6fed8980-a119-4a9c-a4d4-53e448ef9f9e"
}
}One row per bucket, ready to plot.
The bucket size is chosen for you
Leave unit out and one is picked to suit the window:
| Window | Bucket |
| Up to 2 days | hour |
| Up to 3 months | day |
| Up to 2 years | week |
| Longer | month |
Pass unit to override it. A year in minutes is half a million buckets, which
is not a chart — the cap on limit does not apply here, so choose deliberately.
Crawlers are always in the series
crawler_views is present whatever bots says.
bots=excluded removes crawler traffic from the human figures — visitors,
views, sessions. It does not hide the crawler line, because that line is the
one number no other analytics tool ships and hiding it by default would bury
the reason you installed this.
crawler_views is the total. The split by purpose — answering, indexing,
training, referrals — comes from /ai/series, which reads a different query
built for exactly that breakdown.
Which goals the goal series counts
goals and goal_value_cents count the goals the site nominates as its
revenue signal, set in the dashboard. A site that has nominated none gets every
goal counted, which is what the headline figures do.
This is the site's choice rather than the caller's: a chart that counted different goals from the tile above it would be two answers to one question.
Authorizations
AuthorizationstringheaderrequiredAn API key from Settings → API keys. Scopes available: analytics:read, sites:read, sites:write, settings:read, settings:write, goals:read, goals:write, funnels:read, funnels:write, notes:read, notes:write, alerts:read, alerts:write, team:read, team:write, revenue:read, revenue:write.
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path parameters
siteIdstring (uuid)pathrequiredQuery parameters
unitenum<string>queryminutehourdayweekmonthperiodenum<string>querytodayyesterdaylast24hlast7dlast30dlast12mmonthyearallfromstring (date-time)querytostring (date-time)querytzstringquerydefault: UTCbotsenum<string>querydefault: excludedexcludedincludedfilter_pathstringqueryfilter_path_patternstringqueryfilter_hostnamestringqueryfilter_entry_pathstringqueryfilter_exit_linkstringqueryfilter_file_downloadstringqueryfilter_goalstringqueryfilter_browserstringqueryfilter_osstringqueryfilter_devicestringqueryfilter_countrystringqueryfilter_regionstringqueryfilter_citystringqueryfilter_referrerstringqueryfilter_channelstringqueryfilter_utm_sourcestringqueryfilter_utm_mediumstringqueryfilter_utm_campaignstringqueryfilter_gad_campaign_idstringqueryfilter_utm_termstringqueryfilter_bot_kindstringqueryResponse
The answer.
dataunknownmetaobjecterrorobjecterrorobjecterrorobjecterrorobject