---
search:
  tags:
    - Metrics Dashboards
    - PUT
seo:
  description: >-
    Update a dashboard by ID. Reference for the PUT
    /v1/metrics/dashboards/id/{dashboard_id} endpoint in the Roboto REST API.
sidebar:
  label: Update dashboard
  badge: PUT
title: Update dashboard
type: openapi-operation
---
Update a dashboard by ID.

Authorization rules (ownership is the sole source of truth — a dashboard is
org-wide exactly when ``owner_principal_id`` is the org principal):
- Org-wide dashboards are communal: any org member can update all fields, rename
  included. Retiring one to a personal dashboard (an ``accessibility`` request
  away from ``organization``) is admin-only, since it takes the dashboard away
  from the whole org.
- Personal (user-owned) dashboards: the owner and org admins can update all
  fields, name included. Any other caller receives 401 Unauthorized. An admin
  rename that lands on a (name, owner) pair the OWNER already holds still returns
  409 Conflict via the unique constraint, which keys on the dashboard's owner
  rather than on who performs the update.

A definition write must carry ``base_revision`` (the revision the caller loaded). If the
stored definition has advanced since, the write is rejected with 409
``RobotoDashboardRevisionConflictException``, carrying the server's current record so the
caller can resolve without a second round trip. The check runs under the row lock in the
persistence layer, not against the authorization fetch below.

### Access control
 - Restricted tokens need the API scope `api.everything_else`

`PUT /v1/metrics/dashboards/id/{dashboard_id}`
