---
title: "List sites"
method: GET
path: "/api/v1/sites"
tags: ["sites"]
---

# List sites

`GET /api/v1/sites`

## Request

- Base URL: `https://app.blueticked.com`
- URL: `https://app.blueticked.com/api/v1/sites`
- Auth: HTTP bearer

Every site in the workspace with its slug, live status and public address.

`public_url` is null until the site is published; `primary_domain` carries the verified custom domain when one exists, otherwise the always-on Blueticked subdomain serves.

`status` is `published` or `draft`. Unpublishing keeps the published schema, so re-publishing is instant.

Business-restricted API keys see only their businesses' sites.

A signed-in dashboard session lists the selected business's sites; `?business=all` lists every business's sites the member can reach.

## Response `200`

Success

- object
  - `sites` object[], required
    - `id` string, uuid, required
    - `business_id` string, uuid, required
    - `slug` string, required
    - `status` string, required
    - `published_at` string, date-time, required
    - `created_at` string, date-time, required
    - `updated_at` string, date-time, required
    - `primary_domain` string, nullable
    - `public_url` string, required

## Other responses

- `400`: Validation failed
- `401`: Unauthorized: missing or invalid API key
- `402`: Insufficient wallet balance
- `403`: Forbidden: scope, plan limit, or suspension
- `404`: Not found
- `409`: Conflict (idempotency-key reuse or resource in use)
- `422`: Understood but refused: the request is well-formed, the action is not permitted for this resource
- `429`: Rate limited
- `500`: Internal error
- `502`: An upstream provider refused or failed the request
- `503`: Channel or send queue unavailable

---

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