Request cURL
curl -s -X POST "https://app.upfour.io/v1/status-pages/00000000-0000-4000-8000-000000000001/duplicate" \
-H "Authorization: Bearer $UP4_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"company_name": "Acme GmbH (staging)",
"subdomain": "acme-status-staging"
}'
JavaScript
const res = await fetch("https://app.upfour.io/v1/status-pages/00000000-0000-4000-8000-000000000001/duplicate", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.UP4_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
company_name: "Acme GmbH (staging)",
subdomain: "acme-status-staging",
}),
});
console.log(res.status, await res.json());
Python
import os
import requests
res = requests.post(
"https://app.upfour.io/v1/status-pages/00000000-0000-4000-8000-000000000001/duplicate",
headers={"Authorization": f"Bearer {os.environ['UP4_API_KEY']}"},
json={
"company_name": "Acme GmbH (staging)",
"subdomain": "acme-status-staging",
},
)
print(res.status_code, res.json())
Go
package main
import (
"fmt"
"io"
"net/http"
"os"
"strings"
)
func main() {
payload := strings.NewReader(`{
"company_name": "Acme GmbH (staging)",
"subdomain": "acme-status-staging"
}`)
req, _ := http.NewRequest("POST", "https://app.upfour.io/v1/status-pages/00000000-0000-4000-8000-000000000001/duplicate", payload)
req.Header.Set("Authorization", "Bearer "+os.Getenv("UP4_API_KEY"))
req.Header.Set("Content-Type", "application/json")
res, err := http.DefaultClient.Do(req)
if err != nil {
panic(err)
}
defer res.Body.Close()
out, _ := io.ReadAll(res.Body)
fmt.Println(res.StatusCode, string(out))
}
PHP
<?php
$payload = <<<'JSON'
{
"company_name": "Acme GmbH (staging)",
"subdomain": "acme-status-staging"
}
JSON;
$ch = curl_init("https://app.upfour.io/v1/status-pages/00000000-0000-4000-8000-000000000001/duplicate");
curl_setopt_array($ch, [
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
"Authorization: Bearer " . getenv("UP4_API_KEY"),
"Content-Type: application/json",
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($ch);
echo curl_getinfo($ch, CURLINFO_RESPONSE_CODE), " ", $response, "\n";
curl_close($ch);
Response
201
{
"data": {
"page": {
"accent_color": "",
"announcement": "Planned maintenance on Sunday from 02:00 to 03:00 UTC.",
"appearance": null,
"automatic_reports": false,
"automatic_reports_notify": false,
"company_name": "Acme GmbH (staging)",
"company_url": "",
"contact_url": "",
"created_at": "2026-10-27T09:00:00Z",
"custom_css": "",
"custom_domain": "",
"custom_domain_certificate_status": "none",
"custom_domain_status": "none",
"custom_js": "",
"default_language": null,
"design": "v2",
"google_tag_id": "",
"header_layout": "vertical",
"hide_from_search_engines": false,
"history_days": 90,
"id": "00000000-0000-4000-8000-000000000002",
"is_published": false,
"logo_asset_url": "https://example.com/v1/public/status/assets/00000000-0000-4000-8000-000000000003?v=c414cd0e204d",
"logo_url": "",
"minimum_incident_length": 0,
"organization_id": "00000000-0000-4000-8000-000000000004",
"password_protected": false,
"platform_url": "https://example.com",
"public_url": "https://example.com",
"remove_branding": false,
"show_not_monitored_as_green": false,
"subdomain": "acme-status-staging",
"subscribable": false,
"theme": "light",
"timezone": "UTC",
"updated_at": "2026-10-27T09:00:00Z",
"uptime_decimals": 0
},
"skipped_resources": 0
}
}
400
{
"error": {
"code": "bad_request",
"message": "The request is malformed or fails validation.",
"request_id": "req_…"
}
}
402
{
"error": {
"code": "payment_required",
"message": "The account does not have the credit or plan required for this action.",
"request_id": "req_…"
}
}
403
{
"error": {
"code": "permission_denied",
"message": "The credentials do not permit this action.",
"request_id": "req_…"
}
}
404
{
"error": {
"code": "not_found",
"message": "The requested resource does not exist or is outside the caller's scope.",
"request_id": "req_…"
}
}