---
title: "List Apps"
method: GET
path: "/apps"
---

# List Apps

`GET /apps`

## 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`
- Auth: none declared

List every app the caller owns or is an active member of.

The route costs THREE statements, and one when the caller has no
app. The first joins ``apps`` to its owner and outer-joins the
caller's membership row. It therefore gives the app, the role and
the owner row at once. ``protected.resolve`` also reads the owner
row. The second reads the channels of every app in the list, and the
third reads the pending deploy of every channel in one grouped
statement. The route only reads, so it runs on
``run_read_in_thread``.

## Headers

- `authorization` string, nullable

## Response `200`

Successful Response

- AppListResponse
  - `apps` AppResponse[], required
    - `id` string, uuid, required
    - `name` string, required
    - `repo_url` string, required
    - `template` string, required
    - `created_at` string, date-time, required
    - `external_db_access_enabled` boolean, required
    - `external_blob_access_enabled` boolean, required
    - `port_forwarding_enabled` boolean, required
    - `port_forwarding_available` boolean, required
    - `agent_protected_actions_enabled` boolean, nullable, required
    - `agent_protected_actions_effective` boolean, required
    - `channels` ChannelResponse[], required
      - `id` string, uuid, required
      - `name` string, required
      - `hostname` string, required
      - `git_ref_binding` string, nullable, required
      - `follows_branch` boolean, required
      - `current_sha` string, nullable, required
      - `status` string, required
      - `pending_deploy` PendingDeployResponse, required: The channel's in-flight deploy, if one is queued or running.
        - `deploy_id` string, uuid, required
        - `sha` string, required
        - `status` string, required
    - `owner_username` string, required
    - `role` string, 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)
