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
GET https://veyon.app/api/v1/status-pages
Request Headers
| Header | Type | Value | Required |
Authorization | String | Bearer {api_key} | Yes |
Accept | String | application/json | Yes |
Query Parameters
| Parameter | Type | Mode | Description |
search | String | optional | Filter status pages matching a search string. |
search_by | String | optional | Field to search within. Possible values: name. Defaults to name. |
monitor_id | Integer | optional | Filter status pages containing a specific Monitor ID. |
sort_by | String | optional | Primary field for sorting. • • |
sort | String | optional | Sort order. • • |
per_page | Integer | optional | Results per page. Values: 10 (default), 25, 50, 100. |
Request Example (cURL)
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
GET https://veyon.app/api/v1/status-pages/{id}
Request Example (cURL)
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
POST https://veyon.app/api/v1/status-pages
Request Parameters
| Parameter | Type | Mode | Description |
name | String | Required | The display name of the status page. |
slug | String | Required | Unique URL path segment (e.g., system-status). |
monitor_ids[] | Array | optional | Array of Monitor IDs to display on this status page. |
privacy | Integer | optional | Visibility mode. • • • |
password | String | optional | Password required to view page (only used when privacy is set to 2). |
domain | String | optional | Custom domain name (e.g., status.seanergy.app). |
logo | File | optional | Logo image file upload. |
favicon | File | optional | Favicon image file upload. |
remove_logo | Boolean | optional | Flag to remove the uploaded logo. |
remove_favicon | Boolean | optional | Flag to remove the uploaded favicon. |
website_url | String | optional | Main website target URL for navigation links. |
contact_url | String | optional | Support or contact URL for status page viewers. |
custom_css | String | optional | Custom CSS styling rules for white-labeling. |
custom_js | String | optional | Custom JavaScript scripts to embed. |
meta_title | String | optional | Custom HTML meta title tag. |
meta_description | String | optional | Custom HTML meta description tag. |
noindex | Boolean | optional | Prevent search engines from indexing the page (1 = true). |
Request Example (cURL)
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
POST https://veyon.app/api/v1/status-pages/{id}
Request Parameters
| Parameter | Type | Mode | Description |
_method | String | Required | Must be set to PUT for method overriding. |
| (All parameters from Store) | Mixed | optional | Modify any existing field (e.g., name, slug, privacy, domain, custom_css). |
Request Example (cURL)
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
DELETE https://veyon.app/api/v1/status-pages/{id}
Request Example (cURL)
curl --location --request DELETE 'https://veyon.app/api/v1/status-pages/{id}' \
--header 'Authorization: Bearer YOUR_API_KEY'