curl --request POST \
--url https://api.phare.io/uptime/status-pages/{statusPageId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'name=Phare status' \
--form subdomain=example \
--form domain=status.example.com \
--form 'title=Phare status' \
--form 'description=Status page of phare.io' \
--form search_engine_indexed=true \
--form website_url=https://phare.io \
--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 'components={
"componentable_type": "uptime/monitor",
"componentable_id": 123,
"display_name": "Main Website"
}' \
--form timeframe=90 \
--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/{statusPageId}"
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=\"domain\"\r\n\r\nstatus.example.com\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=\"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=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123,\r\n \"display_name\": \"Main Website\"\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=\"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('domain', 'status.example.com');
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('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('components', '{
"componentable_type": "uptime/monitor",
"componentable_id": 123,
"display_name": "Main Website"
}');
form.append('timeframe', '90');
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/{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 => "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=\"domain\"\r\n\r\nstatus.example.com\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=\"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=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123,\r\n \"display_name\": \"Main Website\"\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=\"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/{statusPageId}"
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=\"domain\"\r\n\r\nstatus.example.com\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=\"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=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123,\r\n \"display_name\": \"Main Website\"\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=\"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/{statusPageId}")
.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=\"domain\"\r\n\r\nstatus.example.com\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=\"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=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123,\r\n \"display_name\": \"Main Website\"\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=\"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/{statusPageId}")
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=\"domain\"\r\n\r\nstatus.example.com\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=\"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=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123,\r\n \"display_name\": \"Main Website\"\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=\"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,
"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."
}{
"message": "<string>",
"errors": {
"key": [
"The key field is required"
]
}
}Update a status page
Update a status page by ID
curl --request POST \
--url https://api.phare.io/uptime/status-pages/{statusPageId} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: multipart/form-data' \
--form 'name=Phare status' \
--form subdomain=example \
--form domain=status.example.com \
--form 'title=Phare status' \
--form 'description=Status page of phare.io' \
--form search_engine_indexed=true \
--form website_url=https://phare.io \
--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 'components={
"componentable_type": "uptime/monitor",
"componentable_id": 123,
"display_name": "Main Website"
}' \
--form timeframe=90 \
--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/{statusPageId}"
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=\"domain\"\r\n\r\nstatus.example.com\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=\"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=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123,\r\n \"display_name\": \"Main Website\"\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=\"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('domain', 'status.example.com');
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('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('components', '{
"componentable_type": "uptime/monitor",
"componentable_id": 123,
"display_name": "Main Website"
}');
form.append('timeframe', '90');
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/{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 => "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=\"domain\"\r\n\r\nstatus.example.com\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=\"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=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123,\r\n \"display_name\": \"Main Website\"\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=\"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/{statusPageId}"
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=\"domain\"\r\n\r\nstatus.example.com\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=\"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=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123,\r\n \"display_name\": \"Main Website\"\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=\"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/{statusPageId}")
.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=\"domain\"\r\n\r\nstatus.example.com\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=\"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=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123,\r\n \"display_name\": \"Main Website\"\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=\"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/{statusPageId}")
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=\"domain\"\r\n\r\nstatus.example.com\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=\"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=\"components\"\r\n\r\n{\r\n \"componentable_type\": \"uptime/monitor\",\r\n \"componentable_id\": 123,\r\n \"display_name\": \"Main Website\"\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=\"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,
"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."
}{
"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.
1
A project header is required when using an organization-scoped API key.
"luminous-guiding-tower"
Path Parameters
ID of the status page to update
Body
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].
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"
Custom domain name for the status page
4 - 60"status.example.com"
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"
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
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
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 - 100Light theme logo of the status page (accepted formats: jpeg / png / svg, max size: 1MB). Files can only be uploaded with a multipart/form-data request, send false to remove the logo.
Dark theme logo of the status page (accepted formats: jpeg / png / svg, max size: 1MB). Files can only be uploaded with a multipart/form-data request, send false to remove the logo.
Light theme favicon of the status page (accepted formats: jpeg / png / svg, max size: 1MB, square image). Files can only be uploaded with a multipart/form-data request, send false to remove the favicon.
Dark theme favicon of the status page (accepted formats: jpeg / png / svg, max size: 1MB, square image). Files can only be uploaded with a multipart/form-data request, send false to remove the favicon.
Token to restrict access to the status page. Requires an active Scale plan subscription.
8 - 500"secret"
Password to restrict access to the status page. Requires an active Scale plan subscription.
8 - 500"secret"
Response
Success, status page updated
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?