Get running totals of requests, events and bytes
Returns one point per bucket with the requests, geo events and bytes sent so far, oldest first. Buckets are hours for ranges up to 30 days and UTC days above, and hours or days without traffic have no point. Ranges up to 24 hours count the raw rows of the exact range, and granularity reads raw for them. Longer ranges read the aggregates, which count whole hours or UTC days, from the one that holds startDate through the last one that starts before endDate.
session<token>Session cookie authentication.
startDate?|Start of the range, inclusive, as ISO 8601 with a timezone, such as 2026-11-01T00:00:00Z. Requires endDate; omit with window.
endDate?|End of the range, exclusive, as ISO 8601 with a timezone, such as 2026-11-02T00:00:00Z. Requires startDate; omit with window.
window?|A rolling window ending now, such as 15m, 24h or 7d, up to 365 days. Use positive whole minutes, hours or days. Cannot be combined with explicit time bounds.
Request fulfilled, document follows
application/json- response
Running totals of requests, geo events and bytes, one point per bucket, oldest first.
data?array<>endDate*stringThe request's endDate, echoed as ISO 8601.
granularity*stringraw for ranges up to 24 hours, which have hourly buckets counted from the raw rows. Otherwise hourly or daily.
startDate*stringThe request's startDate, echoed as ISO 8601.
curl -X GET 'https://geometrikks.example.com/api/v1/analytics/time-series/cumulative?startDate=2026-11-01T00%3A00%3A00Z&endDate=2026-11-02T00%3A00%3A00Z'{ "data": [ { "cumulativeAccessLogs": 0, "cumulativeBytes": 0, "cumulativeGeoEvents": 0, "timestamp": "string" } ], "endDate": "string", "granularity": "string", "startDate": "string"}Get request metrics per hour or day GET
Returns requests, bytes, status classes, error rate and latency for each bucket that has requests, oldest first. Without filters it reads the hourly or daily aggregates at any range length, and those reads count whole hours or UTC days, from the one that holds `startDate` through the last one that starts before `endDate`. With `granularity=daily` and a `tz` other than UTC on a range of 30 days or less, those reads count local days instead. They start at the local midnight of the day holding `startDate` and run through the last hour that starts before `endDate`. A country, city, IP or ASN filter makes it read the raw access log rows, which go back only ANALYTICS_RAW_RETENTION_DAYS days, 180 by default. On that filtered path `tz` sets local days at any range length. `totalGeoEvents` is always 0 here, and `/api/v1/analytics/geo-time-series` has the geo series.
List the networks that send the most requests GET
Returns autonomous systems ordered by hits, each with a category. `categories` adds up every ASN in the range, not only the top `limit`. `totalRequests` and `totalBytes` count every request, so requests without ASN data count in them but in no category. A country, city, IP or ASN filter makes it read the raw access log rows, which go back only ANALYTICS_RAW_RETENTION_DAYS days, 180 by default.