Status API › Pages
Update content and SEO settings
The page's description, footer, support/privacy/terms links, search indexing
and history window, saved together. The text and link fields are written as
sent (left out or blank clears them); search_indexable left out is true;
history_window_days is 30, anything else is stored as 90. ga_tag left out
is kept; null or "" clears it (it also writes analytics.ga4_measurement_id
when it is a GA4 id).
Permission (API-key scope): status:page:write.
Authorization
bearerAuth(status:page:write)apiKeyHeader(status:page:write)
Parameters
Path parameters
pageIDstring (uuid) requiredThe status page's id (a UUID).
Request body required
page_descriptionstring | nullfooter_textstring | nullsupport_urlstring | nullhttp, https ormailto:.support_labelstring | nullprivacy_urlstring | nullhttp or https.terms_urlstring | nullhttp or https.ga_tagstring | nullsearch_indexableboolean | nullhistory_window_daysinteger | null
Responses
200
The page.
dataPage requiredShow Page properties
idstring (uuid) requiredorg_idstring requiredteam_idstring requiredThe team that manages the page;""for the whole organization. Never affects the public page.slugstring requiredUnique in the organization.namestring requiredlogo_urlstringfavicon_urlstringbrand_colorstring#rrggbb.custom_domainstringis_publicboolean requiredWhether visitors can read it.themestring requiredsite_themeSiteTheme requiredShow SiteTheme properties
fontstring""is the system font.radiusstringbackgroundstringmodestringThe same setting as the page'stheme(systemthere isauto).
subscriptions_enabledbooleanreply_to_emailstringWhere replies to subscriber emails go.page_descriptionstringfooter_textstringsupport_urlstringsupport_labelstringprivacy_urlstringterms_urlstringga_tagstringThe older field for the Google Analytics id, kept in step withanalytics.ga4_measurement_id.search_indexablebooleanhistory_window_daysintegerHow far back the public page shows past incidents.product_groupsbooleanGroups fold into one line each on the public page.open_groupsarray of stringGroups that start open.product_pagesbooleanEach group has a page of its own.header_linksarray of HeaderLinkShow HeaderLink properties
labelstring requiredOne line of text.urlstring (uri) requiredAnhttps://URL.
show_page_namebooleanfalseshows the logo alone.analyticsAnalyticsSettingsShow AnalyticsSettings properties
enabledbooleanWhether visitor analytics are collected.retention_daysintegerHow long daily counts are kept.ga4_measurement_idstringA Google Analytics 4 id (G-…) the public page loads, or"".honor_privacy_signalsbooleanLoad Google Analytics only for visitors who sent neitherDNT: 1norSec-GPC: 1.
created_atstring (date-time) requiredupdated_atstring (date-time) required
successboolean required
400
A field is missing or invalid (VALIDATION_ERROR); the message names it, or the body is not valid (INVALID_BODY).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
401
No API key was sent, or it is unknown, revoked or expired (UNAUTHORIZED).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
403
The key lacks the scope this endpoint needs (FORBIDDEN).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
404
No such item, or one the caller cannot see (NOT_FOUND).
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
429
Too many requests (RATE_LIMITED). Wait Retry-After seconds.
Retry-AfterintegerSeconds to wait.
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
500
Something went wrong on EvoHub's side (INTERNAL_ERROR). Retry later.
errorobject requiredcodestring requiredMachine-readable code. Branch on this.messagestring requiredHuman-readable explanation.request_idstringThis request's id, also inX-Request-ID.
Example request
curl -X PATCH 'https://evohub.io/api/v1/pages/3f6c2a1e-8b4d-4f7a-9c21-5d0e7a9b1c42/content-settings' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-d '{
"support_url": "mailto:support@acme.com",
"support_label": "Contact support",
"page_description": "Live status of Acme services.",
"search_indexable": true,
"history_window_days": 90
}'