Open an incident on a v3 status page.
curl --request POST \
--url https://api.checklyhq.com/v3/status-pages/{statusPageId}/incidents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"incidentUpdates": [
{
"description": "<string>",
"publicIncidentUpdateDate": "2026-08-31T13:12:43.381Z",
"notifySubscribers": false
}
],
"componentImpacts": [
{
"componentId": "<string>"
}
]
}
'import requests
url = "https://api.checklyhq.com/v3/status-pages/{statusPageId}/incidents"
payload = {
"name": "<string>",
"incidentUpdates": [
{
"description": "<string>",
"publicIncidentUpdateDate": "2026-08-31T13:12:43.381Z",
"notifySubscribers": False
}
],
"componentImpacts": [{ "componentId": "<string>" }]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
incidentUpdates: [
{
description: '<string>',
publicIncidentUpdateDate: '2026-08-31T13:12:43.381Z',
notifySubscribers: false
}
],
componentImpacts: [{componentId: '<string>'}]
})
};
fetch('https://api.checklyhq.com/v3/status-pages/{statusPageId}/incidents', 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/v3/status-pages/{statusPageId}/incidents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'incidentUpdates' => [
[
'description' => '<string>',
'publicIncidentUpdateDate' => '2026-08-31T13:12:43.381Z',
'notifySubscribers' => false
]
],
'componentImpacts' => [
[
'componentId' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.checklyhq.com/v3/status-pages/{statusPageId}/incidents"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"incidentUpdates\": [\n {\n \"description\": \"<string>\",\n \"publicIncidentUpdateDate\": \"2026-08-31T13:12:43.381Z\",\n \"notifySubscribers\": false\n }\n ],\n \"componentImpacts\": [\n {\n \"componentId\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.checklyhq.com/v3/status-pages/{statusPageId}/incidents")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"incidentUpdates\": [\n {\n \"description\": \"<string>\",\n \"publicIncidentUpdateDate\": \"2026-08-31T13:12:43.381Z\",\n \"notifySubscribers\": false\n }\n ],\n \"componentImpacts\": [\n {\n \"componentId\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.checklyhq.com/v3/status-pages/{statusPageId}/incidents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"incidentUpdates\": [\n {\n \"description\": \"<string>\",\n \"publicIncidentUpdateDate\": \"2026-08-31T13:12:43.381Z\",\n \"notifySubscribers\": false\n }\n ],\n \"componentImpacts\": [\n {\n \"componentId\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"statusPageId": "<string>",
"name": "<string>",
"lastUpdateStatus": "INVESTIGATING",
"created_at": "2023-12-25",
"incidentUpdates": [
{
"description": "<string>",
"status": "INVESTIGATING",
"id": "<string>",
"created_at": "2023-12-25",
"publicIncidentUpdateDate": "2026-08-31T13:12:43.392Z",
"notifySubscribers": false
}
],
"duration": 123,
"componentImpacts": [
{
"componentId": "<string>",
"status": "OPERATIONAL",
"startedAt": "2023-12-25",
"endedAt": "2023-12-25"
}
],
"updated_at": "2023-12-25"
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Bad Token",
"attributes": {}
}{
"statusCode": 403,
"error": "Forbidden",
"message": "Forbidden"
}{
"statusCode": 404,
"error": "Not Found",
"message": "Not Found"
}{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Too Many Requests",
"attributes": {}
}Status Page Incidents
Open an incident on a v3 status page.
Open an incident on a v3 status page with its first update and the current status of the impacted components.
POST
/
v3
/
status-pages
/
{statusPageId}
/
incidents
Open an incident on a v3 status page.
curl --request POST \
--url https://api.checklyhq.com/v3/status-pages/{statusPageId}/incidents \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"incidentUpdates": [
{
"description": "<string>",
"publicIncidentUpdateDate": "2026-08-31T13:12:43.381Z",
"notifySubscribers": false
}
],
"componentImpacts": [
{
"componentId": "<string>"
}
]
}
'import requests
url = "https://api.checklyhq.com/v3/status-pages/{statusPageId}/incidents"
payload = {
"name": "<string>",
"incidentUpdates": [
{
"description": "<string>",
"publicIncidentUpdateDate": "2026-08-31T13:12:43.381Z",
"notifySubscribers": False
}
],
"componentImpacts": [{ "componentId": "<string>" }]
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
name: '<string>',
incidentUpdates: [
{
description: '<string>',
publicIncidentUpdateDate: '2026-08-31T13:12:43.381Z',
notifySubscribers: false
}
],
componentImpacts: [{componentId: '<string>'}]
})
};
fetch('https://api.checklyhq.com/v3/status-pages/{statusPageId}/incidents', 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/v3/status-pages/{statusPageId}/incidents",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'incidentUpdates' => [
[
'description' => '<string>',
'publicIncidentUpdateDate' => '2026-08-31T13:12:43.381Z',
'notifySubscribers' => false
]
],
'componentImpacts' => [
[
'componentId' => '<string>'
]
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.checklyhq.com/v3/status-pages/{statusPageId}/incidents"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"incidentUpdates\": [\n {\n \"description\": \"<string>\",\n \"publicIncidentUpdateDate\": \"2026-08-31T13:12:43.381Z\",\n \"notifySubscribers\": false\n }\n ],\n \"componentImpacts\": [\n {\n \"componentId\": \"<string>\"\n }\n ]\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.checklyhq.com/v3/status-pages/{statusPageId}/incidents")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"incidentUpdates\": [\n {\n \"description\": \"<string>\",\n \"publicIncidentUpdateDate\": \"2026-08-31T13:12:43.381Z\",\n \"notifySubscribers\": false\n }\n ],\n \"componentImpacts\": [\n {\n \"componentId\": \"<string>\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.checklyhq.com/v3/status-pages/{statusPageId}/incidents")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"<string>\",\n \"incidentUpdates\": [\n {\n \"description\": \"<string>\",\n \"publicIncidentUpdateDate\": \"2026-08-31T13:12:43.381Z\",\n \"notifySubscribers\": false\n }\n ],\n \"componentImpacts\": [\n {\n \"componentId\": \"<string>\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"id": "<string>",
"statusPageId": "<string>",
"name": "<string>",
"lastUpdateStatus": "INVESTIGATING",
"created_at": "2023-12-25",
"incidentUpdates": [
{
"description": "<string>",
"status": "INVESTIGATING",
"id": "<string>",
"created_at": "2023-12-25",
"publicIncidentUpdateDate": "2026-08-31T13:12:43.392Z",
"notifySubscribers": false
}
],
"duration": 123,
"componentImpacts": [
{
"componentId": "<string>",
"status": "OPERATIONAL",
"startedAt": "2023-12-25",
"endedAt": "2023-12-25"
}
],
"updated_at": "2023-12-25"
}{
"statusCode": 401,
"error": "Unauthorized",
"message": "Bad Token",
"attributes": {}
}{
"statusCode": 403,
"error": "Forbidden",
"message": "Forbidden"
}{
"statusCode": 404,
"error": "Not Found",
"message": "Not Found"
}{
"statusCode": 429,
"error": "Too Many Requests",
"message": "Too Many Requests",
"attributes": {}
}Authorizations
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
Your Checkly account ID, you can find it at https://app.checklyhq.com/settings/account/general
Path Parameters
Body
application/json
Response
Created
Available options:
INVESTIGATING, IDENTIFIED, MONITORING, RESOLVED Show child attributes
Show child attributes
Seconds from the first update to the resolving update; null while ongoing.
Show child attributes
Show child attributes
Was this page helpful?