---
title: "List dashboards"
method: GET
path: "/projects/{project_id}/dashboards"
tags: ["Dashboards"]
---

# List dashboards

`GET /projects/{project_id}/dashboards`

## Request

- Base URL: `https://app.honeybadger.io/v3`
- URL: `https://app.honeybadger.io/v3/projects/{project_id}/dashboards`
- Auth: HTTP bearer
- TypeScript: <https://skmtc.dev/honeybadger/apis/honeybadger-api/docs/projects/:project_id/dashboards/get.ts> (a function with typed inputs; its response is checked against the schema)

Returns a list of Insights dashboards for the project.

## Path parameters

- `project_id` string, required

## Query parameters

- `page` integer
- `per_page` integer

## Response `200`

Success

- object
  - `data` Dashboard[], required
    - `id` string, required
    - `project_id` string, required: ID of the project this dashboard belongs to
    - `title` string, required: Dashboard title
    - `widgets` DashboardWidget[], required: The dashboard's widgets, in the order they were written and in the same shape a write accepts, including `config.streams` as stream slugs.
      - `id` string: Kept as sent, or generated when left out. Send it back on update to keep the widget.
      - `type` 'insights_vis' | 'alarms' | 'deployments' | 'checkins' | 'uptime' | 'errors', required: Which kind of widget, and therefore which config shape applies.
      - `grid` object: Position and size on the dashboard grid.
        - `x` integer
        - `y` integer
        - `w` integer
        - `h` integer
      - `presentation` object: Display-only chrome.
        - `title` string
        - `subtitle` string
      - `config` object: Type-specific configuration. Its fields depend on `type`; the DashboardWidgetConfig schema for each type lists them.
    - `is_default` boolean, required: Whether this is the default dashboard
    - `shared` boolean, required: Whether the dashboard is shared with all team members
    - `default_ts` string, nullable, required: Default time range for the dashboard
    - `created_at` string, date-time, required: When the dashboard was created
    - `updated_at` string, date-time, required: When the dashboard was last updated
    - `links` WebLinks, required: Links into the Honeybadger web UI
      - `web` string, uri, required: The resource's page in the Honeybadger web UI, as an absolute URL. Resources without a page, such as outages and deploys, don't have `links`. For a project provisioned through Heroku, error, notice and comment links go through Heroku's single sign-on.
  - `pagination` Pagination: Offset-based pagination information
    - `page` integer, required: Current page number
    - `per_page` integer, required: Items per page
  - `links` OffsetLinks: Navigation links for a numbered-page collection. Each link is a root-relative path (`/v3/...`); resolve it against the API host.
    - `self` string, uri-reference, required: This page
    - `first` string, uri-reference: First page
    - `prev` string, nullable: Previous page, or null on the first page
    - `next` string, nullable: Next page, or null on the last page
  - `meta` ResponseMeta
    - `request_id` string: Unique identifier for the request, for correlating with support

## Other responses

- `401`: The credential is missing, invalid, expired or revoked (`unauthorized`), or was sent in a way v3 doesn't accept (see the examples).
- `403`: The credential isn't allowed to do this. `error.code` says why. An account or project the credential doesn't cover is 404 `not_found`, not 403.
- `404`: Resource not found
- `422`: No path names the account, so the API token has to. This is returned when the token covers more than one account and the account a request applies to cannot be determined. Use a token bound to a single account.

---

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