---
title: "List pages"
method: GET
path: "/api/pages"
tags: ["Pages"]
---

# List pages

`GET /api/pages`

Returns pages WITHOUT the heavy `body` (the full HTML/JSON document) and `passwordHash` by default — list views never render the body. Pass `fields=full` to restore `body`. Fetch a full page via `GET /api/pages/{id}`.

## Query parameters

- `agentId` string
- `key` string — Non-unique asset directory namespace (for example shared/ or personal/<user-id>/drafts/). Runtime write boundaries normalize and validate the canonical form.
- `keyPrefix` string — Non-unique asset directory namespace (for example shared/ or personal/<user-id>/drafts/). Runtime write boundaries normalize and validate the canonical form.
- `limit` integer
- `offset` integer, nullable
- `fields` 'full' | 'slim'

## Response `200`

Page list with totals + share-URL pointers

- object
  - `pages` object[], required
    - `id` string, required
    - `key` string, required — Non-unique asset directory namespace (for example shared/ or personal/<user-id>/drafts/). Runtime write boundaries normalize and validate the canonical form.
    - `agentId` string, required
    - `slug` string, required
    - `title` string, required
    - `description` string
    - `contentType` 'text/html' | 'application/json', required
    - `authMode` 'public' | 'authed' | 'password', required
    - `passwordHash` string
    - `body` string
    - `needsCredentials` string[]
    - `viewCount` integer
    - `createdAt` string, required
    - `updatedAt` string, required
    - `favorite` boolean, required
    - `api_url` string, required
    - `app_url` string, required
  - `total` integer, required
  - `limit` integer, required
  - `offset` integer, required

---

[API](https://skmtc.net/desplega-ai/apis/agent-swarm-api.md) · [All operations](https://skmtc.net/desplega-ai/apis/agent-swarm-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/desplega-ai/agent-swarm-api/versions/e2028c1ef6f5/schema)
