Create status page
curl --request POST \
--url https://app.larm.dev/api/v1/status-pages \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"theme": "<string>",
"primary_color": "<string>",
"logo_light_url": "<string>",
"logo_dark_url": "<string>",
"show_theme_switcher": true,
"enabled": true,
"subscribers_enabled": true
}
'import requests
url = "https://app.larm.dev/api/v1/status-pages"
payload = {
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"theme": "<string>",
"primary_color": "<string>",
"logo_light_url": "<string>",
"logo_dark_url": "<string>",
"show_theme_switcher": True,
"enabled": True,
"subscribers_enabled": True
}
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: '<string>',
slug: '<string>',
description: '<string>',
theme: '<string>',
primary_color: '<string>',
logo_light_url: '<string>',
logo_dark_url: '<string>',
show_theme_switcher: true,
enabled: true,
subscribers_enabled: true
})
};
fetch('https://app.larm.dev/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://app.larm.dev/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 => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'slug' => '<string>',
'description' => '<string>',
'theme' => '<string>',
'primary_color' => '<string>',
'logo_light_url' => '<string>',
'logo_dark_url' => '<string>',
'show_theme_switcher' => true,
'enabled' => true,
'subscribers_enabled' => true
]),
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://app.larm.dev/api/v1/status-pages"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"theme\": \"<string>\",\n \"primary_color\": \"<string>\",\n \"logo_light_url\": \"<string>\",\n \"logo_dark_url\": \"<string>\",\n \"show_theme_switcher\": true,\n \"enabled\": true,\n \"subscribers_enabled\": true\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://app.larm.dev/api/v1/status-pages")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"theme\": \"<string>\",\n \"primary_color\": \"<string>\",\n \"logo_light_url\": \"<string>\",\n \"logo_dark_url\": \"<string>\",\n \"show_theme_switcher\": true,\n \"enabled\": true,\n \"subscribers_enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.larm.dev/api/v1/status-pages")
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\": \"<string>\",\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"theme\": \"<string>\",\n \"primary_color\": \"<string>\",\n \"logo_light_url\": \"<string>\",\n \"logo_dark_url\": \"<string>\",\n \"show_theme_switcher\": true,\n \"enabled\": true,\n \"subscribers_enabled\": true\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Acme Status",
"slug": "acme",
"description": "Current status of Acme services",
"theme": "system",
"primary_color": null,
"enabled": true,
"subscribers_enabled": false,
"custom_domain": null,
"domain_status": "none",
"logo_light_url": null,
"logo_dark_url": null,
"url": "https://acme.status.larm.dev",
"components": [],
"inserted_at": "2025-03-01T12:00:00Z",
"updated_at": "2025-03-01T12:00:00Z"
}
}
Status pages
Create status page
Creates a new status page
POST
/
api
/
v1
/
status-pages
Create status page
curl --request POST \
--url https://app.larm.dev/api/v1/status-pages \
--header 'Content-Type: application/json' \
--data '
{
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"theme": "<string>",
"primary_color": "<string>",
"logo_light_url": "<string>",
"logo_dark_url": "<string>",
"show_theme_switcher": true,
"enabled": true,
"subscribers_enabled": true
}
'import requests
url = "https://app.larm.dev/api/v1/status-pages"
payload = {
"name": "<string>",
"slug": "<string>",
"description": "<string>",
"theme": "<string>",
"primary_color": "<string>",
"logo_light_url": "<string>",
"logo_dark_url": "<string>",
"show_theme_switcher": True,
"enabled": True,
"subscribers_enabled": True
}
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: '<string>',
slug: '<string>',
description: '<string>',
theme: '<string>',
primary_color: '<string>',
logo_light_url: '<string>',
logo_dark_url: '<string>',
show_theme_switcher: true,
enabled: true,
subscribers_enabled: true
})
};
fetch('https://app.larm.dev/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://app.larm.dev/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 => "POST",
CURLOPT_POSTFIELDS => json_encode([
'name' => '<string>',
'slug' => '<string>',
'description' => '<string>',
'theme' => '<string>',
'primary_color' => '<string>',
'logo_light_url' => '<string>',
'logo_dark_url' => '<string>',
'show_theme_switcher' => true,
'enabled' => true,
'subscribers_enabled' => true
]),
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://app.larm.dev/api/v1/status-pages"
payload := strings.NewReader("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"theme\": \"<string>\",\n \"primary_color\": \"<string>\",\n \"logo_light_url\": \"<string>\",\n \"logo_dark_url\": \"<string>\",\n \"show_theme_switcher\": true,\n \"enabled\": true,\n \"subscribers_enabled\": true\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://app.larm.dev/api/v1/status-pages")
.header("Content-Type", "application/json")
.body("{\n \"name\": \"<string>\",\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"theme\": \"<string>\",\n \"primary_color\": \"<string>\",\n \"logo_light_url\": \"<string>\",\n \"logo_dark_url\": \"<string>\",\n \"show_theme_switcher\": true,\n \"enabled\": true,\n \"subscribers_enabled\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://app.larm.dev/api/v1/status-pages")
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\": \"<string>\",\n \"slug\": \"<string>\",\n \"description\": \"<string>\",\n \"theme\": \"<string>\",\n \"primary_color\": \"<string>\",\n \"logo_light_url\": \"<string>\",\n \"logo_dark_url\": \"<string>\",\n \"show_theme_switcher\": true,\n \"enabled\": true,\n \"subscribers_enabled\": true\n}"
response = http.request(request)
puts response.read_body{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Acme Status",
"slug": "acme",
"description": "Current status of Acme services",
"theme": "system",
"primary_color": null,
"enabled": true,
"subscribers_enabled": false,
"custom_domain": null,
"domain_status": "none",
"logo_light_url": null,
"logo_dark_url": null,
"url": "https://acme.status.larm.dev",
"components": [],
"inserted_at": "2025-03-01T12:00:00Z",
"updated_at": "2025-03-01T12:00:00Z"
}
}
Requires
status_pages:read_write permission.
Creates the page itself. To add components and groups, use the Components and Component groups endpoints, or replace the entire structure in one call with PUT structure.
Page name (1–255 characters)
URL identifier (3–63 characters, lowercase alphanumeric and hyphens; cannot start or end with a hyphen)
Brief description (up to 1000 characters)
system, light, or darkBrand color in hex format (e.g.
#4F46E5)URL of the logo to use on light backgrounds
URL of the logo to use on dark backgrounds
Show a light/dark theme switcher on the public page
Whether the page is publicly visible
Allow email subscriptions
{
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"name": "Acme Status",
"slug": "acme",
"description": "Current status of Acme services",
"theme": "system",
"primary_color": null,
"enabled": true,
"subscribers_enabled": false,
"custom_domain": null,
"domain_status": "none",
"logo_light_url": null,
"logo_dark_url": null,
"url": "https://acme.status.larm.dev",
"components": [],
"inserted_at": "2025-03-01T12:00:00Z",
"updated_at": "2025-03-01T12:00:00Z"
}
}
⌘I