---
title: "List a site's uploaded assets"
method: GET
path: "/api/v1/sites/{slug}/assets"
tags: ["Assets"]
---

# List a site's uploaded assets

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

## Request

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

Lists the files uploaded under `assets/`, sorted by key within a page, one page at a time (up to 1,000 per page). Follow `nextCursor` until it is null. This is not the list of pages — use the content endpoints for those. Uploaded files are live in the editor and draft preview at once; the published site picks them up at the next publish.

## Path parameters

- `slug` string, required

## Query parameters

- `limit` integer
- `cursor` string

## Response `200`

One page of assets.

- AssetList
  - `assets` Asset[], required
    - `key` string, required: The asset's key: its path after `/assets/`.
    - `contentType` string, required
    - `size` integer, required: Size in bytes.
    - `uploadedAt` number, required: Upload time, Unix ms.
    - `etag` string, required: Content fingerprint (MD5 hex). Skip re-uploading a file whose MD5 already matches.
    - `originalKey` string: The key the file was uploaded as, when it is stored under this one (a JPEG or PNG kept as WebP). `etag` is the stored file's.
  - `nextCursor` string, nullable, required: Pass as `cursor` for the next page. Null on the last page.

## Other responses

- `401`: Missing or invalid credentials.
- `403`: The key or token cannot access this site (a key scoped to other sites).
- `404`: No such site, or it is not visible to this account (`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)
