---
title: "PUT /api/agent/v1/dashboard/{id}"
method: PUT
path: "/api/agent/v1/dashboard/{id}"
tags: ["/api/agent"]
---

# PUT /api/agent/v1/dashboard/{id}

`PUT /api/agent/v1/dashboard/{id}`

## Request

- Base URL: `` (relative, and the document was published on a file host, not at the API’s origin)
- URL: `/api/agent/v1/dashboard/{id}`
- Auth: API key in header `X-API-Key`

Update a dashboard. Patch semantics - only fields you pass are changed.

  Metadata: `name`, `description`, `collection_id`, `archived`. Archiving is a soft delete - there
  is no delete endpoint. It can be reversed by setting `archived: false`.
  Dashcard mutations are submitted under `dashcards` as a list of
  `{action: add|add_heading|add_text|update_text|remove|move, ...}` entries applied in
  order. `add` requires `card_id`; `add_heading` and `add_text` require `text` (Markdown
  for text cards); `update_text`, `remove`, and `move` require `dashcard_id`.

## Path parameters

- `id` integer, required

## Request body

- MetabaseAgentApiApiUpdateDashboardRequest: Patch shape for `update_dashboard`. Metadata fields and an optional `dashcards` list of add/add_heading/add_text/update_text/remove/move mutations applied in order.
  - `archived` boolean, nullable
  - `collection_id` integer, nullable: value must be an integer greater than zero.
  - `dashcards` MetabaseAgentApiApiDashcardMutation[], nullable
    - union: One dashcard mutation. Discriminated on `:action`: - `add` : requires `card_id`. Auto-positioned. Optional `display_size` ("wide", "tall", or "full"). - `add_heading` : requires `text`. Adds a full-width section heading. - `add_text` : requires `text` (Markdown). Adds a text card. Optional `display_size` ("wide", "tall", or "full"). - `update_text` : requires `dashcard_id` and `text`. Replaces a heading or text card's text in place, keeping its position and size. - `remove` : requires `dashcard_id`. - `move` : requires `dashcard_id` and `position` ("top" or "bottom"). The add actions take an optional `tab_id` (a tab on this dashboard); omitted, new cards land on the dashboard's first tab.
      - object
        - `action` 'add', required
        - `card_id` integer, required: value must be an integer greater than zero.
        - `display_size` 'wide' | 'tall' | 'full', nullable
        - `tab_id` integer, nullable: value must be an integer greater than zero.
      - object
        - `action` 'add_heading', required
        - `display_size` unknown
        - `tab_id` integer, nullable: value must be an integer greater than zero.
        - `text` string, required: value must be a non-blank string.
      - object
        - `action` 'add_text', required
        - `display_size` 'wide' | 'tall' | 'full', nullable
        - `tab_id` integer, nullable: value must be an integer greater than zero.
        - `text` string, required: value must be a non-blank string.
      - object
        - `action` 'update_text', required
        - `dashcard_id` integer, required: value must be an integer greater than zero.
        - `text` string, required: value must be a non-blank string.
      - object
        - `action` 'remove', required
        - `dashcard_id` integer, required: value must be an integer greater than zero.
      - object
        - `action` 'move', required
        - `dashcard_id` integer, required: value must be an integer greater than zero.
        - `position` 'top' | 'bottom', required
  - `description` string, nullable
  - `name` string, nullable: value must be a non-blank string.

## Response `2XX`

Successful response

- MetabaseAgentApiApiUpdateDashboardResponse: Returned by `update_dashboard`. `:dashcard_ids` is the post-mutation list of dashcard ids in row/col order so the LLM can confirm what landed on the dashboard. `:tabs` lists the dashboard's tabs in display order — the ids a mutation's `tab_id` accepts.
  - `archived` boolean, required
  - `collection_id` integer, nullable, required: value must be an integer greater than zero.
  - `collection_path` string, required
  - `dashcard_ids` integer[], required
  - `description` string, nullable, required
  - `id` integer, required: value must be an integer greater than zero.
  - `name` string, required: value must be a non-blank string.
  - `tabs` MetabaseAgentApiApiDashboardTab[], required
    - `id` integer, required: value must be an integer greater than zero.
    - `name` string, required

## Other responses

- `4XX`: Client error response
- `5XX`: Server error response

## Changes

- **2026-11-04** `2e178f5a7934`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/metabase/apis/metabase-api/changes/api/agent/v1/dashboard/:id/put.md)

---

[API](https://skmtc.dev/metabase/apis/metabase-api.md) - [All operations](https://skmtc.dev/metabase/apis/metabase-api/llms.txt) - [OpenAPI document](https://skmtc.dev/metabase/apis/metabase-api/revisions/2e178f5a7934?raw)
