curl --request GET \
--url https://api.phare.io/uptime/status-pages/{statusPageId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.phare.io/uptime/status-pages/{statusPageId}"
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/status-pages/{statusPageId}', 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/status-pages/{statusPageId}",
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/status-pages/{statusPageId}"
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/status-pages/{statusPageId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phare.io/uptime/status-pages/{statusPageId}")
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{
"name": "Phare status",
"subdomain": "example",
"title": "Phare status",
"description": "Status page of phare.io",
"search_engine_indexed": true,
"website_url": "https://phare.io",
"components": [
{
"componentable_type": "uptime/monitor",
"componentable_id": 123,
"display_name": "Main Website"
}
],
"timeframe": 90,
"id": 1,
"project_id": 1,
"is_private": false,
"access_password_enabled": false,
"access_token_enabled": false,
"domain": "status.example.com",
"color_scheme": "all",
"theme": {
"light": {
"operational": "#16a34a",
"degraded_performance": "#fbbf24",
"partial_outage": "#f59e0b",
"major_outage": "#ef4444",
"maintenance": "#6366f1",
"empty": "#d3d3d3",
"background": "#ffffff",
"border": "#e5e5e5",
"foreground": "#000000",
"foreground_muted": "#737373",
"background_card": "#fafafa"
},
"dark": {
"operational": "#16a34a",
"degraded_performance": "#fbbf24",
"partial_outage": "#f59e0b",
"major_outage": "#ef4444",
"maintenance": "#6366f1",
"empty": "#d3d3d3",
"background": "#111111",
"border": "#3f3f46",
"foreground": "#ffffff",
"foreground_muted": "#959595",
"background_card": "#1a1a1a"
},
"rounded": true,
"border_width": 2
},
"show_response_times": true,
"timezone": "Europe/Paris",
"subscription_channels": [
"rss"
],
"access_ips": [
"45.129.56.0/24"
],
"tags": [
"environment:production"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"message": "Unauthenticated."
}{
"message": "The platform:write permission is required to perform this action."
}{
"message": "Record not found."
}Get a status page
Get a status page by ID
curl --request GET \
--url https://api.phare.io/uptime/status-pages/{statusPageId} \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.phare.io/uptime/status-pages/{statusPageId}"
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/status-pages/{statusPageId}', 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/status-pages/{statusPageId}",
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/status-pages/{statusPageId}"
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/status-pages/{statusPageId}")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phare.io/uptime/status-pages/{statusPageId}")
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{
"name": "Phare status",
"subdomain": "example",
"title": "Phare status",
"description": "Status page of phare.io",
"search_engine_indexed": true,
"website_url": "https://phare.io",
"components": [
{
"componentable_type": "uptime/monitor",
"componentable_id": 123,
"display_name": "Main Website"
}
],
"timeframe": 90,
"id": 1,
"project_id": 1,
"is_private": false,
"access_password_enabled": false,
"access_token_enabled": false,
"domain": "status.example.com",
"color_scheme": "all",
"theme": {
"light": {
"operational": "#16a34a",
"degraded_performance": "#fbbf24",
"partial_outage": "#f59e0b",
"major_outage": "#ef4444",
"maintenance": "#6366f1",
"empty": "#d3d3d3",
"background": "#ffffff",
"border": "#e5e5e5",
"foreground": "#000000",
"foreground_muted": "#737373",
"background_card": "#fafafa"
},
"dark": {
"operational": "#16a34a",
"degraded_performance": "#fbbf24",
"partial_outage": "#f59e0b",
"major_outage": "#ef4444",
"maintenance": "#6366f1",
"empty": "#d3d3d3",
"background": "#111111",
"border": "#3f3f46",
"foreground": "#ffffff",
"foreground_muted": "#959595",
"background_card": "#1a1a1a"
},
"rounded": true,
"border_width": 2
},
"show_response_times": true,
"timezone": "Europe/Paris",
"subscription_channels": [
"rss"
],
"access_ips": [
"45.129.56.0/24"
],
"tags": [
"environment:production"
],
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z"
}{
"message": "Unauthenticated."
}{
"message": "The platform:write permission is required to perform this action."
}{
"message": "Record not found."
}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.
1
A project header is required when using an organization-scoped API key.
"luminous-guiding-tower"
Path Parameters
ID of the status page to show
Response
Success, status page retrieved
Status page name
2 - 30"Phare status"
Subdomain name for the status page, hosted on a phare.io domain: {subdomain}.status.phare.io
2 - 30"example"
Status page HTML title
2 - 150"Phare status"
Status page HTML description
2 - 250"Status page of phare.io"
Whether search engines are allowed to index the page
true
URL to redirect users clicking the status page logo
250"https://phare.io"
List of components to show on the status page. A monitor can only be shown once on a status page.
1 - 100 elements- Monitor component
- Group component
Show child attributes
Show child attributes
Number of days of status and incident history to display.
30, 60, 90 90
Status page ID
1
Parent project ID
1
Whether access to the status page is restricted by a password, a secret token or an IP allowlist
false
Whether the status page is protected by a password. Requires an active Scale plan subscription.
false
Whether the status page is protected by a secret token. Requires an active Scale plan subscription.
false
Custom domain name for the status page
4 - 60"status.example.com"
Choose the available color schemes for the status page
all, dark, light "all"
Theme settings to customize the status page
Show child attributes
Show child attributes
Whether to display response times for monitors on the status page
true
Timezone used to split the status page timeline into days and to display all dates on the status page and in feeds. Must be a canonical IANA timezone identifier (case-sensitive, e.g. Europe/Paris, America/New_York or UTC).
"Europe/Paris"
List of active subscription channels
3rss, atom, slack List of IP addresses or CIDR ranges allowed to access the status page. Requires an active Scale plan subscription.
1 - 50 elementsResource tags, made of lowercase letters, numbers, ., _, : and -. An organization can have up to 200 tags.
201 - 100Date of creation for the entity
Date of last update for the entity
Was this page helpful?