Get event time series
GET
Counts per time bucket of each custom event in names (a JSON array of up to 10 names), or of the 5 most frequent: one row per bucket and name.
Requires analytics:read on the site (an API key, or a signed-in member's role). Share links: allowed, with the analytics:read scope. Public sites: open to everyone, no credential needed.
header
x-api-key<token>An organization API key (ak_…), with the permissions and the sites it was created with. For servers and scripts: no cookie and no Origin check. Also accepted as Authorization: Bearer ak_… (apiKeyBearer). A request carries one credential: a key sent with a share token or a live session cookie is 400 (details.reason: ambiguous_credentials).
Scope: analytics:read
siteId*stringstart?stringend?stringlast?stringall?"true"Value in
"true"tz?stringbucket?stringValue in
"minute""5m""15m""hour""day""week""month""year"filters?stringLength
length <= 64000segment?stringMatch
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Format
uuidnames?stringLength
length <= 64000OK
application/json- response
data*array<>meta*curl -X GET 'https://pilotfox.app/api/v1/sites/string/events/timeseries'Example Response200
{ "data": [ { "t": "string", "name": "string", "count": 0 } ], "meta": { "window": { "from": "string", "to": "string", "tz": "string", "bucket": "minute" }, "compare": { "from": "string", "to": "string" }, "totalCount": -9007199254740991, "nextCursor": "string", "truncated": true, "cache": "hit" }}