---
title: "List dashboards as code (deprecated)"
method: GET
path: "/api/v1/projects/{projectUuid}/dashboards/code"
tags: ["Projects"]
deprecated: true
---

# List dashboards as code (deprecated)

`GET /api/v1/projects/{projectUuid}/dashboards/code`

> **Deprecated.**

## Path parameters

- `projectUuid` string, required

## Query parameters

- `ids` string[]
- `offset` number, double
- `languageMap` boolean

## Response `200`

Success

- ApiDashboardAsCodeListResponse
  - `results` object, required
    - `offset` number, double, required
    - `total` number, double, required
    - `spaces` SpaceAsCode[], required
      - `access` SpaceAsCodeAccess
        - `groups` SpaceAsCodeGroupAccess[], required
          - `role` 'viewer' | 'editor' | 'admin', required
          - `name` string, required — Exact, case-sensitive organization group name.
        - `users` SpaceAsCodeUserAccess[], required
          - `role` 'viewer' | 'editor' | 'admin', required
          - `email` string, required — Primary email of a human organization member.
        - `projectMemberAccessRole` 'viewer' | 'editor' | 'admin', required
        - `inheritParentPermissions` boolean, required
      - `slug` string, required — Full portable hierarchy path used for identity and cross-referencing.
      - `spaceName` string, required — The original human-readable space name (preserves emoji, casing, etc.)
      - `version` 1 — Optional only for backwards-compatible metadata-only files.
      - `contentType` 'space', required
    - `missingIds` string[], required
    - `languageMap` PartialDeepDashboardAsCodeLanguageMapRecurseIntoArraysTrue[]
      - `dashboard` PartialObjectDeep91XString9358Name63StringOrUndefinedDescription63StringOrUndefinedTiles635840TypeDashboardTileTypesSAVEDCHARTOrDashboardTileTypesSQLCHARTProperties58TitleStringChartNameStringOrTypeDashboardTileTypesMARKDOWNProperties58ContentStringTitleStringOrTypeDashboardTileTypesLOOMProperties58TitleStringOrTypeDashboardTileTypesHEADINGProperties58TextStringOrTypeDashboardTileTypesDATAAPPProperties58TitleString41ArrayOrUndefinedRecurseIntoArraysTrue — Same as `PartialDeep`, but accepts only `object`s as inputs. Internal helper for `PartialDeep`.
    - `dashboards` DashboardAsCode[], required
      - `description` string
      - `parameters` DashboardParameters — Construct a type with a set of properties K of type T
      - `config` DashboardConfig
        - `requiredFiltersNote` string — Editor-authored note shown to viewers while filter rules are unmet
        - `dateZoomConfig` DateZoomConfig
          - `tileTargets` RecordStringDateZoomTileTarget, required — Construct a type with a set of properties K of type T
          - `controls` DateZoomControl[], required
            - `hidden` boolean
            - `granularity` union, required
              - …
            - `name` string, required
            - `uuid` string, required
        - `defaultDateZoomGranularity` union
          - 'Second' | 'Minute' | 'Hour' | 'Day' | 'Week' | 'Month' | 'Quarter' | 'Year'
          - string
        - `dateZoomGranularities` union[]
          - union
            - 'Second' | 'Minute' | 'Hour' | 'Day' | 'Week' | 'Month' | 'Quarter' | 'Year'
            - string
        - `parameterOrder` string[]
        - `pinnedParameters` string[]
        - `isAddFilterDisabled` boolean
        - `isDateZoomDisabled` boolean, required
      - `verification` ContentVerificationInfo
        - `verifiedAt` string, date-time, required
        - `verifiedBy` object, required
          - `lastName` string, required
          - `firstName` string, required
          - `userUuid` string, required
      - `verified` boolean — Declarative verification state. `true` verifies the dashboard on upload, `false` unverifies it, `undefined` leaves the current state untouched. Download sets this to `true` when the dashboard is verified.
      - `filters` object
        - `tableCalculations` DashboardFilterRule[]
          - `includeNull` boolean — For the `equals` operator on string fields, also match rows where the field is null (compiles to `field IN (...) OR field IS NULL`). Lets users combine null with selected values in a single "is" rule.
          - `values` AnyType[] — Values to filter by
            - unknown
          - `operator` 'isNull' | 'notNull' | 'equals' | 'notEquals' | 'startsWith' | 'endsWith' | 'include' | 'doesNotInclude' | 'lessThan' | 'lessThanOrEqual' | 'greaterThan' | 'greaterThanOrEqual' | 'inThePast' | 'notInThePast' | 'inTheNext' | 'inTheCurrent' | 'notInTheCurrent' | 'inBetween' | 'notInBetween' | 'inPeriodToDate', required
          - `id` string, required — Unique identifier for the filter
          - `target` DashboardFieldTarget, required
            - `fallbackType` 'string' | 'number' | 'timestamp' | 'date' | 'boolean'
            - `isSqlColumn` boolean
            - `tableName` string, required
            - `fieldId` string, required
          - `settings` unknown
          - `disabled` boolean — Whether this filter is disabled
          - `required` boolean — Whether this filter is required
          - `caseSensitive` boolean — Overrides the field/explore case-sensitivity for this rule only. Used by internal features like autocomplete search that must always match case-insensitively regardless of the field's configured setting.
          - `lockedTabUuids` string[] — Tab UUIDs where this filter is locked. When the active tab is in this list, viewers see the filter but cannot change it, and URL / embed filter overrides targeting the same field are ignored on that tab. Empty or omitted means the filter is not locked anywhere.
          - `requiredGroupId` string — Dashboard filters sharing a requiredGroupId form an "any-one required" group: the dashboard is locked until at least one member has a value.
          - `singleValue` boolean
          - `label` string
          - `tileTargets` DashboardTileTargets — Deliberately an index-signature literal, not `Record<string, ...>`. When TSOA first resolves `Record<string, DashboardTileTarget>` inside a mapped type (e.g. `Omit<DashboardFilterRule, 'id'>` in content-as-code types), it caches an EMPTY model under the shared `Record_string.DashboardTileTarget_` name, and request validation then strips every tileTargets entry from bodies — silently breaking dashboard filters on SQL chart tiles. The index-signature form resolves correctly in every context.
        - `metrics` DashboardFilterRule[]
          - `includeNull` boolean — For the `equals` operator on string fields, also match rows where the field is null (compiles to `field IN (...) OR field IS NULL`). Lets users combine null with selected values in a single "is" rule.
          - `values` AnyType[] — Values to filter by
            - unknown
          - `operator` 'isNull' | 'notNull' | 'equals' | 'notEquals' | 'startsWith' | 'endsWith' | 'include' | 'doesNotInclude' | 'lessThan' | 'lessThanOrEqual' | 'greaterThan' | 'greaterThanOrEqual' | 'inThePast' | 'notInThePast' | 'inTheNext' | 'inTheCurrent' | 'notInTheCurrent' | 'inBetween' | 'notInBetween' | 'inPeriodToDate', required
          - `id` string, required — Unique identifier for the filter
          - `target` DashboardFieldTarget, required
            - `fallbackType` 'string' | 'number' | 'timestamp' | 'date' | 'boolean'
            - `isSqlColumn` boolean
            - `tableName` string, required
            - `fieldId` string, required
          - `settings` unknown
          - `disabled` boolean — Whether this filter is disabled
          - `required` boolean — Whether this filter is required
          - `caseSensitive` boolean — Overrides the field/explore case-sensitivity for this rule only. Used by internal features like autocomplete search that must always match case-insensitively regardless of the field's configured setting.
          - `lockedTabUuids` string[] — Tab UUIDs where this filter is locked. When the active tab is in this list, viewers see the filter but cannot change it, and URL / embed filter overrides targeting the same field are ignored on that tab. Empty or omitted means the filter is not locked anywhere.
          - `requiredGroupId` string — Dashboard filters sharing a requiredGroupId form an "any-one required" group: the dashboard is locked until at least one member has a value.
          - `singleValue` boolean
          - `label` string
          - `tileTargets` DashboardTileTargets — Deliberately an index-signature literal, not `Record<string, ...>`. When TSOA first resolves `Record<string, DashboardTileTarget>` inside a mapped type (e.g. `Omit<DashboardFilterRule, 'id'>` in content-as-code types), it caches an EMPTY model under the shared `Record_string.DashboardTileTarget_` name, and request validation then strips every tileTargets entry from bodies — silently breaking dashboard filters on SQL chart tiles. The index-signature form resolves correctly in every context.
        - `dimensions` OmitDashboardFilterRuleId[]
          - `label` string
          - `target` DashboardFieldTarget, required
            - `fallbackType` 'string' | 'number' | 'timestamp' | 'date' | 'boolean'
            - `isSqlColumn` boolean
            - `tableName` string, required
            - `fieldId` string, required
          - `settings` unknown
          - `disabled` boolean — Whether this filter is disabled
          - `required` boolean — Whether this filter is required
          - `caseSensitive` boolean — Overrides the field/explore case-sensitivity for this rule only. Used by internal features like autocomplete search that must always match case-insensitively regardless of the field's configured setting.
          - `operator` 'isNull' | 'notNull' | 'equals' | 'notEquals' | 'startsWith' | 'endsWith' | 'include' | 'doesNotInclude' | 'lessThan' | 'lessThanOrEqual' | 'greaterThan' | 'greaterThanOrEqual' | 'inThePast' | 'notInThePast' | 'inTheNext' | 'inTheCurrent' | 'notInTheCurrent' | 'inBetween' | 'notInBetween' | 'inPeriodToDate', required
          - `values` unknown[] — Values to filter by
            - unknown
          - `includeNull` boolean — For the `equals` operator on string fields, also match rows where the field is null (compiles to `field IN (...) OR field IS NULL`). Lets users combine null with selected values in a single "is" rule.
          - `tileTargets` DashboardTileTargets — Deliberately an index-signature literal, not `Record<string, ...>`. When TSOA first resolves `Record<string, DashboardTileTarget>` inside a mapped type (e.g. `Omit<DashboardFilterRule, 'id'>` in content-as-code types), it caches an EMPTY model under the shared `Record_string.DashboardTileTarget_` name, and request validation then strips every tileTargets entry from bodies — silently breaking dashboard filters on SQL chart tiles. The index-signature form resolves correctly in every context.
          - `singleValue` boolean
          - `requiredGroupId` string — Dashboard filters sharing a requiredGroupId form an "any-one required" group: the dashboard is locked until at least one member has a value.
          - `lockedTabUuids` string[] — Tab UUIDs where this filter is locked. When the active tab is in this list, viewers see the filter but cannot change it, and URL / embed filter overrides targeting the same field are ignored on that tab. Empty or omitted means the filter is not locked anywhere.
      - `downloadedAt` string, date-time
      - `spaceSlug` string, required
      - `contentType` 'dashboard'
      - `version` number, double, required
      - `tiles` DashboardTileAsCode[], required
        - union
          - DashboardChartTileAsCode
            - `tabUuid` string, nullable — Legacy project-local tab reference. Accepted on upload for backwards compatibility.
            - `tabSlug` string, nullable — Portable reference to the dashboard tab containing this tile.
            - `w` number, double, required
            - `h` number, double, required
            - `y` number, double, required
            - `x` number, double, required
            - `type` 'saved_chart', required
            - `tileSlug` string
            - `uuid` string
            - `properties` object, required — From T, pick a set of properties whose keys are in the union K
              - …
          - DashboardSqlChartTileAsCode
            - `tabUuid` string, nullable — Legacy project-local tab reference. Accepted on upload for backwards compatibility.
            - `tabSlug` string, nullable — Portable reference to the dashboard tab containing this tile.
            - `w` number, double, required
            - `h` number, double, required
            - `y` number, double, required
            - `x` number, double, required
            - `type` 'sql_chart', required
            - `tileSlug` string
            - `uuid` string
            - `properties` object, required — From T, pick a set of properties whose keys are in the union K
              - …
          - DashboardMarkdownTileAsCode
            - `tabUuid` string, nullable — Legacy project-local tab reference. Accepted on upload for backwards compatibility.
            - `tabSlug` string, nullable — Portable reference to the dashboard tab containing this tile.
            - `w` number, double, required
            - `h` number, double, required
            - `y` number, double, required
            - `x` number, double, required
            - `type` 'markdown', required
            - `tileSlug` string
            - `uuid` string
            - `properties` object, required
              - …
          - DashboardLoomTileAsCode
            - `tabUuid` string, nullable — Legacy project-local tab reference. Accepted on upload for backwards compatibility.
            - `tabSlug` string, nullable — Portable reference to the dashboard tab containing this tile.
            - `w` number, double, required
            - `h` number, double, required
            - `y` number, double, required
            - `x` number, double, required
            - `type` 'loom', required
            - `tileSlug` string
            - `uuid` string
            - `properties` object, required
              - …
          - DashboardHeadingTileAsCode
            - `tabUuid` string, nullable — Legacy project-local tab reference. Accepted on upload for backwards compatibility.
            - `tabSlug` string, nullable — Portable reference to the dashboard tab containing this tile.
            - `w` number, double, required
            - `h` number, double, required
            - `y` number, double, required
            - `x` number, double, required
            - `type` 'heading', required
            - `tileSlug` string
            - `uuid` string
            - `properties` object, required
              - …
          - DashboardDataAppTileAsCode
            - `tabUuid` string, nullable — Legacy project-local tab reference. Accepted on upload for backwards compatibility.
            - `tabSlug` string, nullable — Portable reference to the dashboard tab containing this tile.
            - `w` number, double, required
            - `h` number, double, required
            - `y` number, double, required
            - `x` number, double, required
            - `type` 'data_app', required
            - `tileSlug` string
            - `uuid` string
            - `properties` object, required
              - …
      - `updatedAt` string, date-time — Not modifiable by user, but useful to know if it has been updated. Defaults to now if omitted.
      - `tabs` DashboardTabAsCode[], required
        - `hidden` boolean
        - `order` number, double, required
        - `name` string, required
        - `uuid` string — Legacy project-local identifier. Accepted on upload for backwards compatibility.
        - `slug` string — Portable tab identifier used by new downloads.
      - `slug` string, required
      - `name` string, required
  - `status` 'ok', required

## Other responses

- `default` — Error

---

[API](https://skmtc.net/lightdash/apis/lightdash-api.md) · [All operations](https://skmtc.net/lightdash/apis/lightdash-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/lightdash/lightdash-api/versions/40c933755c9a/schema)
