---
title: "Create document"
method: POST
path: "/v1/documents"
tags: ["Documents"]
deprecated: true
---

# Create document

`POST /v1/documents`

> **Deprecated.**

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

Create a new document

## Request body

- object
  - `modelId` string, uuid, required — The ID of the model to build the document on
  - `name` string, required — The name of the document
  - `description` string — Description of the document
  - `identifier` string — Custom identifier for the document. If not provided, an identifier will be auto-generated. The identifier is used in the document's URL and must be unique across all documents in your organization. **Format requirements:** - Must match the pattern: lowercase letters, numbers, hyphens, and underscores only - Cannot start or end with a hyphen or underscore **Note:** Once created, the identifier can be changed using the [Update document endpoint](/api/documents/update-document).
  - `queryPresentations` object[] — An array of query presentation objects, each representing a query in the document's workbook
    - `name` string — The name of the query
    - `description` string — A description of the query
    - `query` object — The query definition object
    - `visConfig` object — Visualization configuration for the query

## Response `200`

Document created successfully

- object
  - `dashboard` object
    - `id` string, uuid — The dashboard ID
    - `createdAt` string, date-time — Timestamp when the dashboard was created
    - `updatedAt` string, date-time — Timestamp when the dashboard was last updated
    - `metadata` object — Dashboard metadata including layouts and tile settings
      - `layouts` object — Layout configurations for different screen sizes
      - `textTiles` object[]
      - `hiddenTiles` string[]
      - `tileSettings` object
      - `tileFilterMap` object
      - `tileControlMap` object
    - `metadataVersion` integer — Version of the metadata schema
    - `refreshInterval` integer — Auto-refresh interval in seconds
    - `facetFilters` boolean — Whether facet filters are enabled
    - `organizationId` string, uuid — The organization ID
    - `workbookId` string, uuid — The associated workbook ID
    - `creatorId` string, uuid — The ID of the user who created the dashboard
    - `updaterId` string, uuid — The ID of the user who last updated the dashboard
    - `queryPresentationCollectionId` string, uuid — The query presentation collection ID
    - `dashboardId` string, uuid — The dashboard ID (same as id)
  - `workbook` object
    - `id` string, uuid — The workbook ID
    - `createdAt` string, date-time — Timestamp when the workbook was created
    - `updatedAt` string, date-time — Timestamp when the workbook was last updated
    - `deletedAt` string, date-time — Timestamp when the workbook was deleted, if applicable
    - `publishedAt` string, date-time — Timestamp when the workbook was published
    - `isDraft` boolean — Whether the workbook is a draft
    - `identifier` string — The unique identifier for the document
    - `name` string — The name of the document
    - `lastItemIndex` integer — Index of the last item in the workbook
    - `ephemeral` string — Ephemeral state identifier
    - `organizationRole` string — Organization-level role for the document
    - `organizationAccessBoost` boolean
    - `publicRole` string
    - `publicAccessBoost` boolean
    - `canAnalyze` boolean — Whether users can analyze data in the document
    - `canDownload` boolean — Whether users can download data from the document
    - `canDrill` boolean — Whether users can drill into data in the document
    - `canSchedule` boolean — Whether users can create schedules in the document
    - `canUpload` boolean — Whether users can upload data in the document's workbook
    - `canViewWorkbook` boolean — Whether users can view the workbook in the document
    - `canUseTimezoneOverride` boolean — Whether users can use the [timezone picker](/visualize-present/dashboards/timezone-override) to change the query timezone for this document
    - `organizationId` string, uuid — The organization ID
    - `ownerId` string, uuid — The ID of the document owner
    - `updaterId` string, uuid — The ID of the user who last updated the document
    - `folderId` string, uuid — The folder ID, if the document is in a folder
    - `originDocumentId` string, uuid — The origin document ID, if duplicated
    - `documentId` string, uuid — The document ID

## Other responses

- `400` — Bad Request Possible error messages: - `modelId: Required` - `name: Required` - Identifier format is invalid (must be lowercase letters, numbers, hyphens, and underscores; cannot start/end with hyphen or underscore) - Identifier is already in use by another document
- `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)
