The Status Pages API allows you to programmatically create, manage, update, and remove public or private status pages, associate monitors with specific status pages, and customize branding (logos, favicons, custom CSS/JS).


1. List All Status Pages

Retrieves a paginated list of status pages with options for searching, filtering by monitor ID, and custom sorting.

HTTP Request

HTTP
GET https://veyon.app/api/v1/status-pages

Request Headers

HeaderTypeValueRequired
AuthorizationStringBearer {api_key}Yes
AcceptStringapplication/jsonYes

Query Parameters

ParameterTypeModeDescription
searchStringoptionalFilter status pages matching a search string.
search_byStringoptionalField to search within. Possible values: name. Defaults to name.
monitor_idIntegeroptionalFilter status pages containing a specific Monitor ID.
sort_byStringoptional

Primary field for sorting.


• id: Date created (default).


• name: Alphabetical by status page name.

sortStringoptional

Sort order.


• desc: Descending (default).


• asc: Ascending.

per_pageIntegeroptionalResults per page. Values: 10 (default), 25, 50, 100.

Request Example (cURL)

Bash
curl --location --request GET 'https://veyon.app/api/v1/status-pages' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY'

2. Show a Specific Status Page

Retrieves detailed configuration metadata for a single status page using its ID.

HTTP Request

HTTP
GET https://veyon.app/api/v1/status-pages/{id}

Request Example (cURL)

Bash
curl --location --request GET 'https://veyon.app/api/v1/status-pages/{id}' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY'

3. Store (Create) a Status Page

Creates a new status page. Requires a page name and unique URL slug.

HTTP Request

HTTP
POST https://veyon.app/api/v1/status-pages

Request Parameters

ParameterTypeModeDescription
nameStringRequiredThe display name of the status page.
slugStringRequiredUnique URL path segment (e.g., system-status).
monitor_ids[]ArrayoptionalArray of Monitor IDs to display on this status page.
privacyIntegeroptional

Visibility mode.


• 0: Public (default).


• 1: Private.


• 2: Password protected.

passwordStringoptionalPassword required to view page (only used when privacy is set to 2).
domainStringoptionalCustom domain name (e.g., status.seanergy.app).
logoFileoptionalLogo image file upload.
faviconFileoptionalFavicon image file upload.
remove_logoBooleanoptionalFlag to remove the uploaded logo.
remove_faviconBooleanoptionalFlag to remove the uploaded favicon.
website_urlStringoptionalMain website target URL for navigation links.
contact_urlStringoptionalSupport or contact URL for status page viewers.
custom_cssStringoptionalCustom CSS styling rules for white-labeling.
custom_jsStringoptionalCustom JavaScript scripts to embed.
meta_titleStringoptionalCustom HTML meta title tag.
meta_descriptionStringoptionalCustom HTML meta description tag.
noindexBooleanoptionalPrevent search engines from indexing the page (1 = true).

Request Example (cURL)

Bash
curl --location --request POST 'https://veyon.app/api/v1/status-pages' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --header 'Content-Type: application/x-www-form-urlencoded' \
  --data-urlencode 'name=System Status' \
  --data-urlencode 'slug=system-status'

4. Update a Status Page

Modifies an existing status page's attributes. Because status pages support multipart file updates (logo, favicon), form data is sent via a POST request override using _method="PUT".

HTTP Request

HTTP
POST https://veyon.app/api/v1/status-pages/{id}

Request Parameters

ParameterTypeModeDescription
_methodStringRequiredMust be set to PUT for method overriding.
(All parameters from Store)MixedoptionalModify any existing field (e.g., name, slug, privacy, domain, custom_css).

Request Example (cURL)

Bash
curl --location --request POST 'https://veyon.app/api/v1/status-pages/{id}' \
  --header 'Authorization: Bearer YOUR_API_KEY' \
  --form '_method="PUT"' \
  --form 'name="Updated Status Page"'

5. Delete a Status Page

Permanently deletes a status page. Linked monitors will not be removed from your account.

HTTP Request

HTTP
DELETE https://veyon.app/api/v1/status-pages/{id}

Request Example (cURL)

Bash
curl --location --request DELETE 'https://veyon.app/api/v1/status-pages/{id}' \
  --header 'Authorization: Bearer YOUR_API_KEY'