curl --request POST \
--url 'https://api.flashcat.cloud/status-page/create?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My Status Page",
"url_name": "my-status-page",
"type": "public",
"page_header": "Welcome to our status page",
"contact_info": "mailto:support@example.com"
}
'import requests
url = "https://api.flashcat.cloud/status-page/create?app_key="
payload = {
"name": "My Status Page",
"url_name": "my-status-page",
"type": "public",
"page_header": "Welcome to our status page",
"contact_info": "mailto:support@example.com"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'My Status Page',
url_name: 'my-status-page',
type: 'public',
page_header: 'Welcome to our status page',
contact_info: 'mailto:support@example.com'
})
};
fetch('https://api.flashcat.cloud/status-page/create?app_key=', 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.flashcat.cloud/status-page/create?app_key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My Status Page',
'url_name' => 'my-status-page',
'type' => 'public',
'page_header' => 'Welcome to our status page',
'contact_info' => 'mailto:support@example.com'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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.flashcat.cloud/status-page/create?app_key="
payload := strings.NewReader("{\n \"name\": \"My Status Page\",\n \"url_name\": \"my-status-page\",\n \"type\": \"public\",\n \"page_header\": \"Welcome to our status page\",\n \"contact_info\": \"mailto:support@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
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.flashcat.cloud/status-page/create?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My Status Page\",\n \"url_name\": \"my-status-page\",\n \"type\": \"public\",\n \"page_header\": \"Welcome to our status page\",\n \"contact_info\": \"mailto:support@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/status-page/create?app_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"My Status Page\",\n \"url_name\": \"my-status-page\",\n \"type\": \"public\",\n \"page_header\": \"Welcome to our status page\",\n \"contact_info\": \"mailto:support@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"page_id": 6294565612043,
"page_name": "My Status Page",
"page_url_name": "my-status-page"
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "RequestTooFrequently",
"message": "Request too frequently."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InternalError",
"message": "We encountered an internal error, and it has been reported. Please try again later."
}
}Create status page
Create a new status page.
curl --request POST \
--url 'https://api.flashcat.cloud/status-page/create?app_key=' \
--header 'Content-Type: application/json' \
--data '
{
"name": "My Status Page",
"url_name": "my-status-page",
"type": "public",
"page_header": "Welcome to our status page",
"contact_info": "mailto:support@example.com"
}
'import requests
url = "https://api.flashcat.cloud/status-page/create?app_key="
payload = {
"name": "My Status Page",
"url_name": "my-status-page",
"type": "public",
"page_header": "Welcome to our status page",
"contact_info": "mailto:support@example.com"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
name: 'My Status Page',
url_name: 'my-status-page',
type: 'public',
page_header: 'Welcome to our status page',
contact_info: 'mailto:support@example.com'
})
};
fetch('https://api.flashcat.cloud/status-page/create?app_key=', 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.flashcat.cloud/status-page/create?app_key=",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => 'My Status Page',
'url_name' => 'my-status-page',
'type' => 'public',
'page_header' => 'Welcome to our status page',
'contact_info' => 'mailto:support@example.com'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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.flashcat.cloud/status-page/create?app_key="
payload := strings.NewReader("{\n \"name\": \"My Status Page\",\n \"url_name\": \"my-status-page\",\n \"type\": \"public\",\n \"page_header\": \"Welcome to our status page\",\n \"contact_info\": \"mailto:support@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
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.flashcat.cloud/status-page/create?app_key=")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"My Status Page\",\n \"url_name\": \"my-status-page\",\n \"type\": \"public\",\n \"page_header\": \"Welcome to our status page\",\n \"contact_info\": \"mailto:support@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.flashcat.cloud/status-page/create?app_key=")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"name\": \"My Status Page\",\n \"url_name\": \"my-status-page\",\n \"type\": \"public\",\n \"page_header\": \"Welcome to our status page\",\n \"contact_info\": \"mailto:support@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"data": {
"page_id": 6294565612043,
"page_name": "My Status Page",
"page_url_name": "my-status-page"
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InvalidParameter",
"message": "The specified parameter is not valid."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "Unauthorized",
"message": "You are unauthorized."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "RequestTooFrequently",
"message": "Request too frequently."
}
}{
"request_id": "01HK8XQE3Z7JM2NTFQ5YJ8P9R4",
"error": {
"code": "InternalError",
"message": "We encountered an internal error, and it has been reported. Please try again later."
}
}Restrictions
| Aspect | Value |
|---|---|
| Rate limits | 1,000 requests/minute; 50 requests/second per account |
| Permissions | Status Pages Manage (on-call) |
Authorizations
App key issued from the Flashduty console under Account → APP Keys. Required on every public API call. Keep it secret — it grants the same access as the owning account.
Body
Display name of the status page.
255URL-safe slug, unique per account and page type.
255Visibility type of the status page.
public, internal How event dates are displayed.
calendar, list How uptime is displayed.
chart_and_percentage, chart, none Custom domain for a public status page.
255Browser title shown for the status page.
Header content shown on the status page.
Footer content shown on the status page.
Custom navigation links shown on the status page.
Show child attributes
Show child attributes
Get-in-touch contact, such as a mailto or website URL.
Show child attributes
Show child attributes
Response
Success
Success response envelope. On every 2xx response, request_id identifies the call (also mirrored in the Flashcat-Request-Id header) and data holds the endpoint-specific payload. Failure responses use a different shape — see ErrorResponse.
Was this page helpful?