---
title: "Update dashboard document"
method: PUT
path: "/v1/documents/{documentId}"
tags: ["Documents"]
deprecated: true
---

# Update dashboard document

`PUT /v1/documents/{documentId}`

> **Deprecated.**

<Warning>
  **Deprecated** — Removal scheduled for **July 31, 2026**. Use the [Documents v2 API](/api/documents-v2/create-document) instead.
</Warning>

<Warning>
  This endpoint only works with dashboard documents. Workbook-only documents are not supported.
</Warning>

Update a document with the specified identifier. This endpoint performs a full resource replacement — all required fields must be provided and existing query presentations are replaced entirely.

## Path parameters

- `documentId` string, required

## Request body

- object
  - `modelId` string, required — Model ID for query transformation
  - `name` string, required — Document name
  - `description` string — Optional description of the document. Set as `null` to clear the description.
  - `facetFilters` boolean, required — When `true`, enable facet filters on the dashboard
  - `refreshInterval` integer, nullable, required — Auto-refresh interval in seconds. Minimum value must be `60`. Use `null` to disable.
  - `filterConfig` object, required — Dashboard filter configuration. Pass `{}` for no filters. Each key is a field name and the value is a filter definition object.
  - `filterOrder` string[], required — Order of filters in the filter bar. Pass `[]` if no filters.
  - `queryPresentations` object[], required — Array of query presentations (at least one required)
    - `name` string, required — Name of the query tab
    - `query` object, required — Query definition
      - `fields` string[], required — Array of field names to include in the query
      - `table` string, required — Table name for the query
    - `description` string — Query description
    - `subTitle` string — Subtitle for the query
    - `prefersChart` boolean — When `true`, show chart by default
    - `topicName` string — Topic name for the query
    - `chartType` string, nullable — Chart type (line, bar, etc.)
    - `visConfig` object — Full visualization configuration
    - `resultConfig` object — Result display configuration
    - `aiConfig` object — AI configuration
  - `documentMetadata` object — Document metadata for presentation settings
    - `presentation` object
      - `filters` object
        - `collapsible` boolean — Whether filters are collapsible
        - `defaultExpanded` boolean — Whether filters are expanded by default
  - `clearExistingDraft` boolean — If `true`, discards any existing draft before updating. **Note**: This parameter is required when a draft exists for the document.

## Response `200`

Document updated successfully

- object
  - `identifier` string — The document identifier
  - `name` string — The updated document name
  - `description` string — The updated document description

## Other responses

- `400` — Bad Request. Possible causes: - Missing required fields (`modelId`, `name`, `facetFilters`, `refreshInterval`, `filterConfig`, `filterOrder`, `queryPresentations`) - Invalid field values (`name` too long, `refreshInterval` less than `60`) - Empty `queryPresentations` array (at least one required) - Document has no dashboard (workbook-only document) - Analysis documents (workbooks or documents without a dashboard) are not supported
- `403` — User has insufficient permissions to update document
- `404` — Document not found
- `409` — Conflict. Draft already exists - set clearExistingDraft to true to discard it and proceed.
- `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)
