GET
/
v1
/
analytics
/
browser-checks
/
{id}
Browser checks
curl --request GET \
  --url https://api.checklyhq.com/v1/analytics/browser-checks/{id} \
  --header 'Authorization: <api-key>'
{
  "checkId": "<string>",
  "name": "<string>",
  "checkType": "API",
  "activated": true,
  "muted": true,
  "frequency": 123,
  "from": "2023-12-25",
  "to": "2023-12-25",
  "tags": [
    "<string>"
  ],
  "series": [
    "<string>"
  ],
  "pagination": {
    "page": 123,
    "limit": 123
  },
  "metadata": {
    "responseTime": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TTFB": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "FCP": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "LCP": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "CLS": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TBT": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "consoleErrors": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "networkErrors": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "userScriptErrors": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "documentErrors": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "availability": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "retries": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "responseTime_avg": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "responseTime_max": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "responseTime_median": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "responseTime_min": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "responseTime_p50": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "responseTime_p90": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "responseTime_p95": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "responseTime_p99": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "responseTime_stddev": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "responseTime_sum": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TTFB_avg": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TTFB_max": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TTFB_median": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TTFB_min": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TTFB_p50": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TTFB_p90": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TTFB_p95": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TTFB_p99": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TTFB_stddev": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TTFB_sum": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "FCP_avg": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "FCP_max": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "FCP_median": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "FCP_min": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "FCP_p50": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "FCP_p90": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "FCP_p95": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "FCP_p99": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "FCP_stddev": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "FCP_sum": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "LCP_avg": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "LCP_max": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "LCP_median": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "LCP_min": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "LCP_p50": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "LCP_p90": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "LCP_p95": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "LCP_p99": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "LCP_stddev": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "LCP_sum": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "CLS_avg": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "CLS_max": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "CLS_median": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "CLS_min": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "CLS_p50": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "CLS_p90": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "CLS_p95": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "CLS_p99": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "CLS_stddev": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "CLS_sum": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TBT_avg": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TBT_max": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TBT_median": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TBT_min": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TBT_p50": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TBT_p90": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TBT_p95": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TBT_p99": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TBT_stddev": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "TBT_sum": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "consoleErrors_avg": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "consoleErrors_max": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "consoleErrors_median": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "consoleErrors_min": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "consoleErrors_p50": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "consoleErrors_p90": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "consoleErrors_p95": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "consoleErrors_p99": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "consoleErrors_stddev": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "consoleErrors_sum": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "networkErrors_avg": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "networkErrors_max": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "networkErrors_median": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "networkErrors_min": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "networkErrors_p50": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "networkErrors_p90": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "networkErrors_p95": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "networkErrors_p99": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "networkErrors_stddev": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "networkErrors_sum": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "userScriptErrors_avg": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "userScriptErrors_max": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "userScriptErrors_median": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "userScriptErrors_min": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "userScriptErrors_p50": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "userScriptErrors_p90": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "userScriptErrors_p95": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "userScriptErrors_p99": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "userScriptErrors_stddev": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "userScriptErrors_sum": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "documentErrors_avg": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "documentErrors_max": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "documentErrors_median": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "documentErrors_min": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "documentErrors_p50": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "documentErrors_p90": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "documentErrors_p95": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "documentErrors_p99": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "documentErrors_stddev": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    },
    "documentErrors_sum": {
      "unit": "milliseconds",
      "label": "<string>",
      "aggregation": "avg"
    }
  }
}

Overview

This endpoint provides comprehensive analytics for browser checks, including page load times, script execution performance, Core Web Vitals, and other user experience metrics. Essential for monitoring web application performance from the end-user perspective.

Response Example

{
  "data": {
    "checkId": "browser_check_789123",
    "checkName": "E-commerce Checkout Flow",
    "timeframe": {
      "from": "2024-01-01T00:00:00.000Z",
      "to": "2024-01-31T23:59:59.999Z"
    },
    "metrics": {
      "averagePageLoadTime": 2.8,
      "averageScriptDuration": 15.6,
      "successRate": 98.5,
      "errorRate": 1.5,
      "totalRuns": 4320,
      "successfulRuns": 4255,
      "failedRuns": 65,
      "coreWebVitals": {
        "firstContentfulPaint": 1.2,
        "largestContentfulPaint": 2.4,
        "cumulativeLayoutShift": 0.05,
        "firstInputDelay": 12.3
      },
      "performanceScore": 87.5
    },
    "timeline": [
      {
        "timestamp": "2024-01-01T00:00:00.000Z",
        "pageLoadTime": 2.6,
        "scriptDuration": 14.8,
        "status": "success",
        "coreWebVitals": {
          "firstContentfulPaint": 1.1,
          "largestContentfulPaint": 2.3,
          "cumulativeLayoutShift": 0.04
        }
      }
    ],
    "locationBreakdown": [
      {
        "location": "us-east-1",
        "locationName": "N. Virginia, USA",
        "averagePageLoadTime": 2.5,
        "averageScriptDuration": 14.2,
        "successRate": 99.1,
        "runCount": 1440
      }
    ],
    "stepBreakdown": [
      {
        "stepName": "Navigate to homepage",
        "averageDuration": 2.1,
        "successRate": 99.8,
        "errorCount": 3
      },
      {
        "stepName": "Add item to cart",
        "averageDuration": 1.2,
        "successRate": 99.5,
        "errorCount": 8
      },
      {
        "stepName": "Complete checkout",
        "averageDuration": 3.8,
        "successRate": 97.9,
        "errorCount": 54
      }
    ]
  }
}

