Skip to main content
GET
/
v2
/
check-results
/
{checkId}
Lists all check results
curl --request GET \
  --url https://api.checklyhq.com/v2/check-results/{checkId} \
  --header 'Authorization: Bearer <token>'
import requests

url = "https://api.checklyhq.com/v2/check-results/{checkId}"

headers = {"Authorization": "Bearer <token>"}

response = requests.get(url, headers=headers)

print(response.text)
const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};

fetch('https://api.checklyhq.com/v2/check-results/{checkId}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));
<?php

$curl = curl_init();

curl_setopt_array($curl, [
CURLOPT_URL => "https://api.checklyhq.com/v2/check-results/{checkId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
package main

import (
"fmt"
"net/http"
"io"
)

func main() {

url := "https://api.checklyhq.com/v2/check-results/{checkId}"

req, _ := http.NewRequest("GET", url, nil)

req.Header.Add("Authorization", "Bearer <token>")

res, _ := http.DefaultClient.Do(req)

defer res.Body.Close()
body, _ := io.ReadAll(res.Body)

fmt.Println(string(body))

}
HttpResponse<String> response = Unirest.get("https://api.checklyhq.com/v2/check-results/{checkId}")
.header("Authorization", "Bearer <token>")
.asString();
require 'uri'
require 'net/http'

url = URI("https://api.checklyhq.com/v2/check-results/{checkId}")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'

response = http.request(request)
puts response.read_body
{
  "length": 123,
  "entries": [
    {
      "resultType": "FINAL",
      "traceId": "a1b2c3d4e5f67890abcdef0123456789",
      "id": "<string>",
      "name": "<string>",
      "checkId": "<string>",
      "hasFailures": true,
      "hasErrors": true,
      "isDegraded": true,
      "isCancelled": true,
      "overMaxResponseTime": true,
      "runLocation": "<string>",
      "startedAt": "2023-11-07T05:31:56Z",
      "stoppedAt": "2023-11-07T05:31:56Z",
      "created_at": "2023-11-07T05:31:56Z",
      "responseTime": 123,
      "apiCheckResult": {
        "assertions": [
          {
            "source": "STATUS_CODE",
            "target": 200
          }
        ],
        "request": {
          "method": "GET",
          "url": "https://api.checklyhq.com",
          "data": "",
          "headers": {},
          "params": {}
        },
        "response": {
          "status": 200,
          "statusText": "OK",
          "body": "<title> Checkly Public API </title>",
          "headers": {},
          "timings": {},
          "timingPhases": {}
        },
        "requestError": null,
        "jobLog": {},
        "jobAssets": null,
        "pcapDataUrl": "<string>"
      },
      "browserCheckResult": null,
      "multiStepCheckResult": null,
      "agenticCheckResult": {
        "summary": "The homepage loaded correctly and all assertions passed.",
        "prompt": "<string>",
        "assertions": [
          {
            "condition": "The homepage returns an HTTP 200 status",
            "passed": true,
            "actual": "200",
            "expected": "200"
          }
        ],
        "suggestions": [
          {
            "summary": "Monitor the checkout flow end-to-end",
            "prompt": "Sign in and verify the checkout page loads",
            "promptReplacement": "Sign in with {{TEST_USER_EMAIL}} and verify the checkout page loads",
            "secrets": [
              "TEST_USER_EMAIL",
              "TEST_USER_PASSWORD"
            ],
            "category": "credentials"
          }
        ],
        "steps": [
          {
            "type": "tool_call",
            "name": "http_request",
            "input": {},
            "output": "<string>",
            "timestamp": "2026-04-06T14:15:22.000Z",
            "sequenceNumber": 3
          }
        ],
        "errors": [
          {}
        ],
        "artifactManifest": {}
      },
      "playwrightCheckResult": null,
      "tracerouteCheckResult": {
        "totalHops": 12,
        "destinationReached": false,
        "finalHopLatency": {
          "avgMs": 24.1,
          "bestMs": 22,
          "worstMs": 31.4
        },
        "timingPhases": {},
        "requestError": "<string>",
        "request": {},
        "assertions": [
          {}
        ],
        "response": {
          "hostname": "api.checklyhq.com",
          "resolvedIp": "104.18.7.36",
          "totalHops": 12,
          "destinationReached": false,
          "truncationReason": "max-hops",
          "finalHopLatency": {},
          "hops": [
            {}
          ],
          "protocol": "TCP",
          "probeProtocol": "TCP"
        }
      },
      "grpcCheckResult": {
        "grpcStatusCode": 14,
        "healthStatus": 2,
        "timingPhases": {
          "dns": 1.2,
          "connect": 16.8,
          "total": 90
        },
        "requestError": "<string>",
        "request": {},
        "assertions": [
          {}
        ],
        "response": {
          "grpcMode": "BEHAVIOR",
          "host": "grpc.example.com",
          "resolvedIp": "10.0.0.4",
          "port": 443,
          "grpcMethod": "grpc.health.v1.Health/Check",
          "responseMessage": "<string>",
          "grpcStatusCode": 14,
          "grpcStatusMessage": "connection refused",
          "healthStatus": 123,
          "healthStatusLabel": "NOT_SERVING",
          "metadata": [
            {}
          ],
          "discoveredMethods": [
            "<string>"
          ],
          "requestError": "<string>",
          "timingPhases": {}
        }
      },
      "sslCheckResult": {
        "tlsVersion": "TLS 1.3",
        "cipherSuite": "TLS_AES_256_GCM_SHA384",
        "daysUntilExpiry": 12,
        "handshakeTimeMs": 48.2,
        "chainTrusted": false,
        "hostnameVerified": false,
        "baselineVerdict": "FAIL",
        "baselineGrade": "C",
        "failureCategory": "expired",
        "requestError": "<string>",
        "request": {},
        "assertions": [
          {}
        ],
        "response": {
          "resolvedIp": "104.18.7.36",
          "protocol": "TLS 1.3",
          "cipherSuite": "TLS_AES_256_GCM_SHA384",
          "handshakeTimeMs": 48.2,
          "hostnameVerified": false,
          "chainTrusted": false,
          "daysUntilExpiry": 12,
          "ocspStapled": false,
          "ocspStatus": "good",
          "chainTrustReason": "missing_intermediate",
          "chainTrustDetail": "the server did not send the intermediate certificate for issuer \"Acme Intermediate CA\"; add it to the chain.",
          "incompleteChain": true,
          "missingIntermediate": "Acme Intermediate CA",
          "securityBaseline": {},
          "certificate": {},
          "chain": [
            {}
          ]
        }
      },
      "checkRunId": 123,
      "attempts": 123,
      "sequenceId": "2dbfa2a3-5477-45ea-ac33-ee55b8ea66ff",
      "errorGroupIds": [
        "883af87b-ac7c-44e3-9376-b4bece04e788"
      ]
    }
  ],
  "nextId": "<string>"
}
{
"statusCode": 401,
"error": "Unauthorized",
"message": "Bad Token",
"attributes": {}
}
{
"statusCode": 402,
"error": "Payment Required",
"message": "Payment Required",
"attributes": {}
}
{
"statusCode": 403,
"error": "Forbidden",
"message": "Forbidden"
}
{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Too Many Requests",
"attributes": {}
}

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

checkId
string
required

Query Parameters

limit
integer
default:10

Limit the number of results to fetch (default 10)

Required range: 1 <= x <= 100
nextId
string

Cursor parameter to fetch the next page of results. The "nextId" parameter is returned in the response of the previous request. If a response includes a "nextId" parameter set to "null", there are no more results to fetch.

from
string<date>

Select records up from this UNIX timestamp (>= date).

to
string<date>

Optional. Select records up to this UNIX timestamp (< date).

location
enum<string>

Provide a data center location, e.g. "eu-west-1" to filter by location

Available options:
us-east-1,
us-east-2,
us-west-1,
us-west-2,
ca-central-1,
sa-east-1,
eu-west-1,
eu-central-1,
eu-west-2,
eu-west-3,
eu-north-1,
eu-south-1,
me-south-1,
ap-southeast-1,
ap-northeast-1,
ap-east-1,
ap-southeast-2,
ap-southeast-3,
ap-northeast-2,
ap-northeast-3,
ap-south-1,
af-south-1
checkType
enum<string>

The type of the check

Available options:
AGENTIC,
API,
BROWSER,
HEARTBEAT,
ICMP,
MULTI_STEP,
TCP,
PLAYWRIGHT,
TRACEROUTE,
URL,
DNS,
SSL,
GRPC
hasFailures
boolean

Check result has one or more failures

resultType
enum<string>
default:FINAL

The check result type (FINAL,ATTEMPT,ALL)

Available options:
FINAL,
ATTEMPT,
ALL
fields
string[]

Comma-separated list of check result fields to include in each entry.

Response

Successful

length
number
required
entries
object[]
nextId
string | null