Post an update on a Status Page incident.
This is the endpoint to use when resolving an incident - set incident_status to “resolved” to end the incident. There is a limit of 100 updates per incident.
This endpoint requires an API key with the “Create status page incidents, status page maintenance windows, and publish status page updates” scope.
curl --request POST \
--url https://api.incident.io/v2/status_page_incident_updates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"component_statuses": [
{
"component_id": "01FCNDV6P870EA6S7TK1DSYDG2",
"component_status": "operational"
}
],
"incident_status": "investigating",
"message": "The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.",
"notify_subscribers": true,
"status_page_incident_id": "01FCNDV6P870EA6S7TK1DSYDG1"
}
'import requests
url = "https://api.incident.io/v2/status_page_incident_updates"
payload = {
"component_statuses": [
{
"component_id": "01FCNDV6P870EA6S7TK1DSYDG2",
"component_status": "operational"
}
],
"incident_status": "investigating",
"message": "The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.",
"notify_subscribers": True,
"status_page_incident_id": "01FCNDV6P870EA6S7TK1DSYDG1"
}
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({
component_statuses: [{component_id: '01FCNDV6P870EA6S7TK1DSYDG2', component_status: 'operational'}],
incident_status: 'investigating',
message: 'The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.',
notify_subscribers: true,
status_page_incident_id: '01FCNDV6P870EA6S7TK1DSYDG1'
})
};
fetch('https://api.incident.io/v2/status_page_incident_updates', 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.incident.io/v2/status_page_incident_updates",
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([
'component_statuses' => [
[
'component_id' => '01FCNDV6P870EA6S7TK1DSYDG2',
'component_status' => 'operational'
]
],
'incident_status' => 'investigating',
'message' => 'The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.',
'notify_subscribers' => true,
'status_page_incident_id' => '01FCNDV6P870EA6S7TK1DSYDG1'
]),
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.incident.io/v2/status_page_incident_updates"
payload := strings.NewReader("{\n \"component_statuses\": [\n {\n \"component_id\": \"01FCNDV6P870EA6S7TK1DSYDG2\",\n \"component_status\": \"operational\"\n }\n ],\n \"incident_status\": \"investigating\",\n \"message\": \"The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.\",\n \"notify_subscribers\": true,\n \"status_page_incident_id\": \"01FCNDV6P870EA6S7TK1DSYDG1\"\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.incident.io/v2/status_page_incident_updates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"component_statuses\": [\n {\n \"component_id\": \"01FCNDV6P870EA6S7TK1DSYDG2\",\n \"component_status\": \"operational\"\n }\n ],\n \"incident_status\": \"investigating\",\n \"message\": \"The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.\",\n \"notify_subscribers\": true,\n \"status_page_incident_id\": \"01FCNDV6P870EA6S7TK1DSYDG1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.incident.io/v2/status_page_incident_updates")
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 \"component_statuses\": [\n {\n \"component_id\": \"01FCNDV6P870EA6S7TK1DSYDG2\",\n \"component_status\": \"operational\"\n }\n ],\n \"incident_status\": \"investigating\",\n \"message\": \"The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.\",\n \"notify_subscribers\": true,\n \"status_page_incident_id\": \"01FCNDV6P870EA6S7TK1DSYDG1\"\n}"
response = http.request(request)
puts response.read_body{
"status_page_incident_update": {
"component_statuses": [
{
"component_id": "01FCNDV6P870EA6S7TK1DSYDG2",
"component_status": "operational"
}
],
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"incident_status": "investigating",
"message": "abc123",
"published_at": "2021-08-17T13:28:57.801578Z",
"status_page_incident_id": "01FCNDV6P870EA6S7TK1DSYDG1"
}
}Authorizations
API key from your incident.io dashboard (Settings → API keys)
Body
Markdown update on what's changed about this status page incident
4096"The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues."
Whether to notify subscribers about this incident update. This will not work if your status page has more than 1000 subscribers.
true
ID of the status page incident
"01FCNDV6P870EA6S7TK1DSYDG1"
An array of mappings from component ID to component status. This must not be set if the status page incident status is being set to "resolved", as all components statuses will update to "operational".
Show child attributes
Show child attributes
[
{
"component_id": "01FCNDV6P870EA6S7TK1DSYDG2",
"component_status": "operational"
}
]
Optional new status for this status page incident. If not provided, the status will remain unchanged. Setting to "resolved" will end the incident and all component statuses will update to "operational".
investigating, identified, monitoring, resolved "investigating"
Response
Created response.
Show child attributes
Show child attributes
Was this page helpful?
curl --request POST \
--url https://api.incident.io/v2/status_page_incident_updates \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"component_statuses": [
{
"component_id": "01FCNDV6P870EA6S7TK1DSYDG2",
"component_status": "operational"
}
],
"incident_status": "investigating",
"message": "The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.",
"notify_subscribers": true,
"status_page_incident_id": "01FCNDV6P870EA6S7TK1DSYDG1"
}
'import requests
url = "https://api.incident.io/v2/status_page_incident_updates"
payload = {
"component_statuses": [
{
"component_id": "01FCNDV6P870EA6S7TK1DSYDG2",
"component_status": "operational"
}
],
"incident_status": "investigating",
"message": "The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.",
"notify_subscribers": True,
"status_page_incident_id": "01FCNDV6P870EA6S7TK1DSYDG1"
}
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({
component_statuses: [{component_id: '01FCNDV6P870EA6S7TK1DSYDG2', component_status: 'operational'}],
incident_status: 'investigating',
message: 'The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.',
notify_subscribers: true,
status_page_incident_id: '01FCNDV6P870EA6S7TK1DSYDG1'
})
};
fetch('https://api.incident.io/v2/status_page_incident_updates', 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.incident.io/v2/status_page_incident_updates",
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([
'component_statuses' => [
[
'component_id' => '01FCNDV6P870EA6S7TK1DSYDG2',
'component_status' => 'operational'
]
],
'incident_status' => 'investigating',
'message' => 'The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.',
'notify_subscribers' => true,
'status_page_incident_id' => '01FCNDV6P870EA6S7TK1DSYDG1'
]),
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.incident.io/v2/status_page_incident_updates"
payload := strings.NewReader("{\n \"component_statuses\": [\n {\n \"component_id\": \"01FCNDV6P870EA6S7TK1DSYDG2\",\n \"component_status\": \"operational\"\n }\n ],\n \"incident_status\": \"investigating\",\n \"message\": \"The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.\",\n \"notify_subscribers\": true,\n \"status_page_incident_id\": \"01FCNDV6P870EA6S7TK1DSYDG1\"\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.incident.io/v2/status_page_incident_updates")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"component_statuses\": [\n {\n \"component_id\": \"01FCNDV6P870EA6S7TK1DSYDG2\",\n \"component_status\": \"operational\"\n }\n ],\n \"incident_status\": \"investigating\",\n \"message\": \"The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.\",\n \"notify_subscribers\": true,\n \"status_page_incident_id\": \"01FCNDV6P870EA6S7TK1DSYDG1\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.incident.io/v2/status_page_incident_updates")
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 \"component_statuses\": [\n {\n \"component_id\": \"01FCNDV6P870EA6S7TK1DSYDG2\",\n \"component_status\": \"operational\"\n }\n ],\n \"incident_status\": \"investigating\",\n \"message\": \"The fix has been deployed and we are monitoring the situation. Some users may still experience intermittent issues.\",\n \"notify_subscribers\": true,\n \"status_page_incident_id\": \"01FCNDV6P870EA6S7TK1DSYDG1\"\n}"
response = http.request(request)
puts response.read_body{
"status_page_incident_update": {
"component_statuses": [
{
"component_id": "01FCNDV6P870EA6S7TK1DSYDG2",
"component_status": "operational"
}
],
"id": "01FCNDV6P870EA6S7TK1DSYDG0",
"incident_status": "investigating",
"message": "abc123",
"published_at": "2021-08-17T13:28:57.801578Z",
"status_page_incident_id": "01FCNDV6P870EA6S7TK1DSYDG1"
}
}