Create a status page
curl --request POST \
--url https://api.phare.io/uptime/status-pages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'name=Phare status' \
--form subdomain=example \
--form 'title=Phare status' \
--form 'description=Status page of phare.io' \
--form search_engine_indexed=true \
--form website_url=https://phare.io \
--form 'components={
"componentable_type": "uptime/monitor",
"componentable_id": 123
}' \
--form timeframe=90 \
--form domain=status.example.com \
--form color_scheme=all \
--form '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
}' \
--form show_response_times=true \
--form timezone=Europe/Paris \
--form access_ips=45.129.56.0/24 \
--form tags=environment:production \
--form 'logo_light=<string>' \
--form 'logo_dark=<string>' \
--form 'favicon_light=<string>' \
--form 'favicon_dark=<string>' \
--form access_token=secret \
--form access_password=secretimport requests
url = "https://api.phare.io/uptime/status-pages"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subdomain\"\r\n\r\nexample\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nStatus page of phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"search_engine_indexed\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"website_url\"\r\n\r\nhttps://phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timeframe\"\r\n\r\n90\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domain\"\r\n\r\nstatus.example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"color_scheme\"\r\n\r\nall\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"theme\"\r\n\r\n{\r\n \"light\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#ffffff\",\r\n \"border\": \"#e5e5e5\",\r\n \"foreground\": \"#000000\",\r\n \"foreground_muted\": \"#737373\",\r\n \"background_card\": \"#fafafa\"\r\n },\r\n \"dark\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#111111\",\r\n \"border\": \"#3f3f46\",\r\n \"foreground\": \"#ffffff\",\r\n \"foreground_muted\": \"#959595\",\r\n \"background_card\": \"#1a1a1a\"\r\n },\r\n \"rounded\": true,\r\n \"border_width\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"show_response_times\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\nEurope/Paris\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_ips\"\r\n\r\n45.129.56.0/24\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tags\"\r\n\r\nenvironment:production\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_token\"\r\n\r\nsecret\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_password\"\r\n\r\nsecret\r\n-----011000010111000001101001--"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "multipart/form-data"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const form = new FormData();
form.append('name', 'Phare status');
form.append('subdomain', 'example');
form.append('title', 'Phare status');
form.append('description', 'Status page of phare.io');
form.append('search_engine_indexed', 'true');
form.append('website_url', 'https://phare.io');
form.append('components', '{
"componentable_type": "uptime/monitor",
"componentable_id": 123
}');
form.append('timeframe', '90');
form.append('domain', 'status.example.com');
form.append('color_scheme', 'all');
form.append('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
}');
form.append('show_response_times', 'true');
form.append('timezone', 'Europe/Paris');
form.append('access_ips', '45.129.56.0/24');
form.append('tags', 'environment:production');
form.append('logo_light', '<string>');
form.append('logo_dark', '<string>');
form.append('favicon_light', '<string>');
form.append('favicon_dark', '<string>');
form.append('access_token', 'secret');
form.append('access_password', 'secret');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.phare.io/uptime/status-pages', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subdomain\"\r\n\r\nexample\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nStatus page of phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"search_engine_indexed\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"website_url\"\r\n\r\nhttps://phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timeframe\"\r\n\r\n90\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domain\"\r\n\r\nstatus.example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"color_scheme\"\r\n\r\nall\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"theme\"\r\n\r\n{\r\n \"light\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#ffffff\",\r\n \"border\": \"#e5e5e5\",\r\n \"foreground\": \"#000000\",\r\n \"foreground_muted\": \"#737373\",\r\n \"background_card\": \"#fafafa\"\r\n },\r\n \"dark\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#111111\",\r\n \"border\": \"#3f3f46\",\r\n \"foreground\": \"#ffffff\",\r\n \"foreground_muted\": \"#959595\",\r\n \"background_card\": \"#1a1a1a\"\r\n },\r\n \"rounded\": true,\r\n \"border_width\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"show_response_times\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\nEurope/Paris\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_ips\"\r\n\r\n45.129.56.0/24\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tags\"\r\n\r\nenvironment:production\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_token\"\r\n\r\nsecret\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_password\"\r\n\r\nsecret\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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.phare.io/uptime/status-pages"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subdomain\"\r\n\r\nexample\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nStatus page of phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"search_engine_indexed\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"website_url\"\r\n\r\nhttps://phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timeframe\"\r\n\r\n90\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domain\"\r\n\r\nstatus.example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"color_scheme\"\r\n\r\nall\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"theme\"\r\n\r\n{\r\n \"light\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#ffffff\",\r\n \"border\": \"#e5e5e5\",\r\n \"foreground\": \"#000000\",\r\n \"foreground_muted\": \"#737373\",\r\n \"background_card\": \"#fafafa\"\r\n },\r\n \"dark\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#111111\",\r\n \"border\": \"#3f3f46\",\r\n \"foreground\": \"#ffffff\",\r\n \"foreground_muted\": \"#959595\",\r\n \"background_card\": \"#1a1a1a\"\r\n },\r\n \"rounded\": true,\r\n \"border_width\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"show_response_times\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\nEurope/Paris\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_ips\"\r\n\r\n45.129.56.0/24\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tags\"\r\n\r\nenvironment:production\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_token\"\r\n\r\nsecret\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_password\"\r\n\r\nsecret\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://api.phare.io/uptime/status-pages")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subdomain\"\r\n\r\nexample\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nStatus page of phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"search_engine_indexed\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"website_url\"\r\n\r\nhttps://phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timeframe\"\r\n\r\n90\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domain\"\r\n\r\nstatus.example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"color_scheme\"\r\n\r\nall\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"theme\"\r\n\r\n{\r\n \"light\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#ffffff\",\r\n \"border\": \"#e5e5e5\",\r\n \"foreground\": \"#000000\",\r\n \"foreground_muted\": \"#737373\",\r\n \"background_card\": \"#fafafa\"\r\n },\r\n \"dark\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#111111\",\r\n \"border\": \"#3f3f46\",\r\n \"foreground\": \"#ffffff\",\r\n \"foreground_muted\": \"#959595\",\r\n \"background_card\": \"#1a1a1a\"\r\n },\r\n \"rounded\": true,\r\n \"border_width\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"show_response_times\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\nEurope/Paris\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_ips\"\r\n\r\n45.129.56.0/24\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tags\"\r\n\r\nenvironment:production\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_token\"\r\n\r\nsecret\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_password\"\r\n\r\nsecret\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phare.io/uptime/status-pages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subdomain\"\r\n\r\nexample\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nStatus page of phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"search_engine_indexed\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"website_url\"\r\n\r\nhttps://phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timeframe\"\r\n\r\n90\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domain\"\r\n\r\nstatus.example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"color_scheme\"\r\n\r\nall\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"theme\"\r\n\r\n{\r\n \"light\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#ffffff\",\r\n \"border\": \"#e5e5e5\",\r\n \"foreground\": \"#000000\",\r\n \"foreground_muted\": \"#737373\",\r\n \"background_card\": \"#fafafa\"\r\n },\r\n \"dark\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#111111\",\r\n \"border\": \"#3f3f46\",\r\n \"foreground\": \"#ffffff\",\r\n \"foreground_muted\": \"#959595\",\r\n \"background_card\": \"#1a1a1a\"\r\n },\r\n \"rounded\": true,\r\n \"border_width\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"show_response_times\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\nEurope/Paris\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_ips\"\r\n\r\n45.129.56.0/24\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tags\"\r\n\r\nenvironment:production\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_token\"\r\n\r\nsecret\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_password\"\r\n\r\nsecret\r\n-----011000010111000001101001--"
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
}
],
"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 monitors:write permission is required to perform this action."
}{
"message": "<string>",
"errors": {
"key": [
"The key field is required"
]
}
}Status Pages
Create a status page
Create a public status page showing monitors of the project, online right away at {subdomain}.status.phare.io. A custom domain needs a CNAME record pointing to cname.status.phare.io, its SSL certificate is then issued automatically. Logos and favicons can only be uploaded with a multipart/form-data request.
Requires the status_pages:write permission.
POST
/
uptime
/
status-pages
Create a status page
curl --request POST \
--url https://api.phare.io/uptime/status-pages \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'name=Phare status' \
--form subdomain=example \
--form 'title=Phare status' \
--form 'description=Status page of phare.io' \
--form search_engine_indexed=true \
--form website_url=https://phare.io \
--form 'components={
"componentable_type": "uptime/monitor",
"componentable_id": 123
}' \
--form timeframe=90 \
--form domain=status.example.com \
--form color_scheme=all \
--form '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
}' \
--form show_response_times=true \
--form timezone=Europe/Paris \
--form access_ips=45.129.56.0/24 \
--form tags=environment:production \
--form 'logo_light=<string>' \
--form 'logo_dark=<string>' \
--form 'favicon_light=<string>' \
--form 'favicon_dark=<string>' \
--form access_token=secret \
--form access_password=secretimport requests
url = "https://api.phare.io/uptime/status-pages"
payload = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subdomain\"\r\n\r\nexample\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nStatus page of phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"search_engine_indexed\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"website_url\"\r\n\r\nhttps://phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timeframe\"\r\n\r\n90\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domain\"\r\n\r\nstatus.example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"color_scheme\"\r\n\r\nall\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"theme\"\r\n\r\n{\r\n \"light\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#ffffff\",\r\n \"border\": \"#e5e5e5\",\r\n \"foreground\": \"#000000\",\r\n \"foreground_muted\": \"#737373\",\r\n \"background_card\": \"#fafafa\"\r\n },\r\n \"dark\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#111111\",\r\n \"border\": \"#3f3f46\",\r\n \"foreground\": \"#ffffff\",\r\n \"foreground_muted\": \"#959595\",\r\n \"background_card\": \"#1a1a1a\"\r\n },\r\n \"rounded\": true,\r\n \"border_width\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"show_response_times\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\nEurope/Paris\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_ips\"\r\n\r\n45.129.56.0/24\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tags\"\r\n\r\nenvironment:production\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_token\"\r\n\r\nsecret\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_password\"\r\n\r\nsecret\r\n-----011000010111000001101001--"
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "multipart/form-data"
}
response = requests.post(url, data=payload, headers=headers)
print(response.text)const form = new FormData();
form.append('name', 'Phare status');
form.append('subdomain', 'example');
form.append('title', 'Phare status');
form.append('description', 'Status page of phare.io');
form.append('search_engine_indexed', 'true');
form.append('website_url', 'https://phare.io');
form.append('components', '{
"componentable_type": "uptime/monitor",
"componentable_id": 123
}');
form.append('timeframe', '90');
form.append('domain', 'status.example.com');
form.append('color_scheme', 'all');
form.append('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
}');
form.append('show_response_times', 'true');
form.append('timezone', 'Europe/Paris');
form.append('access_ips', '45.129.56.0/24');
form.append('tags', 'environment:production');
form.append('logo_light', '<string>');
form.append('logo_dark', '<string>');
form.append('favicon_light', '<string>');
form.append('favicon_dark', '<string>');
form.append('access_token', 'secret');
form.append('access_password', 'secret');
const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
options.body = form;
fetch('https://api.phare.io/uptime/status-pages', 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",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subdomain\"\r\n\r\nexample\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nStatus page of phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"search_engine_indexed\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"website_url\"\r\n\r\nhttps://phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timeframe\"\r\n\r\n90\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domain\"\r\n\r\nstatus.example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"color_scheme\"\r\n\r\nall\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"theme\"\r\n\r\n{\r\n \"light\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#ffffff\",\r\n \"border\": \"#e5e5e5\",\r\n \"foreground\": \"#000000\",\r\n \"foreground_muted\": \"#737373\",\r\n \"background_card\": \"#fafafa\"\r\n },\r\n \"dark\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#111111\",\r\n \"border\": \"#3f3f46\",\r\n \"foreground\": \"#ffffff\",\r\n \"foreground_muted\": \"#959595\",\r\n \"background_card\": \"#1a1a1a\"\r\n },\r\n \"rounded\": true,\r\n \"border_width\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"show_response_times\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\nEurope/Paris\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_ips\"\r\n\r\n45.129.56.0/24\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tags\"\r\n\r\nenvironment:production\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_token\"\r\n\r\nsecret\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_password\"\r\n\r\nsecret\r\n-----011000010111000001101001--",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: multipart/form-data"
],
]);
$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.phare.io/uptime/status-pages"
payload := strings.NewReader("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subdomain\"\r\n\r\nexample\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nStatus page of phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"search_engine_indexed\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"website_url\"\r\n\r\nhttps://phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timeframe\"\r\n\r\n90\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domain\"\r\n\r\nstatus.example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"color_scheme\"\r\n\r\nall\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"theme\"\r\n\r\n{\r\n \"light\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#ffffff\",\r\n \"border\": \"#e5e5e5\",\r\n \"foreground\": \"#000000\",\r\n \"foreground_muted\": \"#737373\",\r\n \"background_card\": \"#fafafa\"\r\n },\r\n \"dark\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#111111\",\r\n \"border\": \"#3f3f46\",\r\n \"foreground\": \"#ffffff\",\r\n \"foreground_muted\": \"#959595\",\r\n \"background_card\": \"#1a1a1a\"\r\n },\r\n \"rounded\": true,\r\n \"border_width\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"show_response_times\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\nEurope/Paris\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_ips\"\r\n\r\n45.129.56.0/24\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tags\"\r\n\r\nenvironment:production\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_token\"\r\n\r\nsecret\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_password\"\r\n\r\nsecret\r\n-----011000010111000001101001--")
req, _ := http.NewRequest("POST", url, payload)
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.post("https://api.phare.io/uptime/status-pages")
.header("Authorization", "Bearer <token>")
.body("-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subdomain\"\r\n\r\nexample\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nStatus page of phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"search_engine_indexed\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"website_url\"\r\n\r\nhttps://phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timeframe\"\r\n\r\n90\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domain\"\r\n\r\nstatus.example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"color_scheme\"\r\n\r\nall\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"theme\"\r\n\r\n{\r\n \"light\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#ffffff\",\r\n \"border\": \"#e5e5e5\",\r\n \"foreground\": \"#000000\",\r\n \"foreground_muted\": \"#737373\",\r\n \"background_card\": \"#fafafa\"\r\n },\r\n \"dark\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#111111\",\r\n \"border\": \"#3f3f46\",\r\n \"foreground\": \"#ffffff\",\r\n \"foreground_muted\": \"#959595\",\r\n \"background_card\": \"#1a1a1a\"\r\n },\r\n \"rounded\": true,\r\n \"border_width\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"show_response_times\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\nEurope/Paris\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_ips\"\r\n\r\n45.129.56.0/24\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tags\"\r\n\r\nenvironment:production\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_token\"\r\n\r\nsecret\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_password\"\r\n\r\nsecret\r\n-----011000010111000001101001--")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.phare.io/uptime/status-pages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request.body = "-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"name\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"subdomain\"\r\n\r\nexample\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"title\"\r\n\r\nPhare status\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"description\"\r\n\r\nStatus page of phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"search_engine_indexed\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"website_url\"\r\n\r\nhttps://phare.io\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timeframe\"\r\n\r\n90\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"domain\"\r\n\r\nstatus.example.com\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"color_scheme\"\r\n\r\nall\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"theme\"\r\n\r\n{\r\n \"light\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#ffffff\",\r\n \"border\": \"#e5e5e5\",\r\n \"foreground\": \"#000000\",\r\n \"foreground_muted\": \"#737373\",\r\n \"background_card\": \"#fafafa\"\r\n },\r\n \"dark\": {\r\n \"operational\": \"#16a34a\",\r\n \"degraded_performance\": \"#fbbf24\",\r\n \"partial_outage\": \"#f59e0b\",\r\n \"major_outage\": \"#ef4444\",\r\n \"maintenance\": \"#6366f1\",\r\n \"empty\": \"#d3d3d3\",\r\n \"background\": \"#111111\",\r\n \"border\": \"#3f3f46\",\r\n \"foreground\": \"#ffffff\",\r\n \"foreground_muted\": \"#959595\",\r\n \"background_card\": \"#1a1a1a\"\r\n },\r\n \"rounded\": true,\r\n \"border_width\": 2\r\n}\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"show_response_times\"\r\n\r\ntrue\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"timezone\"\r\n\r\nEurope/Paris\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_ips\"\r\n\r\n45.129.56.0/24\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"tags\"\r\n\r\nenvironment:production\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"logo_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_light\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"favicon_dark\"\r\n\r\n<string>\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_token\"\r\n\r\nsecret\r\n-----011000010111000001101001\r\nContent-Disposition: form-data; name=\"access_password\"\r\n\r\nsecret\r\n-----011000010111000001101001--"
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
}
],
"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 monitors:write permission is required to perform this action."
}{
"message": "<string>",
"errors": {
"key": [
"The key field is required"
]
}
}Authorizations
Headers
Body
multipart/form-dataapplication/json
Status page request, sent as JSON or as multipart/form-data to upload logos and favicons. With multipart/form-data, booleans must be sent as 1 or 0 and nested fields with the bracket notation, e.g. components[0][componentable_id].
Response
Success, status page created
Last modified on February 8, 2026
Was this page helpful?