---
title: "API checks"
method: GET
path: "/v1/analytics/api-checks/{id}"
tags: ["Analytics"]
---

# API checks

`GET /v1/analytics/api-checks/{id}`

Fetch detailed availability metrics and aggregated or non-aggregated API Check metrics across custom time ranges. For example, you can get the p99 and p95 of all the DNS phases of your API check together with the availability percentage for any time range.
**Rate-limiting is applied to this endpoint, you can send 30 requests / 60 seconds at most.**

## Path parameters

- `id` string, required

## Query parameters

- `from` string, date — Custom start time of reporting window in unix timestamp format. Setting a custom "from" timestamp overrides the use of any "quickRange".
- `to` string, date — Custom end time of reporting window in unix timestamp format. Setting a custom "to" timestamp overrides the use of any "quickRange".
- `quickRange` 'last24Hours' | 'last7Days' | 'last30Days' | 'thisWeek' | 'thisMonth' | 'lastWeek' | 'lastMonth' — Preset reporting windows are used for quickly generating report on commonly used windows. Can be overridden by using a custom "to" and "from" timestamp.
- `aggregationInterval` number — The time interval to use for aggregating metrics in minutes. For example, five minutes is 5, 24 hours is 1440.
- `filterByStatus` string[] — Filter based on whether a check result was either failing or passing
- `groupBy` 'runLocation' | 'statusCode' — Determines how the series data is grouped. Note that grouped queries are a bit more expensive and might take longer.
- `metrics` string[], required — Available metrics for API Checks. You can pass multiple metrics as a comma separated string.
- `limit` integer — Limit the number of results
- `page` number — Page number

## Headers

- `x-checkly-account` string — Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general

## Response `200`

Success

- Model10
  - `checkId` string
  - `name` string
  - `checkType` 'AGENTIC' | 'API' | 'BROWSER' | 'HEARTBEAT' | 'ICMP' | 'MULTI_STEP' | 'TCP' | 'PLAYWRIGHT' | 'TRACEROUTE' | 'URL' | 'DNS' | 'SSL' | 'GRPC'
  - `activated` boolean
  - `muted` boolean
  - `frequency` number
  - `from` string, date
  - `to` string, date
  - `tags` string[]
  - `series` string[]
  - `pagination` Pagination
    - `page` number
    - `limit` number
  - `metadata` Metadata
    - `responseTime` ResponseTime
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `wait` Wait
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `dns` Dns
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `tcp` Tcp
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `firstByte` FirstByte
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `download` Download
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `availability` Availability
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `retries` Retries
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `responseTime_avg` ResponseTimeAvg
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `responseTime_max` ResponseTimeMax
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `responseTime_median` ResponseTimeMedian
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `responseTime_min` ResponseTimeMin
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `responseTime_p50` ResponseTimeP50
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `responseTime_p90` ResponseTimeP90
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `responseTime_p95` ResponseTimeP95
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `responseTime_p99` ResponseTimeP99
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `responseTime_stddev` ResponseTimeStddev
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `responseTime_sum` ResponseTimeSum
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `wait_avg` WaitAvg
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `wait_max` WaitMax
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `wait_median` WaitMedian
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `wait_min` WaitMin
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `wait_p50` WaitP50
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `wait_p90` WaitP90
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `wait_p95` WaitP95
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `wait_p99` WaitP99
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `wait_stddev` WaitStddev
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `wait_sum` WaitSum
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `dns_avg` DnsAvg
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `dns_max` DnsMax
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `dns_median` DnsMedian
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `dns_min` DnsMin
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `dns_p50` DnsP50
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `dns_p90` DnsP90
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `dns_p95` DnsP95
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `dns_p99` DnsP99
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `dns_stddev` DnsStddev
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `dns_sum` DnsSum
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `tcp_avg` TcpAvg
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `tcp_max` TcpMax
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `tcp_median` TcpMedian
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `tcp_min` TcpMin
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `tcp_p50` TcpP50
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `tcp_p90` TcpP90
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `tcp_p95` TcpP95
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `tcp_p99` TcpP99
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `tcp_stddev` TcpStddev
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `tcp_sum` TcpSum
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `firstByte_avg` FirstByteAvg
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `firstByte_max` FirstByteMax
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `firstByte_median` FirstByteMedian
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `firstByte_min` FirstByteMin
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `firstByte_p50` FirstByteP50
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `firstByte_p90` FirstByteP90
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `firstByte_p95` FirstByteP95
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `firstByte_p99` FirstByteP99
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `firstByte_stddev` FirstByteStddev
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `firstByte_sum` FirstByteSum
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `download_avg` DownloadAvg
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `download_max` DownloadMax
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `download_median` DownloadMedian
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `download_min` DownloadMin
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `download_p50` DownloadP50
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `download_p90` DownloadP90
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `download_p95` DownloadP95
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `download_p99` DownloadP99
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `download_stddev` DownloadStddev
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'
    - `download_sum` DownloadSum
      - `unit` 'milliseconds' | 'score' | 'count' | 'percentage'
      - `label` string
      - `aggregation` 'avg' | 'max' | 'median' | 'min' | 'p50' | 'p90' | 'p95' | 'p99' | 'stddev' | 'sum'

## Other responses

- `401` — Unauthorized
- `403` — Forbidden
- `429` — Too Many Requests

---

[API](https://skmtc.net/checklyhq/apis/checkly-public-api.md) · [All operations](https://skmtc.net/checklyhq/apis/checkly-public-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/checklyhq/checkly-public-api/versions/9e903da4f3da/schema)
