GET
/
v1
/
dashboards
List all dashboards
curl --request GET \
  --url https://api.checklyhq.com/v1/dashboards \
  --header 'Authorization: <api-key>'
[
  {
    "customDomain": "https://status.mycompany.com/",
    "customUrl": "status",
    "logo": "https://static.mycompany.com/static/images/logo.svg",
    "favicon": "https://static.mycompany.com/static/images/icon.svg",
    "link": "https://www.mycompany.com/",
    "description": "My dashboard description",
    "width": "FULL",
    "refreshRate": 60,
    "paginate": true,
    "paginationRate": 60,
    "checksPerPage": 15,
    "useTagsAndOperator": false,
    "hideTags": false,
    "enableIncidents": false,
    "expandChecks": false,
    "tags": [
      "production"
    ],
    "showHeader": true,
    "showCheckRunLinks": false,
    "customCSS": "",
    "isPrivate": false,
    "showP95": true,
    "showP99": true,
    "keys": [
      {
        "id": "<string>",
        "rawKey": "da_a89026d28a0c45cf9e11b4c3637f3912",
        "maskedKey": "...6a1e",
        "created_at": "2023-12-25",
        "updated_at": "2023-12-25"
      }
    ],
    "id": 123,
    "dashboardId": "1",
    "created_at": "2023-11-07T05:31:56Z",
    "header": "<string>"
  }
]

Overview

Public dashboards provide a way to share monitoring status with stakeholders, customers, or team members without requiring access to your Checkly account. This endpoint returns all public dashboards configured in your account.

Response Example

{
  "data": [
    {
      "id": "dash_123456789",
      "name": "Production Services Status",
      "description": "Live status of all production services",
      "isPrivate": false,
      "customDomain": "status.example.com",
      "customUrl": "production-status",
      "tags": ["api", "frontend", "public", "status"],
      "checkIds": [
        "check_api_health",
        "check_website_uptime",
        "check_database_connection"
      ],
      "checkGroupIds": [
        "group_production_services",
        "group_critical_apis"
      ],
      "configuration": {
        "theme": "light",
        "logo": "https://example.com/logo.png",
        "refreshInterval": 30,
        "showCheckResults": true,
        "showIncidents": true,
        "customCSS": ".dashboard { font-family: 'Inter'; }"
      },
      "widgets": [
        {
          "type": "status_overview",
          "position": 1,
          "title": "System Status",
          "settings": {
            "showPercentage": true,
            "timeRange": "24h"
          }
        },
        {
          "type": "check_list",
          "position": 2,
          "title": "Service Health",
          "settings": {
            "groupByType": true,
            "showLastResult": true
          }
        }
      ],
      "createdAt": "2024-01-15T10:30:00.000Z",
      "updatedAt": "2024-01-20T14:45:00.000Z"
    },
    {
      "id": "dash_987654321",
      "name": "Team Engineering Dashboard",
      "description": "Internal monitoring dashboard for engineering team",
      "isPrivate": true,
      "customDomain": null,
      "customUrl": "engineering-internal",
      "tags": ["team", "internal", "engineering"],
      "checkIds": [
        "check_dev_api",
        "check_staging_frontend",
        "check_test_db"
      ],
      "checkGroupIds": [
        "group_development_services"
      ],
      "configuration": {
        "theme": "dark",
        "logo": null,
        "refreshInterval": 15,
        "showCheckResults": true,
        "showIncidents": false,
        "customCSS": null
      },
      "widgets": [
        {
          "type": "metrics_chart",
          "position": 1,
          "title": "Response Times",
          "settings": {
            "metric": "response_time",
            "timeRange": "7d"
          }
        }
      ],
      "createdAt": "2024-01-10T08:15:00.000Z",
      "updatedAt": "2024-01-18T16:20:00.000Z"
    }
  ],
  "meta": {
    "currentPage": 1,
    "totalPages": 1,
    "totalItems": 2,
    "limit": 10
  }
}

Common Use Cases

Status Pages

Share service status with customers and stakeholders
GET /v1/dashboards?tags=public,status

Team Dashboards

Provide team-specific monitoring views for different teams
GET /v1/dashboards?tags=team,internal

Executive Reports

High-level overview dashboards for management reporting
GET /v1/dashboards?tags=executive,summary

Customer Communication

Transparent communication during incidents and maintenance
GET /v1/dashboards?isPrivate=false

Additional Examples

curl -X GET "https://api.checklyhq.com/v1/dashboards?isPrivate=false" \
  -H "Authorization: Bearer cu_1234567890abcdef" \
  -H "X-Checkly-Account: 550e8400-e29b-41d4-a716-446655440000"
Public dashboards can be accessed without authentication using their custom URLs or domains. Private dashboards require appropriate account access.

Authorizations

Authorization
string
header
required

The Checkly Public API uses API keys to authenticate requests. You can get the API Key here.

Your API key is like a password: keep it secure!

Authentication to the API is performed using the Bearer auth method in the Authorization header and using the account ID.

For example, set Authorization header while using cURL:

curl -H "Authorization: Bearer [apiKey]" "X-Checkly-Account: [accountId]"

Headers

x-checkly-account
string

Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general

Query Parameters

limit
integer
default:10

Limit the number of results

Required range: 1 <= x <= 100
page
number
default:1

Page number

Response

Successful

id
number
required
dashboardId
string
required
Example:

"1"

created_at
string<date-time>
required
customDomain
string

A custom user domain, e.g. "status.example.com". See the docs on updating your DNS and SSL usage.

Example:

"https://status.mycompany.com/"

customUrl
string

A subdomain name under "checklyhq.com". Needs to be unique across all users.

Example:

"status"

A URL pointing to an image file.

Example:

"https://static.mycompany.com/static/images/logo.svg"

favicon
string

A URL pointing to an image file used as dashboard favicon.

Example:

"https://static.mycompany.com/static/images/icon.svg"

A URL link to redirect when dashboard logo is clicked on.

Example:

"https://www.mycompany.com/"

description
string

A piece of text displayed below the header or title of your dashboard.

Example:

"My dashboard description"

width
enum<string>
default:FULL

Determines whether to use the full screen or focus in the center.

Available options:
FULL,
960PX
refreshRate
enum<number>
default:60

How often to refresh the dashboard in seconds.

Available options:
60,
300,
600
paginate
boolean
default:true

Determines of pagination is on or off.

paginationRate
enum<number>
default:60

How often to trigger pagination in seconds.

Available options:
30,
60,
300
checksPerPage
number
default:15

Number of checks displayed per page.

Required range: 1 <= x <= 20
useTagsAndOperator
boolean
default:false

When to use AND operator for tags lookup.

hideTags
boolean
default:false

Show or hide the tags on the dashboard.

enableIncidents
boolean
default:false

Enable or disable incidents on the dashboard.

expandChecks
boolean
default:false

Expand or collapse checks on the dashboard.

tags
string[]

A list of one or more tags that filter which checks to display on the dashboard.

Example:
["production"]
showHeader
boolean
default:true

Show or hide header and description on the dashboard.

Show or hide check run links on the dashboard.

customCSS
string
default:""

Custom CSS to be applied to the dashboard.

isPrivate
boolean
default:false

Determines if the dashboard is public or private.

showP95
boolean
default:true

Show or hide the P95 stats on the dashboard.

showP99
boolean
default:true

Show or hide the P99 stats on the dashboard.

keys
object[]

Show key for private dashboard.

header
string