---
title: "Get the Docker label inventory aggregated across the fleet"
method: GET
path: "/api/fleet/container-labels"
tags: ["Fleet"]
---

# Get the Docker label inventory aggregated across the fleet

`GET /api/fleet/container-labels`

Fans out to every node's container label inventory and aggregates the inverted index by key, value, and source. Unreachable or malformed nodes degrade into `nodeErrors` rather than failing the whole request. Secret-like values are redacted unless the caller is an admin and passes `reveal=1`. Requires `node:read` permission.

## Query parameters

- `reveal` '1' | 'true'

## Response `200`

Fleet-wide container label inventory.

- FleetLabelInventory
  - `generatedAt` integer, required
  - `nodes` object[], required
    - `nodeId` integer, required
    - `nodeName` string, required
    - `status` 'ok' | 'error', required
    - `inventory` NodeLabelInventory, required
      - `nodeId` integer, required
      - `partial` boolean, required
      - `generatedAt` integer, required
      - `containers` ContainerLabelRow[], required
        - `id` string, required
        - `name` string, required
        - `stack` string, nullable, required
        - `service` string, nullable, required
        - `state` string, required
        - `labels` LabelValue[], required
          - `key` string, required
          - `value` string, required — Redacted to `[redacted]` for secret-like keys unless the caller is an admin and passes `reveal=1`.
          - `source` 'compose' | 'runtime' | 'image' | 'compose-system' | 'unknown', required — Provenance of a label. `unknown` when a container or image could not be inspected.
          - `redacted` boolean
      - `byLabel` LabelIndexRow[], required
        - `key` string, required
        - `value` string, required
        - `source` 'compose' | 'runtime' | 'image' | 'compose-system' | 'unknown', required — Provenance of a label. `unknown` when a container or image could not be inspected.
        - `redacted` boolean
        - `containers` LabelIndexContainerRef[], required
          - `id` string, required
          - `name` string, required
          - `stack` string, nullable, required
          - `service` string, nullable, required
          - `nodeId` integer
          - `nodeName` string
    - `error` string, nullable, required
  - `aggregatedByLabel` LabelIndexRow[], required
    - `key` string, required
    - `value` string, required
    - `source` 'compose' | 'runtime' | 'image' | 'compose-system' | 'unknown', required — Provenance of a label. `unknown` when a container or image could not be inspected.
    - `redacted` boolean
    - `containers` LabelIndexContainerRef[], required
      - `id` string, required
      - `name` string, required
      - `stack` string, nullable, required
      - `service` string, nullable, required
      - `nodeId` integer
      - `nodeName` string
  - `nodeErrors` object, required — Map of node id to error for nodes that were unreachable or returned a malformed payload.

## Other responses

- `403` — Insufficient permissions or license tier.
- `500` — Internal server error.

---

[API](https://skmtc.net/studio-saelix/apis/sencho-api.md) · [All operations](https://skmtc.net/studio-saelix/apis/sencho-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/studio-saelix/sencho-api/versions/f36f82acae1d/schema)