Query Parameters

  • from (string): Start date for analytics data (ISO 8601 format)
  • to (string): End date for analytics data (ISO 8601 format)
  • period (string): Predefined time period (24h, 7d, 30d, 90d)
Default: Last 30 days if no parameters provided
  • granularity (string): Data point granularity (5m, 15m, 1h, 1d)
  • locations (array): Filter by specific monitoring locations
  • includeSteps (boolean): Include individual step performance data
  • includeCoreWebVitals (boolean): Include Core Web Vitals metrics
Example:
?from=2024-01-01T00:00:00Z&to=2024-01-31T23:59:59Z&includeSteps=true&includeCoreWebVitals=true

Metrics Explained

Page Performance

  • Page Load Time: Time to fully load the page
  • Script Duration: Total time for script execution
  • Performance Score: Overall performance rating (0-100)

Core Web Vitals

  • FCP: First Contentful Paint - time to first content render
  • LCP: Largest Contentful Paint - time to largest element render
  • CLS: Cumulative Layout Shift - visual stability score
  • FID: First Input Delay - interactivity responsiveness

User Experience

  • Success Rate: Percentage of successful browser check runs
  • Error Breakdown: Failed steps and error categories
  • Step Performance: Individual step execution times

Geographic Analysis

  • Location Performance: Performance metrics by region
  • Network Conditions: Simulated network performance
  • Device Simulation: Mobile vs desktop performance

Use Cases

Track Google’s Core Web Vitals for SEO and user experience:
  • Monitor FCP, LCP, CLS, and FID metrics
  • Ensure Core Web Vitals meet Google’s “Good” thresholds
  • Track performance impact of code changes
  • Optimize for search rankings and user experience
Analyze end-to-end user workflows:
  • Track multi-step processes like checkout flows
  • Identify bottlenecks in user journeys
  • Monitor conversion funnel performance
  • Detect step-specific failures and optimization opportunities
Detect performance regressions after deployments:
  • Compare performance before and after releases
  • Set up alerts for performance degradation
  • Track script execution time changes
  • Monitor impact of new features on performance
Optimize performance across different regions:
  • Compare page load times across locations
  • Identify regions with poor performance
  • Make CDN and infrastructure decisions
  • Optimize for global user experience

Code Examples

curl -X GET "https://api.checklyhq.com/v1/analytics/browser-checks/browser_check_789123?period=7d&includeSteps=true&includeCoreWebVitals=true" \
  -H "Authorization: Bearer cu_1234567890abcdef" \
  -H "X-Checkly-Account: 550e8400-e29b-41d4-a716-446655440000"
Browser check analytics include detailed Core Web Vitals metrics that align with Google’s performance standards for SEO and user experience optimization.

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

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
enum<string>
default:last24Hours

Preset reporting windows are used for quickly generating report on commonly used windows. Can be overridden by using a custom "to" and "from" timestamp.

Available options:
last24Hours,
last7Days,
last30Days,
thisWeek,
thisMonth,
lastWeek,
lastMonth
aggregationInterval
number

The time interval to use for aggregating metrics in minutes. For example, five minutes is 5, 24 hours is 1440.

Required range: 1 <= x <= 43200
filterByStatus
enum<string>[]

Filter based on whether a check result was either failing or passing

groupBy
enum<string>

Determines how the series data is grouped. Note that grouped queries are a bit more expensive and might take longer.

Available options:
runLocation,
pageIndex
metrics
enum<string>[]
required

Available metrics for Browser Checks. You can pass multiple metrics as a comma separated string.

limit
integer
default:10

Limit the number of results

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

Page number

Response

Success

checkId
string
name
string
checkType
enum<string>
Available options:
API,
BROWSER,
HEARTBEAT,
MULTI_STEP,
TCP,
PLAYWRIGHT,
URL
activated
boolean
muted
boolean
frequency
number
from
string<date>
to
string<date>
tags
string[]
series
string[]
pagination
object
metadata
object