---
title: "List content keys with their hashes"
method: GET
path: "/api/v1/sites/{slug}/manifest"
tags: ["Content"]
---

# List content keys with their hashes

`GET /api/v1/sites/{slug}/manifest`

## Request

- Base URL: `https://api.dotsy.ai`
- URL: `https://api.dotsy.ai/api/v1/sites/{slug}/manifest`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

A cheap read of the site's content as key, hash and type, without any bodies. By default it is the published (live) set. With `draft=1` it is the draft set, with a `status` per key. Add `routes=1` to include the route table. The response carries an `ETag`; send it back as `If-None-Match` to get 304 when nothing changed.

## Path parameters

- `slug` string, required

## Query parameters

- `draft` '1'
- `routes` '1'
- `entries` '0'
- `limit` integer
- `cursor` string

## Headers

- `If-None-Match` string

## Response `200`

The manifest.

- SiteManifest
  - `version` integer, required: Published version counter (0 when never published).
  - `entries` ManifestEntry[], required
    - `key` string, required: The content key.
    - `hash` string, required: SHA-256 of the body.
    - `type` string, required: Content-Type.
    - `status` 'live' | 'modified' | 'new': Draft manifest only. Same meaning as `status` on the content list.
  - `nextCursor` string, nullable, required: Pass as `cursor` for the next page; null on the last page.
  - `collections` object: Published mode only: the site's collection registry.
  - `forms` object: Published mode only: the site's form settings.
  - `routes` ManifestRoute[]: Only with `routes=1`.
    - `path` string, required
    - `contentKey` string, nullable, required
    - `layout` string, nullable, required
    - `title` string, nullable, required
    - `purpose` string, nullable, required: `redirect` for a redirect row.
    - `redirectTo` string, nullable, required
    - `redirectStatus` union, required
      - 301
      - 302
      - 308

## Other responses

- `304`: Not modified: `If-None-Match` matches the current `ETag`.
- `401`: Missing or invalid credentials.
- `403`: The key or token cannot read this site.
- `404`: No such site (`not_found`).

---

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