---
title: "List observed storefront hostnames"
method: GET
path: "/projects/{projectId}/hostnames"
tags: ["Previews and hostnames"]
---

# List observed storefront hostnames

`GET /projects/{projectId}/hostnames`

## Request

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

Returns the project's hostname registry: the hostnames observed serving this project, when each was first and last seen, the last observed origin, and whether it is blocked. `limits` gives the registry's observed-host limit and retention; `truncated` is `true` when the list was cut at that limit. `propagationSeconds` is how long a policy change takes to reach the edge.

If the hostname service is unavailable the response is 503, never an empty list.

Required scope: `project:manage`

## Response `200`

Registry

- object

## Other responses

- `401`: Missing or invalid credentials
- `403`: Foreign project or missing scope (INSUFFICIENT_SCOPE)
- `404`: Not found (never discloses other tenants)
- `503`: Hostname service unavailable (never an empty list)

---

[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)
