---
title: "Update site"
method: PATCH
path: "/sites/{id}"
tags: ["Sites"]
---

# Update site

`PATCH /sites/{id}`

## Request

- Base URL: `https://api.crevio.co/v1`
- URL: `https://api.crevio.co/v1/sites/{id}`
- Auth: API key in header `Authorization`

Updates an existing AI site. Domain changes trigger the full custom-hostname lifecycle.

## Path parameters

- `id` string, required

## Request body

- AiSiteRequest
  - `name` string
  - `subdomain` string, nullable
  - `access_mode` 'public' | 'members' | 'account' | 'admins_only' | 'me_only'
  - `show_referral_badge` boolean

## Response `200`

AI site updated

- AiSite
  - `id` string, required
  - `object` string, required
  - `name` string, required
  - `access_mode` 'public' | 'members' | 'account' | 'admins_only' | 'me_only', required
  - `subdomain` string, nullable, required
  - `github_repo_full_name` string, nullable, required
  - `metadata` object, required
  - `domain` string, nullable, required
  - `github_url` string, nullable, required
  - `domain_verified` boolean, required
  - `app_url` string, nullable, required
  - `is_live` boolean, required
  - `show_referral_badge` boolean, required
  - `build_task_id` string, nullable, required
  - `created_at` string, required

## Other responses

- `400`: Bad request
- `401`: Authentication required
- `402`: Plan upgrade required — setting show_referral_badge to false requires the Business plan
- `404`: Resource not found
- `422`: Validation error
- `429`: Rate limit exceeded — 600 requests per minute per credential. Retry after the number of seconds in `Retry-After`.

---

[API](https://skmtc.dev/crevio/apis/crevio-api-v1.md) · [All operations](https://skmtc.dev/crevio/apis/crevio-api-v1/llms.txt) · [OpenAPI document](https://skmtc.dev/crevio/apis/crevio-api-v1/revisions/2219f18ad651?raw)
