List incidents
curl --request GET \
--url https://api.phare.io/uptime/incidents \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.phare.io/uptime/incidents"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.phare.io/uptime/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.phare.io/uptime/incidents",
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.phare.io/uptime/incidents"
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.phare.io/uptime/incidents")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phare.io/uptime/incidents")
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{
"data": [
{
"impact": "unknown",
"title": "Service is not working as expected",
"exclude_from_downtime": false,
"monitors": [
1,
2,
3
],
"id": 1,
"project_id": 1,
"type": "monitor",
"slug": "APP-123",
"state": "unknown",
"status": "ongoing",
"description": "The server answered with an unexpected status code: 503.",
"incident_at": "2023-11-07T05:31:56Z",
"recovery_at": "2023-11-07T05:31:56Z",
"tags": [
"environment:production"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"meta": {
"current_page": 2,
"from": 11,
"to": 20,
"per_page": 100,
"path": "https://api.phare.io/{resource}?page=2"
},
"links": {
"first": "https://api.phare.io/{resource}?page=2",
"last": "https://api.phare.io/{resource}?page=10",
"prev": "https://api.phare.io/{resource}?page=1",
"next": "https://api.phare.io/{resource}?page=1"
}
}{
"message": "Unauthenticated."
}{
"message": "The platform:write permission is required to perform this action."
}{
"message": "<string>",
"errors": {
"key": [
"The key field is required"
]
}
}Incidents
List incidents
Get a paginated list of incidents
GET
/
uptime
/
incidents
List incidents
curl --request GET \
--url https://api.phare.io/uptime/incidents \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.phare.io/uptime/incidents"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.phare.io/uptime/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.phare.io/uptime/incidents",
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.phare.io/uptime/incidents"
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.phare.io/uptime/incidents")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phare.io/uptime/incidents")
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{
"data": [
{
"impact": "unknown",
"title": "Service is not working as expected",
"exclude_from_downtime": false,
"monitors": [
1,
2,
3
],
"id": 1,
"project_id": 1,
"type": "monitor",
"slug": "APP-123",
"state": "unknown",
"status": "ongoing",
"description": "The server answered with an unexpected status code: 503.",
"incident_at": "2023-11-07T05:31:56Z",
"recovery_at": "2023-11-07T05:31:56Z",
"tags": [
"environment:production"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}
],
"meta": {
"current_page": 2,
"from": 11,
"to": 20,
"per_page": 100,
"path": "https://api.phare.io/{resource}?page=2"
},
"links": {
"first": "https://api.phare.io/{resource}?page=2",
"last": "https://api.phare.io/{resource}?page=10",
"prev": "https://api.phare.io/{resource}?page=1",
"next": "https://api.phare.io/{resource}?page=1"
}
}{
"message": "Unauthenticated."
}{
"message": "The platform:write permission is required to perform this action."
}{
"message": "<string>",
"errors": {
"key": [
"The key field is required"
]
}
}Authorizations
Use a user token to access authenticated routes. The token must be specified in the Authorization HTTP header with the following format 'Authorization: Bearer '.
Headers
A project header is required when using an organization-scoped API key.
Example:
1
A project header is required when using an organization-scoped API key.
Example:
"luminous-guiding-tower"
Query Parameters
Filter incidents by monitor ID. Can be specified multiple times to filter by multiple monitor IDs.
Filter incidents by tag. Can be specified multiple times to only return incidents having all the given tags.
Page number to show
Example:
1
Number of resources to return per page
Required range:
1 <= x <= 100Example:
20
Last modified on February 8, 2026
Was this page helpful?