---
title: "config/publish"
method: POST
path: "/config/publish"
tags: ["Configuration"]
---

# config/publish

`POST /config/publish`

Publish a draft configuration as the live config. Requires the `configuration:write` permission. The draft is validated with the same publish-time checks used by the CloudX app before it becomes live.

## Request body

- ConfigPublishRequest
  - `draft_id` string, required — Draft config row ID to publish as live.
  - `version_label` string — Optional label for the published config version.

## Response `200`

Published config now serving as live.

- ConfigPublishResponse
  - `config_id` string, required — Published config row ID that is now live.
  - `version_number` integer, required — Account-local published config version number.
  - `validation` ConfigValidationResponse, required
    - `valid` boolean, required
    - `error_count` integer, required
    - `warning_count` integer, required
    - `issues` ConfigValidationIssue[], required
      - `code` string, required
      - `path` string
      - `message` string, required
      - `severity` 'error' | 'warning', required
      - `line` integer
      - `column` integer
      - `length` integer
    - `yaml` string, required
    - `source` ConfigValidationSource
      - `type` string
      - `name` string

## Other responses

- `400` — Invalid request or blocking config validation failure.
- `401` — Unauthorized.
- `403` — Forbidden.
- `404` — Draft config not found.
- `500` — Internal server error.

---

[API](https://skmtc.dev/cloudx/apis/cloudx-api.md) · [All operations](https://skmtc.dev/cloudx/apis/cloudx-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/cloudx/cloudx-api/revisions/ad78aa79d28a/schema)
