List the networks that send the most requests
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.
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.
limit?integerHow many ASNs to return, from 1 to 100. Defaults to 25.
1 <= value <= 10025countryCode?array<string>|Keep only these countries, as uppercase two-letter ISO 3166-1 codes such as NO. Repeat the parameter to pass more than one.
city?array<string>|Keep only these cities, by the exact name GeoIP gives, such as Oslo. Repeat the parameter to pass more than one.
ipAddress?array<string>|Keep only these client IPs. Repeat the parameter to pass more than one. A value that is not an IP gets a 400.
ipAddressNotIn?array<string>|Leave out these client IPs. Repeat the parameter to pass more than one. A value that is not an IP gets a 400.
asnIn?array<integer>|Keep only these autonomous system numbers, such as 13335. Repeat the parameter to pass more than one. Rows without ASN data are left out.
asnNotIn?array<integer>|Leave out these autonomous system numbers. Repeat the parameter to pass more than one. Rows without ASN data stay in.
Request fulfilled, document follows
application/json- response
Autonomous systems ordered by hits, with totals per category.
Requests without ASN data appear in totalRequests and totalBytes but in no category, so the
difference is the traffic GeoMetrikks could not match to an ASN.
categories*array<>Totals over every ASN in the range, not only the listed ones. drop appears once the ASN-DROP list has downloaded.
dropAsnCount*|How many ASN-DROP listed ASNs sent traffic in the range, counting those beyond limit. Null until the ASN-DROP list has downloaded.
endDate*stringThe request's endDate, echoed as ISO 8601.
items*array<>startDate*stringThe request's startDate, echoed as ISO 8601.
totalBytes*integerThe bytes of every request in the range, with or without ASN data.
totalRequests*integerEvery request in the range, with or without ASN data.
curl -X GET 'https://geometrikks.example.com/api/v1/analytics/top-asns?startDate=2026-11-01T00%3A00%3A00Z&endDate=2026-11-02T00%3A00%3A00Z'{ "categories": [ { "category": "drop", "hits": 0, "totalBytes": 0 } ], "dropAsnCount": 0, "endDate": "string", "items": [ { "asn": 0, "category": "drop", "hits": 0, "organization": "string", "totalBytes": 0 } ], "startDate": "string", "totalBytes": 0, "totalRequests": 0}Get running totals of requests, events and bytes GET
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`.
List the cities with the most requests GET
Returns cities ordered by hits, with the number of distinct client IPs from each. Requests without a city are left out, and cities with the same name in different countries count as one. An ASN filter makes it read the raw access log rows, which go back only ANALYTICS_RAW_RETENTION_DAYS days, 180 by default.