---
title: "List all apps"
method: GET
path: "/api/apps"
---

# List all apps

`GET /api/apps`

## Request

- Base URL: `https://reduck.ai`
- URL: `https://reduck.ai/api/apps`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-API-Key`

List every app you can reach, newest first: your own, plus those owned by a project you belong to.

## Query parameters

- `page` integer
- `pageSize` integer

## Response `200`

OK

- PaginatedResponseAppSummary
  - `data` AppSummary[], required
    - `id` string, required
    - `name` string, required: The installer's label, and the only text an app has of its own: what the thing IS belongs to the image, which is where a listing reads its description from.
    - `owner` AppOwner, required
      - `kind` 'user' | 'project', required
      - `handle` string, required: "@username" for a personal scope, the bare slug for a project.
      - `name` string, required
    - `image` AppImageRef, required
      - `handle` string, required: "@username" or a project slug — the first half of the image's address.
      - `slug` string, required
      - `name` string, required
      - `description` string, required: What the app is for, in one line. Empty until its author writes one.
      - `current_release` number, nullable, required: The release the image points at. An app reaches it once that release's migrations have run against its own database, so the two differ while an update is stuck.
    - `current_release` number, nullable, required: The release this app is actually serving: the newest one of its image whose migrations have all run against this app's own database. Behind `image.current_release` means an update has not landed here yet.
    - `released_at` string, nullable, required: When the served release was deployed, null while there is none.
    - `pending_decisions` number, required: How many of the app's decisions are waiting for a ruling.
    - `created_at` string, required
    - `updated_at` string, required
  - `hasNextPage` boolean, required
  - `totalCount` number

## Other responses

- `401`: Not authenticated
- `403`: Forbidden

---

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