---
title: "Update a dashboard"
method: PATCH
path: "/api/public/organizations/{orgId}/dashboards/{id}"
tags: ["Dashboards"]
---

# Update a dashboard

`PATCH /api/public/organizations/{orgId}/dashboards/{id}`

## Request

- Base URL: `https://charts.basedash.com`
- URL: `https://charts.basedash.com/api/public/organizations/{orgId}/dashboards/{id}`
- Auth: HTTP bearer

Updates dashboard metadata (name, description, icon, color, folder, width, and default date range settings). Requires admin access to the organization.

## Path parameters

- `orgId` string, required: Organization ID
- `id` string, required: Dashboard ID

## Request body

- UpdateDashboardInput
  - `name` string: Name of the dashboard
  - `description` string, nullable: Optional description of the dashboard
  - `icon` string: Icon name for the dashboard
  - `color` string: Icon color key for the dashboard
  - `dashboardFolderId` string, nullable: ID of the folder to place the dashboard in
  - `width` union: Width of the dashboard grid
    - 'NORMAL'
    - 'WIDE'
    - 'ULTRAWIDE'
  - `defaultDateRange` union: Default date range applied to the dashboard
    - 'CUSTOM'
    - 'TODAY'
    - 'YESTERDAY'
    - 'THIS_WEEK'
    - 'THIS_MONTH'
    - 'THIS_QUARTER'
    - 'THIS_YEAR'
    - 'LAST_7_DAYS'
    - 'LAST_30_DAYS'
    - 'LAST_60_DAYS'
    - 'LAST_90_DAYS'
    - 'LAST_6_MONTHS'
    - 'LAST_1_YEAR'
    - 'ALL_TIME'
  - `defaultCustomDateRangeStart` string, date-time, nullable: Start of the custom date range (when defaultDateRange is CUSTOM)
  - `defaultCustomDateRangeEnd` string, date-time, nullable: End of the custom date range (when defaultDateRange is CUSTOM)
  - `defaultGroupByInterval` union: Default group-by interval applied to the dashboard
    - 'HOUR'
    - 'DAY'
    - 'WEEK'
    - 'MONTH'
    - 'YEAR'

## Response `200`

Dashboard updated successfully

- object
  - `data` DashboardWithTabsResponse, required
    - `id` string, required: Dashboard ID
    - `createdAt` string, date-time, required: Dashboard creation timestamp
    - `updatedAt` string, date-time, required: Dashboard last update timestamp
    - `name` string, required: Name of the dashboard
    - `description` string, nullable, required: Description of the dashboard
    - `icon` string, required: Icon name for the dashboard
    - `color` string, required: Icon color key for the dashboard
    - `dashboardFolderId` string, nullable, required: ID of the folder the dashboard is in
    - `width` union, required: Width of the dashboard grid
      - 'NORMAL'
      - 'WIDE'
      - 'ULTRAWIDE'
    - `defaultDateRange` union, required: Default date range applied to the dashboard
      - 'CUSTOM'
      - 'TODAY'
      - 'YESTERDAY'
      - 'THIS_WEEK'
      - 'THIS_MONTH'
      - 'THIS_QUARTER'
      - 'THIS_YEAR'
      - 'LAST_7_DAYS'
      - 'LAST_30_DAYS'
      - 'LAST_60_DAYS'
      - 'LAST_90_DAYS'
      - 'LAST_6_MONTHS'
      - 'LAST_1_YEAR'
      - 'ALL_TIME'
    - `defaultCustomDateRangeStart` string, date-time, nullable, required: Start of the custom date range
    - `defaultCustomDateRangeEnd` string, date-time, nullable, required: End of the custom date range
    - `defaultGroupByInterval` union, required: Default group-by interval applied to the dashboard
      - 'HOUR'
      - 'DAY'
      - 'WEEK'
      - 'MONTH'
      - 'YEAR'
    - `organizationId` string, required: Organization ID
    - `tabs` DashboardTab[], required: Tabs on the dashboard, ordered by their sort order
      - `id` string, required: Dashboard tab ID
      - `createdAt` string, date-time, required: Tab creation timestamp
      - `updatedAt` string, date-time, required: Tab last update timestamp
      - `name` string, required: Name of the tab
      - `order` number, required: Sort order of the tab within the dashboard
      - `dashboardId` string, required: ID of the dashboard the tab belongs to

## Other responses

- `400`: Bad request - Invalid JSON body or validation error
- `401`: Unauthorized - Missing or invalid API key
- `404`: Not found - Dashboard not found or no admin access
- `429`: Rate limit exceeded - Too many requests
- `500`: Internal server error

---

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