Resolve status page
curl --request GET \
--url https://api.getmonitor.io/api/v1/status-pages \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getmonitor.io/api/v1/status-pages"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getmonitor.io/api/v1/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.getmonitor.io/api/v1/status-pages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getmonitor.io/api/v1/status-pages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getmonitor.io/api/v1/status-pages")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getmonitor.io/api/v1/status-pages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "c1rui6avx08bx20fr3bne9vy",
"name": "GetMonitor",
"domain": "status",
"customDomain": "status.getmonitor.io",
"customDomainVerified": false,
"vercelVerificationStatus": "verified",
"vercelVerificationError": "Failed to get domain status for status.statuspageone.com: VercelApiError: Vercel API error: 404 Not Found - Project not found.",
"vercelLastCheckedAt": "2026-09-26T22:51:02.558Z",
"description": "",
"logoUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABFkAAADpCAYAAAD/GOhYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAOdEVYdFNvZnR3YXJlAEZ...",
"visibility": "public",
"userId": "a8a0oz0qci7ox8iq1k1le900",
"organizationId": "k2p9x7w4m1n8b3v6c5z0q2r7",
"createdAt": "2025-12-31T01:06:33.418Z",
"updatedAt": "2026-09-26T22:51:02.558Z",
"productId": "getmonitor",
"accessStatus": "allowed"
}{
"message": "Unauthorized",
"statusCode": 401
}{
"message": "No access to this organization",
"error": "Forbidden",
"statusCode": 403
}{
"accessStatus": "not_found"
}Status Pages
Resolve status page
Finds a status page by slug or domain. accessStatus is allowed on 200. Private pages return 401 (auth_required) without a session and 403 (access_denied) for users outside the organization; an unknown page returns 404 with {"accessStatus": "not_found"}.
Authentication: No authentication needed for public pages. Send a user session to read private pages of an organization you belong to.
GET
/
api
/
v1
/
status-pages
Resolve status page
curl --request GET \
--url https://api.getmonitor.io/api/v1/status-pages \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.getmonitor.io/api/v1/status-pages"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.getmonitor.io/api/v1/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.getmonitor.io/api/v1/status-pages",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.getmonitor.io/api/v1/status-pages"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getmonitor.io/api/v1/status-pages")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getmonitor.io/api/v1/status-pages")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"id": "c1rui6avx08bx20fr3bne9vy",
"name": "GetMonitor",
"domain": "status",
"customDomain": "status.getmonitor.io",
"customDomainVerified": false,
"vercelVerificationStatus": "verified",
"vercelVerificationError": "Failed to get domain status for status.statuspageone.com: VercelApiError: Vercel API error: 404 Not Found - Project not found.",
"vercelLastCheckedAt": "2026-09-26T22:51:02.558Z",
"description": "",
"logoUrl": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABFkAAADpCAYAAAD/GOhYAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAOdEVYdFNvZnR3YXJlAEZ...",
"visibility": "public",
"userId": "a8a0oz0qci7ox8iq1k1le900",
"organizationId": "k2p9x7w4m1n8b3v6c5z0q2r7",
"createdAt": "2025-12-31T01:06:33.418Z",
"updatedAt": "2026-09-26T22:51:02.558Z",
"productId": "getmonitor",
"accessStatus": "allowed"
}{
"message": "Unauthorized",
"statusCode": 401
}{
"message": "No access to this organization",
"error": "Forbidden",
"statusCode": 403
}{
"accessStatus": "not_found"
}Authorizations
Short-lived user session token issued to the GetMonitor panel. Endpoints marked "session only" cannot be called with an API key.
Query Parameters
Status page slug.
Full hostname (custom domain or subdomain).
Response
OK