---
title: "Update a dashboard"
method: PATCH
path: "/v1/dashboards/{dashboard_id}"
---

# Update a dashboard

`PATCH /v1/dashboards/{dashboard_id}`

## Request

- Base URL: `https://api.dune.com/api`
- URL: `https://api.dune.com/api/v1/dashboards/{dashboard_id}`
- Auth: none declared. Required headers: `X-Dune-Api-Key`

Updates dashboard metadata and/or replaces widgets.

## Path parameters

- `dashboard_id` integer, required

## Headers

- `X-Dune-Api-Key` string, required

## Request body `*/*`

- ModelsUpdateDashboardCrudRequest
  - `columns_per_row` integer
  - `is_private` boolean
  - `name` string
  - `param_widgets` ModelsParamWidgetInput[]
    - `key` string
    - `position` ModelsWidgetPosition
      - `col` integer
      - `row` integer
      - `size_x` integer
      - `size_y` integer
    - `query_id` integer
    - `visualization_widget_id` integer
  - `slug` string
  - `tags` string[]
  - `text_widgets` ModelsTextWidgetInput[]
    - `position` ModelsWidgetPosition
      - `col` integer
      - `row` integer
      - `size_x` integer
      - `size_y` integer
    - `text` string
  - `visualization_widgets` ModelsVisualizationWidgetInput[]
    - `position` ModelsWidgetPosition
      - `col` integer
      - `row` integer
      - `size_x` integer
      - `size_y` integer
    - `visualization_id` integer

## Response `200`

OK

- ModelsDashboardCrudResponse
  - `dashboard_id` integer
  - `dashboard_url` string
  - `is_private` boolean
  - `name` string
  - `param_widgets` ModelsParamWidgetOutput[]
    - `key` string
    - `position` ModelsWidgetPosition
      - `col` integer
      - `row` integer
      - `size_x` integer
      - `size_y` integer
    - `query_id` integer
    - `visualization_widget_id` integer
    - `widget_id` string
  - `slug` string
  - `tags` string[]
  - `text_widgets` ModelsTextWidgetOutput[]
    - `position` ModelsWidgetPosition
      - `col` integer
      - `row` integer
      - `size_x` integer
      - `size_y` integer
    - `text` string
    - `widget_id` integer
  - `visualization_widgets` ModelsVisualizationWidgetOutput[]
    - `position` ModelsWidgetPosition
      - `col` integer
      - `row` integer
      - `size_x` integer
      - `size_y` integer
    - `visualization_id` integer
    - `widget_id` integer

## Other responses

- `400`: Bad Request
- `401`: Unauthorized
- `402`: Payment Required
- `403`: Forbidden
- `404`: Not Found
- `500`: Internal Server Error

## Changes

- **2026-11-03** `f82b25fe64b1`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/dune/apis/duneapi/changes/v1/dashboards/:dashboard_id/patch.md)

---

[API](https://skmtc.dev/dune/apis/duneapi.md) - [All operations](https://skmtc.dev/dune/apis/duneapi/llms.txt) - [OpenAPI document](https://skmtc.dev/dune/apis/duneapi/revisions/f82b25fe64b1?raw)
