---
title: "Get aggregate traffic dashboard (per app)"
method: GET
path: "/api/app/{uuid}/traffic/dashboard"
tags: ["Traffic Analytics"]
---

# Get aggregate traffic dashboard (per app)

`GET /api/app/{uuid}/traffic/dashboard`

Per-app variant of `GET /api/traffic/dashboard`: every member filtered
to one app, and `apps` omitted entirely. `apps_limit` is ignored.

## Path parameters

- `uuid` string, required

## Query parameters

- `from` string, date-time
- `to` string, date-time
- `range` '24h' | '7d' | '30d'
- `paths_limit` integer
- `breakdown_limit` integer

## Response `200`

Aggregate dashboard for one app (no leaderboard)

- TrafficDashboard — Every traffic shape bundled into one response. Each member is verbatim the shape of its standalone endpoint. `apps` is present only on the server-wide variant.
  - `overview` TrafficOverview
    - `requests` integer
    - `bytes_in` integer
    - `bytes_out` integer
    - `status` TrafficStatusBreakdown
      - `s2xx` integer
      - `s3xx` integer
      - `s4xx` integer
      - `s5xx` integer
    - `latency` TrafficLatency — Approximate latency quantiles in milliseconds (t-digest estimate). 0.0 on every field when the range holds no decodable latency sketch.
      - `p50` number, float
      - `p95` number, float
      - `p99` number, float
    - `unique_visitors` integer — Approximate distinct client IPs (HyperLogLog++ estimate, ~1-2% error)
  - `paths` TrafficPath[]
    - `path` string
    - `app` string — The app (Coolify app UUID, or host for Caddy) that served this path. Always the queried app on a per-app endpoint; attributes each path to its owning app on the server-wide endpoint.
    - `requests` integer
    - `bytes_out` integer
    - `p50` number, float
    - `p95` number, float
  - `breakdowns` TrafficBreakdowns — The eleven breakdown dimensions Coolify renders, each a top-N list in the same shape as GET /traffic/breakdown/{dimension}.
    - `country` TrafficBreakdownEntry[]
      - `value` string
      - `requests` integer
      - `bytes_out` integer
    - `referer` TrafficBreakdownEntry[]
      - `value` string
      - `requests` integer
      - `bytes_out` integer
    - `browser` TrafficBreakdownEntry[]
      - `value` string
      - `requests` integer
      - `bytes_out` integer
    - `os` TrafficBreakdownEntry[]
      - `value` string
      - `requests` integer
      - `bytes_out` integer
    - `device` TrafficBreakdownEntry[]
      - `value` string
      - `requests` integer
      - `bytes_out` integer
    - `protocol` TrafficBreakdownEntry[]
      - `value` string
      - `requests` integer
      - `bytes_out` integer
    - `cache` TrafficBreakdownEntry[]
      - `value` string
      - `requests` integer
      - `bytes_out` integer
    - `status` TrafficBreakdownEntry[]
      - `value` string
      - `requests` integer
      - `bytes_out` integer
    - `agent` TrafficBreakdownEntry[]
      - `value` string
      - `requests` integer
      - `bytes_out` integer
    - `ip` TrafficBreakdownEntry[]
      - `value` string
      - `requests` integer
      - `bytes_out` integer
    - `useragent` TrafficBreakdownEntry[]
      - `value` string
      - `requests` integer
      - `bytes_out` integer
  - `series` TrafficSeriesBucket[]
    - `bucket` integer — Unix-millis start of the bucket
    - `requests` integer
    - `bytes_in` integer
    - `bytes_out` integer
    - `s2xx` integer
    - `s3xx` integer
    - `s4xx` integer
    - `s5xx` integer
    - `unique_visitors` integer — Per-bucket approximate distinct client IPs (HyperLogLog++)
    - `p95` number, float — 95th-percentile latency in ms (t-digest estimate)
  - `attribution` string, nullable — The active GeoIP source's attribution string, or null.
  - `apps` TrafficAppEntry[] — Per-app leaderboard, ranked by requests desc. Present only on the server-wide dashboard; omitted on the per-app variant.
    - `uuid` string
    - `overview` TrafficOverview
      - `requests` integer
      - `bytes_in` integer
      - `bytes_out` integer
      - `status` TrafficStatusBreakdown
        - `s2xx` integer
        - `s3xx` integer
        - `s4xx` integer
        - `s5xx` integer
      - `latency` TrafficLatency — Approximate latency quantiles in milliseconds (t-digest estimate). 0.0 on every field when the range holds no decodable latency sketch.
        - `p50` number, float
        - `p95` number, float
        - `p99` number, float
      - `unique_visitors` integer — Approximate distinct client IPs (HyperLogLog++ estimate, ~1-2% error)

## Other responses

- `400` — Bad request - invalid parameters
- `401` — Unauthorized - missing or invalid authentication token
- `404` — Traffic analytics isn't enabled — the binary lacks the `traffic` Cargo feature, TRAFFIC_ENABLED isn't true, or the analytics database failed to open.
- `500` — Internal server error

---

[API](https://skmtc.net/coollabsio/apis/sentinel-api.md) · [All operations](https://skmtc.net/coollabsio/apis/sentinel-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/coollabsio/sentinel-api/revisions/b29311671936/schema)
