---
title: "Promote a Site deployment"
method: POST
path: "/v1/sites/{site_id}/deployments/{deployment_id}/promote"
tags: ["Sites"]
---

# Promote a Site deployment

`POST /v1/sites/{site_id}/deployments/{deployment_id}/promote`

## Request

- Base URL: `https://api.dexto.ai`
- URL: `https://api.dexto.ai/v1/sites/{site_id}/deployments/{deployment_id}/promote`
- Auth: HTTP bearer

Make one of the Site's ready deployments its production release. Needs sites:write.

## Path parameters

- `site_id` string, required
- `deployment_id` string, required

## Response `200`

Successful response.

- object
  - `deployment` object, required
    - `backend_deployment_id` string, uuid, nullable, required: The deployment of the Site's Function this release serves; null for none.
    - `channel` 'preview' | 'production', required: production for the Site's live release; preview for any other.
    - `created_at` string, date-time, required
    - `id` string, uuid, required
    - `object` 'site.deployment', required
    - `preview_url` string, uri, required: This deployment's own URL.
    - `site_id` string, uuid, required
    - `status` 'failed' | 'ready' | 'retired', required
    - `updated_at` string, date-time, required
  - `object` 'site.promotion', required
  - `site` object, required
    - `backend_function_id` string, uuid, nullable, required: The Function the Site mounts to serve its server routes; null for none.
    - `created_at` string, date-time, required
    - `id` string, uuid, required
    - `object` 'site', required
    - `slug` string, required
    - `title` string, required
    - `updated_at` string, date-time, required
    - `url` string, uri, required: The Site's production URL.
    - `visibility` 'private' | 'unlisted' | 'public', required
  - `url` string, uri, required: The Site's production URL.

## Other responses

- `400`: Invalid JSON or request fields.
- `401`: Missing or invalid API key.
- `402`: The account has insufficient credits.
- `403`: The account cannot perform this operation.
- `404`: The requested resource was not found.
- `409`: The request conflicts with existing resource state.
- `429`: The account exceeded this operation's request rate.
- `500`: Unexpected Dexto failure.
- `502`: The upstream model provider failed.
- `503`: A required Dexto service is temporarily unavailable.

---

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