List maintenance windows
curl --request GET \
--url https://api.phare.io/uptime/maintenance-windows \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.phare.io/uptime/maintenance-windows"
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/maintenance-windows', 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/maintenance-windows",
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/maintenance-windows"
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/maintenance-windows")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phare.io/uptime/maintenance-windows")
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": [
{
"monitoring_mode": "pause",
"title": "Database upgrade",
"starts_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z",
"id": 1,
"project_id": 1,
"state": "scheduled",
"description": "Planned database upgrade and maintenance",
"monitors": [
1,
2,
3
],
"status_pages": [
1,
2
],
"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": "Unauthorized"
}{
"message": "The platform:write permission is required to perform this action."
}Maintenance Windows
List maintenance windows
Get a paginated list of maintenance windows
GET
/
uptime
/
maintenance-windows
List maintenance windows
curl --request GET \
--url https://api.phare.io/uptime/maintenance-windows \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.phare.io/uptime/maintenance-windows"
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/maintenance-windows', 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/maintenance-windows",
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/maintenance-windows"
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/maintenance-windows")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phare.io/uptime/maintenance-windows")
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": [
{
"monitoring_mode": "pause",
"title": "Database upgrade",
"starts_at": "2023-11-07T05:31:56Z",
"ends_at": "2023-11-07T05:31:56Z",
"id": 1,
"project_id": 1,
"state": "scheduled",
"description": "Planned database upgrade and maintenance",
"monitors": [
1,
2,
3
],
"status_pages": [
1,
2
],
"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": "Unauthorized"
}{
"message": "The platform:write permission is required to perform this action."
}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 maintenance windows by monitor ID. Can be specified multiple times to filter by multiple monitor IDs.
Filter maintenance windows by status page ID. Can be specified multiple times to filter by multiple status page IDs.
Filter maintenance windows by state.
Available options:
scheduled, in_progress, completed, cancelled Page number to show
Example:
1
Number of resources to return per page
Required range:
1 <= x <= 100Example:
20
Last modified on August 30, 2026
Was this page helpful?