---
title: "Get Channel Images"
method: GET
path: "/apps/{app_id}/channels/{channel_id}/images"
---

# Get Channel Images

`GET /apps/{app_id}/channels/{channel_id}/images`

## Request

- Base URL: `https://api.xhostd.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.xhostd.com/apps/{app_id}/channels/{channel_id}/images`
- Auth: none declared

Live built-image inventory for one channel, newest first.

The tenant-scoped sibling of the admin host-detail images payload
(`routes/admin_hosts.py::_host_images`): one read-only RPC per page
load — no caching, no retries — filtered on the agent by the
channel's full-UUID labels. ``images`` degrades to ``null`` (never
an error) when the host has no registered ``RemoteHostAgent`` or
the agent is unreachable, so the console settings page always
renders. ``build_queue`` is deliberately NOT exposed — it is
host-global and would leak other tenants' activity (admin-only).
Each image's ``charged_size_bytes`` and ``matched_base`` come from
the build record in the control DB
(:func:`~xhostd.deploy.pipeline.charged_sizes`), joined on the
agent row's ``image_id``; an image with no record carries ``null``.

## Path parameters

- `app_id` string, uuid, required
- `channel_id` string, uuid, required

## Headers

- `authorization` string, nullable

## Response `200`

Successful Response

- ChannelImagesResponse
  - `images` ChannelImage[], nullable, required
    - `tag` string, required
    - `sha` string, required
    - `size_bytes` integer, required
    - `charged_size_bytes` integer, nullable, required
    - `matched_base` string, nullable, required
    - `created` integer, required
    - `current` boolean, required
  - `image_cap_bytes` integer, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/xhostd/apis/xhostd-public.md) · [All operations](https://skmtc.dev/xhostd/apis/xhostd-public/llms.txt) · [OpenAPI document](https://skmtc.dev/xhostd/apis/xhostd-public/revisions/bf439c4d1789?raw)
