---
title: "Create a dashboard"
method: POST
path: "/v1/dashboards"
tags: ["dashboards"]
---

# Create a dashboard

`POST /v1/dashboards`

## Request

- Base URL: `https://api.na-01.cloud.solarwinds.com`
- URL: `https://api.na-01.cloud.solarwinds.com/v1/dashboards`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/solarwinds/apis/solarwinds-observability/docs/v1/dashboards/post.ts> (a function with typed inputs; its response is checked against the schema)

## Request body

- DashboardsDashboardCreateRequest: Request body for creating a dashboard.
  - `version` integer: Schema version of the dashboard definition. Matches the `version` field returned in Dashboard responses.
  - `name` string, required: Dashboard display name.
  - `description` string: Dashboard description.
  - `isPrivate` boolean: Whether the dashboard is private to the owning user.
  - `categoryId` string: Category to assign to this dashboard.
  - `widgets` DashboardsDashboardWidgetInput[], required: Widgets to include in the dashboard.
    - `id` string, required: Widget identifier.
    - `type` string, required: Widget type.
    - `title` string: Widget display title.
    - `properties` object, nullable: Widget configuration properties.
  - `layout` DashboardsDashboardLayout[], required: Layout positions for each widget on the dashboard grid.
    - `id` string, required: Widget identifier this layout entry applies to.
    - `x` integer, required: Horizontal grid position.
    - `y` integer, required: Vertical grid position.
    - `width` integer, required: Width in grid units.
    - `height` integer, required: Height in grid units.
  - `validationVersion` integer: Validation rules version. Defaults to the current version on the server when omitted.
  - `enableValidation` boolean: When true, enables widget validation. Validation is skipped by default.

## Response `201`

The newly created dashboard.

- DashboardsDashboard: A dashboard resource.
  - `id` string, required: Dashboard identifier.
  - `version` integer, nullable, required: Schema version of the dashboard definition. Null implies version 1.
  - `name` string, required: Dashboard display name.
  - `description` string, nullable, required: Dashboard description.
  - `category` DashboardsDashboardCategory, required: A category assigned to a dashboard.
    - `id` string, required: Category identifier.
    - `name` string, required: Category display name.
    - `type` string, required: Category type.
    - `createdAt` string, date-time, required: Timestamp when the category was created.
    - `updatedAt` string, date-time, required: Timestamp when the category was last updated.
  - `systemReference` string, nullable, required: Stable reference key for system dashboards; null for user-created dashboards.
  - `isPrivate` boolean, required: Whether the dashboard is private to the owning user.
  - `widgets` DashboardsDashboardWidget[], required: Widgets contained in the dashboard.
    - `id` string, required: Widget identifier.
    - `type` string, required: Widget type.
    - `title` string, nullable, required: Widget display title.
    - `properties` object, nullable, required: Widget configuration properties.
  - `layout` DashboardsDashboardLayout[], required: Layout positions for each widget on the dashboard grid.
    - `id` string, required: Widget identifier this layout entry applies to.
    - `x` integer, required: Horizontal grid position.
    - `y` integer, required: Vertical grid position.
    - `width` integer, required: Width in grid units.
    - `height` integer, required: Height in grid units.
  - `ownerId` string, nullable, required: Identifier of the user who owns this dashboard.
  - `createdAt` string, date-time, required: Timestamp when the dashboard was created.
  - `updatedAt` string, date-time, required: Timestamp when the dashboard was last updated.
  - `report` DashboardsDashboardAssociatedReport, required: A report associated with a dashboard.
    - `id` string, required: Report identifier.
    - `title` string, required: Report title.
    - `type` 'Custom' | 'System' | 'DemAvailability', required
  - `isFavorite` boolean, required: Whether the current user has marked this dashboard as a favorite.

## Other responses

- `400`: The server could not understand the request due to invalid syntax.
- `401`: Access is unauthorized.
- `403`: Access is forbidden.
- `500`: Server error

## Changes

- **2026-10-27** `f01485d38ee8`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/solarwinds/apis/solarwinds-observability/changes/v1/dashboards/post.md)

---

[API](https://skmtc.dev/solarwinds/apis/solarwinds-observability.md) - [All operations](https://skmtc.dev/solarwinds/apis/solarwinds-observability/llms.txt) - [OpenAPI document](https://skmtc.dev/solarwinds/apis/solarwinds-observability/revisions/f01485d38ee8?raw)
