---
title: "List preview URLs"
method: GET
path: "/projects/{projectId}/previews"
tags: ["Previews and hostnames"]
---

# List preview URLs

`GET /projects/{projectId}/previews`

## Request

- Base URL: `https://studio.weaverse.io/api/v1/content`
- URL: `https://studio.weaverse.io/api/v1/content/projects/{projectId}/previews`
- Auth: HTTP bearer

Lists the project's preview URLs, default first, then by creation time. A pure read: unlike the dashboard loader, it never creates a default row as a side effect.

`url` is `null` and `sandboxId` is set for sandbox-backed previews, whose URL is computed.

Required scope: `project:manage`

## Response `200`

Preview URLs

- object

## Other responses

- `401`: Missing or invalid credentials
- `403`: Foreign project or missing scope (INSUFFICIENT_SCOPE)
- `404`: Not found (never discloses other tenants)

---

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