---
title: "Get site status and details"
method: GET
path: "/api/v1/sites/{id}"
tags: ["Sites"]
---

# Get site status and details

`GET /api/v1/sites/{id}`

## Request

- Base URL: `https://app.mondovo.com`
- URL: `https://app.mondovo.com/api/v1/sites/{id}`
- Auth: HTTP bearer

Returns the site’s status, progress, preview/editor links, live URL, and page slugs. Use this to poll while `status` is `generating` or `publishing`. Requires scope `sites:read`.

## Response `200`

The site.

- Site
  - `site_id` string, uuid, required
  - `name` string, required
  - `status` 'generating' | 'refining' | 'ready' | 'publishing' | 'published' | 'publish_held' | 'error', required: "publish_held": the last publish crashed or rendered blank when loaded in a browser before going live, so it was not made live; deployment_url (if any) still serves the previous version. See publish_message.
  - `publish_message` string: Plain-language reason the last publish was held. Present only when status is "publish_held".
  - `generation_progress` number: 0-100 while status is "generating".
  - `generation_progress_message` string: Human-readable progress note while generating.
  - `preview_url` string, uri: Shareable public preview link (no login required). Omitted when previews are disabled.
  - `editor_url` string, uri: Deep link into the Mondovo editor (requires login). Omitted while generating or errored.
  - `deployment_url` string, uri: Live URL once published.
  - `pages` string[]: Slugs of the site’s pages (e.g. "/", "/about"). Omitted before generation completes.
  - `error_message` string: Present only when status is "error".
  - `created_at` string, date-time
  - `updated_at` string, date-time

## Other responses

- `401`: Authentication failed. Error codes: `invalid_api_key` (missing/unknown key), `key_revoked`, `key_expired`.
- `403`: Authenticated but not allowed. Error codes: `addon_required` (the API key’s workspace no longer has the Agency add-on — checked on every request, not just at key creation) and `missing_scope` (the key lacks the scope this endpoint needs).
- `404`: `site_not_found` — no such site in this organization.
- `429`: Rate limit exceeded (`rate_limit_exceeded`). The body includes `retry_after_seconds`, `limit`, and `window` ("minute" or "hour"); a `Retry-After` header is also set.
- `500`: Unexpected server error (`internal_error`). Safe to retry.

---

[API](https://skmtc.dev/mondovo/apis/mondovo-public-api.md) · [All operations](https://skmtc.dev/mondovo/apis/mondovo-public-api/llms.txt) · [OpenAPI document](https://skmtc.dev/mondovo/apis/mondovo-public-api/revisions/1baa3e2865ba?raw)
