Get usage stats for all dashboards

Note: This endpoint is in preview and is subject to change. If you have any feedback, contact Datadog support.

GET https://api.ap1.datadoghq.com/api/v2/dashboards/usagehttps://api.ap2.datadoghq.com/api/v2/dashboards/usagehttps://api.datadoghq.eu/api/v2/dashboards/usagehttps://api.ddog-gov.com/api/v2/dashboards/usagehttps://api.us2.ddog-gov.com/api/v2/dashboards/usagehttps://api.datadoghq.com/api/v2/dashboards/usagehttps://api.us3.datadoghq.com/api/v2/dashboards/usagehttps://api.us5.datadoghq.com/api/v2/dashboards/usage

Overview

Get paginated usage statistics for every dashboard in the caller’s organization. Use page[limit] and page[offset] to walk the result set. Use filter[edited_before] or filter[viewed_before] to narrow results by recency. View-count fields depend on Real User Monitoring (RUM) and are null or 0 in orgs without RUM. This endpoint requires the dashboards_read permission.

OAuth apps require the dashboards_read authorization scope to access this endpoint.

Arguments

Query Strings

Name

Type

Description

page[limit]

integer

Maximum number of dashboards to return per page. Server-side maximum is 500; values above 500 return a 400 Bad Request.

page[offset]

integer

Zero-based offset into the result set.

filter[edited_before]

string

Return only dashboards whose last edit (edited_at) is strictly before this ISO 8601 timestamp (edited_at < value; boundary matches are excluded). Must include a timezone offset (for example, Z or +00:00); naive timestamps return HTTP 400.

filter[viewed_before]

string

Return only dashboards whose most recent view (viewed_at) is strictly before this ISO 8601 timestamp, including dashboards that have never been viewed. Must include a timezone offset; naive timestamps return HTTP 400. Orgs without Real User Monitoring (RUM) will see all dashboards returned by this filter.

Response

OK

Paginated list of dashboard usage records.

Expand All

Field

Type

Description

data [required]

[object]

Dashboard usage records, one per dashboard in the caller's organization.

attributes [required]

object

Usage statistics for a dashboard. The viewer field and all view-count fields (total_views, viewed_at, total_views_by_type) are populated only when Real User Monitoring (RUM) is active for the org.

author

object

A user referenced from a dashboard usage record (author or viewer).

handle

string

Datadog handle (login) of the user.

id

string

The user ID.

is_disabled

boolean

Whether the user account is disabled.

name

string

Display name of the user.

created_at

date-time

When the dashboard was created.

dashboard_quality_score

double

The dashboard quality score, or null when no score is available.

edited_at

date-time

When the dashboard was most recently edited.

org_id [required]

int64

The Datadog organization that owns the dashboard.

teams

[string]

Teams the dashboard is tagged with.

title

string

The dashboard title.

total_views

int64

Total view count for the dashboard. Counts only views captured by Real User Monitoring (RUM); 0 in orgs without RUM.

total_views_by_type

object

View counts keyed by view type (in_app, embed, public, shared, api, unknown). Counts only views captured by Real User Monitoring (RUM); empty in orgs without RUM.

<any-key>

int64

View count for that view type.

viewed_at

date-time

When the dashboard was most recently viewed. Populated only when Real User Monitoring (RUM) is active for the org; null in orgs without RUM.

viewer

object

A user referenced from a dashboard usage record (author or viewer).

handle

string

Datadog handle (login) of the user.

id

string

The user ID.

is_disabled

boolean

Whether the user account is disabled.

name

string

Display name of the user.

widget_count

int64

The total number of widgets on the dashboard.

widget_count_by_type

object

Widget counts keyed by widget type. The map includes group widgets and widgets without requests.

<any-key>

int64

Widget count for that widget type.

id [required]

string

The dashboard ID.

type [required]

enum

The type of the resource. Always dashboards-usages. Allowed enum values: dashboards-usages

default: dashboards-usages

links

object

Pagination links for a list of dashboard usage records.

first

string

Link to the first page.

last

string

Link to the last page, or null if the total is unknown.

next

string

Link to the next page. Absent when there is no next page.

prev

string

Link to the previous page. Absent when there is no previous page.

self

string

Link to the current page.

meta [required]

object

Pagination metadata for a list of dashboard usage records.

page

object

Offset-based pagination schema.

first_offset

int64

Integer representing the offset to fetch the first page of results.

last_offset

int64

Integer representing the offset to fetch the last page of results.

limit

int64

Integer representing the number of elements to be returned in the results.

next_offset

int64

Integer representing the index of the first element in the next page of results. Equal to page size added to the current offset.

offset

int64

Integer representing the index of the first element in the results.

prev_offset

int64

Integer representing the index of the first element in the previous page of results.

total

int64

Integer representing the total number of elements available.

type

enum

The pagination type used for offset-based pagination. Allowed enum values: offset_limit

default: offset_limit

{
  "data": [
    {
      "attributes": {
        "author": {
          "handle": "jane.doe@example.com",
          "id": "00000000-0000-0000-0000-000000000000",
          "is_disabled": false,
          "name": "Jane Doe"
        },
        "created_at": "2026-01-15T09:30:00.000Z",
        "dashboard_quality_score": 0.85,
        "edited_at": "2026-04-20T11:05:00.000Z",
        "org_id": 100,
        "teams": [],
        "title": "My production overview",
        "total_views": 42,
        "total_views_by_type": {
          "<any-key>": "integer"
        },
        "viewed_at": "2026-05-01T14:22:10.000Z",
        "viewer": {
          "handle": "jane.doe@example.com",
          "id": "00000000-0000-0000-0000-000000000000",
          "is_disabled": false,
          "name": "Jane Doe"
        },
        "widget_count": 12,
        "widget_count_by_type": {
          "<any-key>": "integer"
        }
      },
      "id": "q5j-nti-fv6",
      "type": "dashboards-usages"
    }
  ],
  "links": {
    "first": "https://api.datadoghq.com/api/v2/dashboards/usage?page[offset]=0\u0026page[limit]=250",
    "last": "string",
    "next": "string",
    "prev": "string",
    "self": "https://api.datadoghq.com/api/v2/dashboards/usage"
  },
  "meta": {
    "page": {
      "first_offset": 0,
      "last_offset": 900,
      "limit": 100,
      "next_offset": 100,
      "offset": 0,
      "prev_offset": 100,
      "total": 1000,
      "type": "offset_limit"
    }
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Forbidden

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example

                  # Curl command
curl -X GET "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/dashboards/usage" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"