---
title: "Initiate dashboard download"
method: POST
path: "/api/v1/dashboards/{identifier}/download"
tags: ["Dashboards"]
---

# Initiate dashboard download

`POST /api/v1/dashboards/{identifier}/download`

The artifact includes cross-model tiles the download runs as (the target user when one is named, else the API key’s user); tiles on a model they cannot query are omitted.

## Path parameters

- `identifier` string, required — Dashboard identifier (short ID or UUID)

## Query parameters

- `userId` string, uuid — Target user membership ID (for org-scoped API keys)

## Request body

- DashboardsDownloadBody
  - `enableConditionalFormatting` boolean — Compatible with xlsx format only. Defaults to true. When true, conditional formatting rules from the visualization are included in the Excel output — provided the organization has the 'excel-conditional-formatting' feature enabled.
  - `enableFormatting` boolean — Compatible with csv, xlsx & json formats. If true, formatting will be enabled in the output. Note: If true for json format, a queryIdentifierMapKey is required.
  - `expandTablesToShowAllRows` boolean — Compatible with pdf and png formats. If true, up to 1,000 rows in table visualizations will be included in the delivery. Note: This parameter cannot be used when paperFormat: fit_page.
  - `filterConfig` unknown
  - `format` 'pdf' | 'png' | 'csv' | 'xlsx' | 'json', required — Output format for the download: pdf, png, csv, xlsx, or json
  - `hideHiddenFields` boolean — Compatible with csv & xlsx formats. If true, fields marked as hidden won't be displayed in the output.
  - `hideTitle` boolean — Compatible with pdf & png formats. If true, the content's title will be hidden in the output.
  - `maxRowLimit` number — Compatible with csv, json, & xlsx formats. Used with overrideRowLimit. Specifies the maximum number of rows.
  - `overrideRowLimit` boolean — Compatible with csv, json, & xlsx formats. If true, the default row limit will be overridden. Note: If true for json and xlsx formats, a queryIdentifierMapKey is required.
  - `paperFormat` 'a3' | 'a4' | 'fit_page' | 'legal' | 'letter' | 'tabloid' — Compatible with pdf formats. Defines the paper format (size) of the resulting PDF. Must be one of: a3, a4, letter, legal, fit_page, tabloid.
  - `paperOrientation` 'portrait' | 'landscape' — Compatible with pdf formats. Defines the paper orientation of the resulting PDF. Must be one of: portrait, landscape.
  - `queryIdentifierMapKey` string — Required for single tile tasks. The ID of the query to include in a single tile task. Must reference a valid query in the dashboard.
  - `showContentLink` boolean — Compatible with all formats except link_only. If true, a link to the content will be shown in the output.
  - `showFilters` boolean — Compatible with all formats except link_only & csv. If true, filters will be shown in the output.
  - `singleColumnLayout` boolean — Compatible with pdf and png formats. If true, dashboard tiles will be arranged into a single vertical column.
  - `cache` 'Standard' | 'SkipRequery' | 'SkipCache' — Cache policy for the queries run by the download. Must be one of: Standard (standard caching behavior; default), SkipRequery (uses cached results if available, but does not requery), SkipCache (bypasses the cache and always executes fresh queries).
  - `filename` string — Custom filename for the downloaded file (without extension)
  - `useCache` boolean — Deprecated and has no effect. Use `cache` instead.

## Response `200`

Download job initiated successfully

- DashboardsDownloadResponse
  - `job_id` string, uuid, required — ID of the download job. Use this to poll for download status.
  - `message` string, required — Status message

## Other responses

- `400` — Invalid request body or filter configuration
- `401` — Authentication required
- `403` — Permission denied - cannot download this dashboard
- `404` — Dashboard not found
- `409` — Download already in progress for this dashboard
- `500` — Failed to initiate download

## Changes

- **2026-08-27** `c86980cf0762` — 3 info
  - added the new optional request property `cache`
  - the `useCache` request property default value `false` was removed
  - request property `useCache` deprecated
- **2026-08-18** `b2d286e1ae94` — 1 info
  - added the new optional request property `enableConditionalFormatting`

[Change history](https://skmtc.dev/omniapp/apis/omni-api/changes/api/v1/dashboards/:identifier/download/post.md)

---

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