---
title: "Upgrade dashboard layout"
method: POST
path: "/v1/documents/{documentId}/upgrade"
tags: ["Documents"]
---

# Upgrade dashboard layout

`POST /v1/documents/{documentId}/upgrade`

Upgrade a document to the advanced dashboard layout — the same action available in the UI under **File > Upgrade layout**.

<Note>
  This operation is idempotent. If the document already uses the advanced layout, the request is a no-op and returns `upgraded: false`.
</Note>

For published documents the upgrade runs through a draft-and-publish workflow automatically. If a draft already exists, the request returns `409` unless `clearExistingDraft` is set to `true`, which discards the existing draft before upgrading.

## Path parameters

- `identifier` string, required

## Request body

- DocumentsUpgradeLayoutBody
  - `clearExistingDraft` boolean — When upgrading a published document, discard any existing draft instead of failing with a conflict.

## Response `200`

Layout upgraded, or no-op if the document already had advanced layout.

- DocumentsUpgradeLayoutResponse
  - `identifier` string, required — Document identifier
  - `upgraded` boolean, required — True when the layout was upgraded, false when the document already had advanced layout (no-op).

## Other responses

- `400` — Bad Request - The document does not have a dashboard to upgrade.
- `401` — Authentication required
- `403` — Permission denied
- `404` — Document not found
- `409` — A draft already exists for the published document; set `clearExistingDraft` to `true` to override.
- `429` — Too Many Requests - Rate limit exceeded (60 requests/minute)

---

[API](https://skmtc.net/omni/apis/omni-api.md) · [All operations](https://skmtc.net/omni/apis/omni-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/omni/omni-api/revisions/6b02f7349d0e/schema)
