The Monitors API provides endpoints to list, retrieve, create, update, and delete service health checks programmatically.


1. List All Monitors

Retrieves a paginated list of configured monitors with optional filtering, searching, and sorting parameters.

HTTP Request

HTTP
GET https://veyon.app/api/v1/monitors

Request Headers

HeaderTypeValueRequired
AuthorizationStringBearer {api_key}Yes
AcceptStringapplication/jsonYes

Query Parameters

ParameterTypeModeDescription
searchStringoptionalFilter results matching a specific search query.
search_byStringoptional

Specify search target field.


• name: Search by monitor name (default).


• url: Search by target endpoint URL.

status_page_idIntegeroptionalFilter monitors assigned to a specific Status Page ID.
sort_byStringoptional

Primary field for sorting.


• id: Date created (default).


• name: Alphabetical by name.


• url: Sort by target URL.

sortStringoptional

Sort direction.


• desc: Descending order (default).


• asc: Ascending order.

Request Example (cURL)

Bash
curl --location --request GET 'https://veyon.app/api/v1/monitors?sort_by=name&sort=asc' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer YOUR_API_KEY'

Response Example (200 OK)

JSON
{
  "status": "success",
  "data": [
    {
      "id": 102,
      "name": "Core Application Gateway",
      "url": "https://api.seanergy.app/health",
      "type": "https",
      "interval": 60,
      "status": "online",
      "created_at": "2026-03-15T10:30:00Z"
    }
  ],
  "meta": {
    "total": 1,
    "page": 1
  }
}

Here is the continuation of the Developers API documentation for the Monitors endpoints, detailing how to retrieve, create, update, and delete individual monitors based on your configuration options.

2. Show a Specific Monitor

Retrieves the details of a single, specific monitor using its unique ID.

HTTP Request

HTTP
GET https://veyon.app/api/v1/monitors/{id}

Request Example (cURL)

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

3. Store (Create) a Monitor

Creates a new monitor in your account. The request data should be sent as application/x-www-form-urlencoded.

HTTP Request

HTTP
POST https://veyon.app/api/v1/monitors

Request Parameters

ParameterTypeModeDescription
nameStringRequiredThe name of the monitor.
urlStringRequiredThe target URL to monitor.
intervalIntegerRequiredCheck interval in seconds. Possible values: 60, 180, 300, 600, 900, 1800, 3600.
alert_conditionStringoptionalTrigger condition. Values: url_unavailable (default), url_text (response contains text), or url_no_text (response lacks text).
alert_text_lookupStringoptionalThe specific string to look up. (Only applies if alert_condition is url_text or url_no_text).
request_methodStringoptionalHTTP method. Values: GET (default), POST, HEAD, PUT, DELETE, PATCH, OPTIONS.
request_headers[index][key]StringoptionalCustom request header name.
request_headers[index][value]StringoptionalCustom request header value.
request_auth_usernameStringoptionalUsername for Basic HTTP request authentication.
request_auth_passwordStringoptionalPassword for Basic HTTP request authentication.
cache_busterIntegeroptionalAppends a random string to bypass caching. 0 = Disabled (default), 1 = Enabled.
ssl_alert_daysIntegeroptionalDays before SSL expiration to alert. Values: 0, 1, 2, 3, 7, 14, 30, 60.
domain_alert_daysIntegeroptionalDays before domain expiration to alert. Values: 0, 1, 2, 3, 7, 14, 30, 60.
maintenance_start_atStringoptionalMaintenance start date in Y-m-dTH:i:s format.
maintenance_end_atStringoptionalMaintenance end date in Y-m-dTH:i:s format.
alerts[index][key]StringoptionalAlert channel type. Values: email, webhook, slack, teams, discord, flock, telegram, sms.
alerts[index][value]StringoptionalThe destination value for the alert (e.g., email address or webhook URL).

Request Example (cURL)

Bash
curl --location --request POST 'https://veyon.app/api/v1/monitors' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}' \
--data-urlencode 'name={name}' \
--data-urlencode 'url={url}' \
--data-urlencode 'interval={interval}'

4. Update a Monitor

Updates an existing monitor's configuration. Accepts the same parameters as the Store endpoint, but all fields are optional. Additionally, you can pause or unpause the monitor.

HTTP Request

HTTP
PUT https://veyon.app/api/v1/monitors/{id}
PATCH https://veyon.app/api/v1/monitors/{id}

Additional Request Parameters

ParameterTypeModeDescription
(All parameters from Store)MixedoptionalUpdate any existing field (e.g., name, interval, request_method).
pauseBooleanoptionalPauses or resumes the monitor.

Request Example (cURL)

Bash
curl --location --request PUT 'https://veyon.app/api/v1/monitors/{id}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}'

5. Delete a Monitor

Permanently removes a monitor from your account using its ID.

HTTP Request

HTTP
DELETE https://veyon.app/api/v1/monitors/{id}

Request Example (cURL)

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