Reference
View as MarkdownAnalytics API
3 operations. Every call needs a session cookie or an Authorization: Bearer nct_… token unless marked Public. Conventions, errors and scopes
/analytics/trafficTraffic analytics across servers
Workspace-wide report, optionally filtered by server, service or environment. Without a service or environment filter it needs servers:read; with one it needs projects:read. Project-restricted tokens only see their own services. Window to report. Minute data covers 24 hours; longer ranges read hourly (default 7 days kept) or daily (90 days) rows.
| Parameter | In | Type | Description |
|---|---|---|---|
range | query | enum: 5m | 10m | 15m | 30m | 1h | 6h | 12h | 24h | 7d | 30d | 90d | Window to report |
compare | query | enum: | prev | prev adds the previous equal window as comparison |
host | query | string | Restrict to one hostname |
pages | query | boolean | true (default) ranks top paths by page views (documents); false ranks every request |
serverId | query | string (uuid) | Restrict to one server |
serviceId | query | string (uuid) | Restrict to one service (needs projects:read) |
environmentId | query | string (uuid) | Restrict to the services of one environment (needs projects:read) |
Response 200 · OK · application/json
- activeHoursinteger (int64)[] | null[] | null
- Summary
- DeploymentMarker[] | nullrequired
- Geo
- geoReasonenum: geo_disabled | traffic_disabledWhy geo is absent
- TopItem[] | nullrequiredMost requested paths answered 404
- RangeInforequired
- SeriesPoint[] | nullrequired
- Sparklinesrequired
- StatusCount[] | nullrequired
- Summaryrequired
- TopItem[] | nullrequired
- TopItem[] | nullrequired
- TopItem[] | nullrequired
- TopItem[] | nullrequired
- TopItem[] | nullrequired
- topPathsKindenum: pages | requestsrequired
- TopItem[] | nullrequired
- Unrouted
401Unauthorized403Forbidden404Not Found422Unprocessable Entity500Internal Server Error
Errors are RFC 9457 application/problem+json with a stable code field.
/servers/{serverId}/analyticsTraffic analytics of every host on a server
Same payload as the service report plus unrouted (requests that matched no service). Window to report. Minute data covers 24 hours; longer ranges read hourly (default 7 days kept) or daily (90 days) rows.
| Parameter | In | Type | Description |
|---|---|---|---|
serverIdrequired | path | string | |
range | query | enum: 5m | 10m | 15m | 30m | 1h | 6h | 12h | 24h | 7d | 30d | 90d | Window to report |
compare | query | enum: | prev | prev adds the previous equal window as comparison |
host | query | string | Restrict to one hostname |
pages | query | boolean | true (default) ranks top paths by page views (documents); false ranks every request |
Response 200 · OK · application/json
- activeHoursinteger (int64)[] | null[] | null
- Summary
- DeploymentMarker[] | nullrequired
- Geo
- geoReasonenum: geo_disabled | traffic_disabledWhy geo is absent
- TopItem[] | nullrequiredMost requested paths answered 404
- RangeInforequired
- SeriesPoint[] | nullrequired
- Sparklinesrequired
- StatusCount[] | nullrequired
- Summaryrequired
- TopItem[] | nullrequired
- TopItem[] | nullrequired
- TopItem[] | nullrequired
- TopItem[] | nullrequired
- TopItem[] | nullrequired
- topPathsKindenum: pages | requestsrequired
- TopItem[] | nullrequired
- Unrouted
401Unauthorized403Forbidden404Not Found422Unprocessable Entity500Internal Server Error
Errors are RFC 9457 application/problem+json with a stable code field.
/services/{serviceId}/analyticsTraffic analytics of a service
Aggregated from Traefik access logs on the service's server: requests, bandwidth, unique visitors (per UTC day, bots excluded), latency percentiles from merged histograms, status codes and top lists. Raw access logs, IPs and user agents are never stored. Window to report. Minute data covers 24 hours; longer ranges read hourly (default 7 days kept) or daily (90 days) rows.
| Parameter | In | Type | Description |
|---|---|---|---|
serviceIdrequired | path | string | |
range | query | enum: 5m | 10m | 15m | 30m | 1h | 6h | 12h | 24h | 7d | 30d | 90d | Window to report |
compare | query | enum: | prev | prev adds the previous equal window as comparison |
host | query | string | Restrict to one hostname of the service |
pages | query | boolean | true (default) ranks top paths by page views (documents); false ranks every request |
Response 200 · OK · application/json
- activeHoursinteger (int64)[] | null[] | null
- Summary
- DeploymentMarker[] | nullrequired
- Geo
- geoReasonenum: geo_disabled | traffic_disabledWhy geo is absent
- TopItem[] | nullrequiredMost requested paths answered 404
- RangeInforequired
- SeriesPoint[] | nullrequired
- Sparklinesrequired
- StatusCount[] | nullrequired
- Summaryrequired
- TopItem[] | nullrequired
- TopItem[] | nullrequired
- TopItem[] | nullrequired
- TopItem[] | nullrequired
- TopItem[] | nullrequired
- topPathsKindenum: pages | requestsrequired
- TopItem[] | nullrequired
- Unrouted
401Unauthorized403Forbidden404Not Found422Unprocessable Entity500Internal Server Error
Errors are RFC 9457 application/problem+json with a stable code field.