Uptimia API v2 (2.0.0)
Download OpenAPI specification:Download
The Uptimia REST API lets you do everything you can do in the web app — manage monitors, contacts, status pages, maintenance windows, reports and teams, and read incidents, logs and uptime statistics — over HTTPS, returning JSON.
This is API v2, the current version. The v1 API remains available but is legacy; new integrations should use v2.
Uptimia is a website uptime and performance monitoring tool. With the API you
can access the features you normally use in your browser via simple HTTPS calls.
The API supports the standard GET, POST, PATCH and DELETE methods.
Send all requests to https://www.uptimia.com/api/v2/.
Every call needs an API key — see Authentication below — then browse the available endpoints in the reference that follows.
The Uptimia API uses Bearer authentication. Include your API key in an
Authorization header on every request:
Authorization: Bearer YOUR_API_KEY
- Log in to your Uptimia account and open Settings → API Keys.
- Click Create API key and give it a name (for your own reference).
- Copy the key that is shown — for security you won't be able to see it again.
- Use the key in the
Authorizationheader of your requests.
Keep your API key secret. Don't share it or commit it to source control. If you think a key may be compromised, delete it and create a new one.
Pass the key as a Bearer token. For example, with cURL:
curl "https://www.uptimia.com/api/v2/uptime" \
-H "Authorization: Bearer YOUR_API_KEY"
Requests with a missing or invalid key return 401 Unauthorized:
{
"error_code": "invalid_api_key",
"message": "API key invalid"
}
List all uptime monitors
Returns a paginated list of all uptime monitors for the authenticated account. Supports filtering by monitor status.
Authorizations:
query Parameters
| limit | integer Example: limit=25 Maximum number of monitors to return (0 = no limit) |
| offset | integer Example: offset=0 Number of monitors to skip |
| show_is_up | boolean Default: true Include monitors that are up |
| show_is_critical | boolean Default: true Include monitors with critical incidents |
| show_is_trouble | boolean Default: true Include monitors with trouble incidents |
| show_is_suspended | boolean Default: true Include suspended monitors |
| show_is_paused | boolean Default: true Include paused monitors |
| show_is_maintenance | boolean Default: true Include monitors in maintenance |
Responses
Response samples
- 200
- 401
{- "data": [
- {
- "id": 0,
- "name": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- {
- "id": 0,
- "name": "string"
}
]
}
], - "metadata": {
- "total": 0
}
}Create a new uptime monitor
Creates a new uptime monitor with the specified configuration. The domain field is required.
Authorizations:
Request Body schema: application/json
| domain required | string URL or hostname to monitor |
| unique_id | string Custom unique identifier used in public status page URLs. |
| project_name | string Monitor display name |
| monit_type | integer Monitor type: 1=HTTP, 2=HTTPS, 3=TCP, 4=PING, 5=DNS, 6=UDP, 7=SMTP, 8=POP3, 9=IMAP |
| port | string Port number (auto-detected if empty) |
| username | string HTTP Basic Auth username |
| password | string HTTP Basic Auth password |
| string_send | string String to send for TCP/UDP protocol checks |
| string_expect | string Expected string in TCP/UDP response |
| encrypted | integer Use SSL/TLS for TCP connections (0=no, 1=yes) |
| monitoring_interval_slider | integer Monitoring interval slider value (1-10, determines check frequency) |
| report_down_slider | integer Report down delay slider value (1-5) |
| probes | string Monitoring locations: "all" for all locations, or comma-separated probe IDs |
| contacts | Array of integers Contact IDs to notify on incidents |
| groups | Array of integers Group IDs to assign the monitor to |
object Error types to report on | |
Array of objects Keywords to check for in response body | |
Array of objects Custom HTTP headers to send | |
| payload | string Raw POST/PUT request body |
| request_type | string Enum: "GET" "POST" "PUT" "DELETE" "HEAD" "POSTRAW" HTTP method for the check |
| follow_redirects | integer Follow HTTP redirects (0=no, 1=yes) |
| max_timeout | integer Maximum timeout in seconds |
| report_up | integer Send notification when monitor recovers (0=no, 1=yes) |
| branding_id | integer Branding template ID for notifications |
Responses
Request samples
- Payload
{- "unique_id": "string",
- "project_name": "My Website",
- "monit_type": 2,
- "port": "443",
- "username": "string",
- "password": "string",
- "string_send": "string",
- "string_expect": "string",
- "encrypted": 0,
- "monitoring_interval_slider": 5,
- "report_down_slider": 1,
- "probes": "all",
- "contacts": [
- 0
], - "groups": [
- 0
], - "error_types": {
- "connection": 1,
- "timeout": 1,
- "unknown": 1,
- "redirect": 1,
- "keyword": 1,
- "http": {
- "response1xx": 0,
- "response2xx": 0,
- "response3xx": 0,
- "response4xx": 1,
- "response5xx": 1
}
}, - "keywords": [
- {
- "keyword": "string",
- "type": "exists"
}
], - "custom_headers": [
- {
- "name": "string",
- "value": "string"
}
], - "payload": "string",
- "request_type": "GET",
- "follow_redirects": 1,
- "max_timeout": 30,
- "report_up": 0,
- "branding_id": 0
}Response samples
- 201
- 400
- 401
{- "data": {
- "id": 0
}
}Get a single uptime monitor
Returns full details of a specific uptime monitor including configuration, status, and assigned contacts.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "unique_id": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- { }
], - "monit_type": 0,
- "monitor_type": "HTTP",
- "interval": 0,
- "report_down": 0,
- "report_up": true,
- "url": "string",
- "port": 0,
- "username": "string",
- "password": "string",
- "has_password": true,
- "incident_id": 0,
- "string_send": "string",
- "string_expect": "string",
- "is_encrypted": true,
- "follow_redirects": true,
- "max_timeout": 0,
- "report_error_types": { },
- "keywords": [
- {
- "keyword": "string",
- "state": "must_exist"
}
], - "locations": [
- 0
], - "request_type": "GET",
- "custom_headers": [
- {
- "name": "string",
- "value": "string"
}
], - "post_values": "string",
- "branding_id": 0,
- "payload": "string",
- "contacts": [
- {
- "id": 0,
- "is_team": true,
- "is_user": true,
- "is_operator": true,
- "is_individual_contact": true
}
]
}
}Delete an uptime monitor
Permanently deletes an uptime monitor and its associated reporting configuration. Incident and log data may be retained.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "status": "success"
}Update an existing uptime monitor
Updates an existing uptime monitor. Only include fields you want to change. Omitted fields retain their current values.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Request Body schema: application/json
| is_paused | boolean Pause (true) or resume (false) the monitor. When present, only the pause/resume action is performed and other fields are ignored. |
| unique_id | string Custom unique identifier used in public status page URLs. |
| domain | string URL or hostname to monitor |
| project_name | string Monitor display name |
| monit_type | integer Monitor type: 1=HTTP, 2=HTTPS, 3=TCP, 4=PING, 5=DNS, 6=UDP, 7=SMTP, 8=POP3, 9=IMAP |
| port | string Port number |
| username | string HTTP Basic Auth username |
| password | string HTTP Basic Auth password |
| string_send | string String to send for TCP/UDP checks |
| string_expect | string Expected string in response |
| encrypted | integer Use SSL/TLS for TCP connections (0=no, 1=yes) |
| monitoring_interval_slider | integer Monitoring interval slider value (1-10) |
| report_down_slider | integer Report down delay slider value (1-5) |
| probes | string Monitoring locations: "all" or comma-separated probe IDs |
| contacts | Array of integers Contact IDs to notify |
| groups | Array of integers Group IDs |
| error_types | object Error types to report on |
| keywords | Array of objects Keywords to check in response |
| custom_headers | Array of objects Custom HTTP headers |
| payload | string Raw POST/PUT request body |
| request_type | string Enum: "GET" "POST" "PUT" "DELETE" "HEAD" "POSTRAW" HTTP method |
| follow_redirects | integer Follow HTTP redirects (0=no, 1=yes) |
| max_timeout | integer Maximum timeout in seconds |
| report_up | integer Send notification when monitor recovers (0=no, 1=yes) |
| branding_id | integer Branding template ID |
Responses
Request samples
- Payload
{- "is_paused": true,
- "unique_id": "string",
- "domain": "string",
- "project_name": "string",
- "monit_type": 0,
- "port": "string",
- "username": "string",
- "password": "string",
- "string_send": "string",
- "string_expect": "string",
- "encrypted": 0,
- "monitoring_interval_slider": 0,
- "report_down_slider": 0,
- "probes": "string",
- "contacts": [
- 0
], - "groups": [
- 0
], - "error_types": { },
- "keywords": [
- { }
], - "custom_headers": [
- { }
], - "payload": "string",
- "request_type": "GET",
- "follow_redirects": 0,
- "max_timeout": 0,
- "report_up": 0,
- "branding_id": 0
}Response samples
- 200
- 400
- 401
- 404
{- "data": {
- "id": 0
}
}List incidents for an uptime monitor
Returns a list of incidents for the specified monitor within the given date range. Defaults to the last 30 days.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 30 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
| limit | integer Maximum number of incidents to return |
| offset | integer Number of incidents to skip |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "error_id": 0,
- "error_display": "string",
- "time_started": "string",
- "date_ended": "string",
- "time_elapsed": "string"
}
], - "metadata": {
- "total": 0
}
}Get a single incident
Returns details of a specific incident for the given uptime monitor.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
| incidentId required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "monitor_id": 0,
- "type": "HTTP",
- "type_code": "uptime",
- "url": "string",
- "port": 0,
- "string_send": "string",
- "string_expect": "string",
- "time_started": "string",
- "time_started_unix": 0,
- "time_ended": "string",
- "time_ended_unix": 0,
- "error": "string",
- "duration": "string",
- "errors": [
- {
- "error": "string",
- "count": 0
}
], - "servers": [
- {
- "name": "string",
- "flag": "string",
- "ip": "string",
- "date": "string",
- "error": "string"
}
], - "response_headers": "string",
- "response_body": "string",
- "traceroute": "string",
- "screenshot": "string",
- "keywords": [
- { }
], - "is_critical": true,
- "is_trouble": true
}
}Delete an incident
Permanently deletes a specific incident and its associated status page threads.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
| incidentId required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "status": "success"
}List monitoring logs across all monitors
Returns a paginated list of monitoring check logs across all uptime monitors for the authenticated account. Supports date range filtering and pagination.
Authorizations:
query Parameters
| limit | integer Example: limit=50 Maximum number of log entries to return (default 50) |
| offset | integer Example: offset=0 Number of log entries to skip |
| date_start | integer Start date as Unix timestamp |
| date_end | integer End date as Unix timestamp |
Responses
Response samples
- 200
- 401
{- "data": [
- {
- "id": 0,
- "monitor_id": 0,
- "monitor_name": "string",
- "flag": "string",
- "location": "string",
- "time": "2019-08-24T14:15:22Z",
- "status": "up",
- "speed": 0,
- "dns": 0,
- "connect": 0,
- "send": 0,
- "wait": 0,
- "receive": 0,
- "is_backup": true
}
], - "metadata": {
- "total": 0
}
}List monitoring logs
Returns recent monitoring check logs for the specified monitor. Shows the last 14 days of data, limited to 20 entries.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| limit | integer Maximum number of log entries to return |
| offset | integer Number of log entries to skip |
| date_start | integer Start date as Unix timestamp to filter the log range |
| date_end | integer End date as Unix timestamp to filter the log range |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "id": 0,
- "flag": "string",
- "location": "string",
- "time_elapsed": "string",
- "speed": "string",
- "status_icon": "string",
- "status_alt": "string"
}
], - "metadata": {
- "total": 0
}
}Get timeline segments for an uptime monitor
Returns timeline segments showing uptime, downtime, maintenance, and unknown periods for the given date range.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 7 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Get availability percentages
Calculates uptime and downtime percentages for the specified monitor within the given date range. Defaults to the last 24 hours.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 24 hours ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "data": {
- "uptime": 99.95,
- "downtime": 0.05
}
}Get response time history
Returns response time chart data for the specified monitor. Includes timing breakdown (DNS, connect, send, wait, receive) for HTTP/HTTPS monitors. Data is cached for 60 seconds.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 24 hours ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "response_time": [
- 0
], - "dns": [
- 0
], - "connect": [
- 0
], - "send": [
- 0
], - "wait": [
- 0
], - "receive": [
- 0
], - "downtime": [
- 0
], - "date": [
- "string"
], - "max_value": 0
}
}List all SSL monitors
Returns a paginated list of all SSL monitors for the authenticated account. Supports filtering by monitor status.
Authorizations:
query Parameters
| limit | integer Example: limit=25 Maximum number of monitors to return (0 = no limit) |
| offset | integer Example: offset=0 Number of monitors to skip |
| show_is_up | boolean Default: true Include monitors that are up |
| show_is_critical | boolean Default: true Include monitors with critical incidents |
| show_is_trouble | boolean Default: true Include monitors with trouble incidents |
| show_is_suspended | boolean Default: true Include suspended monitors |
| show_is_paused | boolean Default: true Include paused monitors |
| show_is_maintenance | boolean Default: true Include monitors in maintenance |
Responses
Response samples
- 200
- 401
{- "data": [
- {
- "id": 0,
- "name": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- {
- "id": 0,
- "name": "string"
}
]
}
], - "metadata": {
- "total": 0
}
}Create a new SSL monitor
Creates a new SSL certificate monitor for the specified URL.
Authorizations:
Request Body schema: application/json
| url required | string URL to monitor SSL certificate for |
| region | integer Monitoring region ID (defaults to 1). |
| project_name | string Monitor display name |
| monitoring_interval_slider | integer Monitoring interval slider value (1-10, determines check frequency) |
| report_down_slider | integer Report down delay slider value (1-5) |
| change_error_level_time | integer Seconds before changing error level. Preferred field — sent in seconds by the editor. |
| change_error_level_time_slider | integer Legacy slider value for the change error level time (1-10). Only used by the bulk path when change_error_level_time is omitted. |
| expire_alert_days | integer Days before certificate expiry to alert |
| probes | string Monitoring locations: "all" for all locations, or comma-separated probe IDs |
| contacts | Array of integers Contact IDs to notify on incidents |
| groups | Array of integers Group IDs to assign the monitor to |
| report_up | integer Send notification when monitor recovers (0=no, 1=yes) |
| branding_id | integer Branding template ID for notifications |
Responses
Request samples
- Payload
{- "region": 1,
- "project_name": "My Website SSL",
- "monitoring_interval_slider": 5,
- "report_down_slider": 1,
- "change_error_level_time": 3600,
- "change_error_level_time_slider": 5,
- "expire_alert_days": 7,
- "probes": "all",
- "contacts": [
- 0
], - "groups": [
- 0
], - "report_up": 0,
- "branding_id": 0
}Response samples
- 201
- 400
- 401
{- "data": {
- "id": 0
}
}Get a single SSL monitor
Returns full details of a specific SSL monitor including configuration, status, certificate info, and assigned contacts.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- { }
], - "interval": 0,
- "report_down": 0,
- "report_up": true,
- "url": "string",
- "incident_id": 0,
- "locations": [
- 0
], - "expire_alert_days": 0,
- "change_error_level_time": 0,
- "branding_id": 0,
- "contacts": [
- {
- "id": 0,
- "is_team": true,
- "is_user": true,
- "is_operator": true,
- "is_individual_contact": true
}
], - "issuer": "string",
- "protocol": "string",
- "domain_name": "string",
- "valid_from": 0,
- "valid_to": 0,
- "days_remaining": 0,
- "error_code": "string",
- "status": 0
}
}Delete an SSL monitor
Permanently deletes an SSL monitor and its associated reporting configuration. Incident and log data may be retained.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "status": "success"
}Update an existing SSL monitor
Updates an existing SSL monitor. Only include fields you want to change. Omitted fields retain their current values.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Request Body schema: application/json
| is_paused | boolean Pause (true) or resume (false) the monitor. When present, only the pause/resume action is performed and other fields are ignored. |
| url | string URL to monitor SSL certificate for |
| region | integer Monitoring region ID (defaults to 1). |
| project_name | string Monitor display name |
| monitoring_interval_slider | integer Monitoring interval slider value (1-10) |
| report_down_slider | integer Report down delay slider value (1-5) |
| change_error_level_time | integer Seconds before changing error level. Preferred field — sent in seconds by the editor. |
| change_error_level_time_slider | integer Legacy slider value for the change error level time (1-10). Only used by the bulk path when change_error_level_time is omitted. |
| expire_alert_days | integer Days before certificate expiry to alert |
| probes | string Monitoring locations: "all" or comma-separated probe IDs |
| contacts | Array of integers Contact IDs to notify |
| groups | Array of integers Group IDs |
| report_up | integer Send notification when monitor recovers (0=no, 1=yes) |
| branding_id | integer Branding template ID |
Responses
Request samples
- Payload
{- "is_paused": true,
- "url": "string",
- "region": 1,
- "project_name": "string",
- "monitoring_interval_slider": 0,
- "report_down_slider": 0,
- "change_error_level_time": 3600,
- "change_error_level_time_slider": 0,
- "expire_alert_days": 0,
- "probes": "string",
- "contacts": [
- 0
], - "groups": [
- 0
], - "report_up": 0,
- "branding_id": 0
}Response samples
- 200
- 400
- 401
- 404
{- "data": {
- "id": 0
}
}List incidents for an SSL monitor
Returns a list of incidents for the specified SSL monitor within the given date range. Defaults to the last 30 days.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 30 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
| limit | integer Maximum number of incidents to return |
| offset | integer Number of incidents to skip |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "error_id": 0,
- "error_display": "string",
- "time_started": "string",
- "date_ended": "string",
- "time_elapsed": "string"
}
], - "metadata": {
- "total": 0
}
}Get a single SSL incident
Returns full details of a specific incident for the given SSL monitor.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
| incidentId required | integer\d+ Incident ID |
Responses
Response samples
- 200
{- "data": {
- "id": 0,
- "name": "string",
- "monitor_id": 0,
- "type": "SSL",
- "type_code": "ssl",
- "url": "string",
- "port": 443,
- "time_started": "string",
- "time_started_unix": 0,
- "time_ended": "string",
- "time_ended_unix": 0,
- "error": "string",
- "duration": "string",
- "errors": [
- {
- "error": "string",
- "count": 0
}
], - "servers": [
- {
- "name": "string",
- "flag": "string",
- "ip": "string",
- "date": "string",
- "error": "string"
}
], - "response_headers": "string",
- "response_body": "string",
- "traceroute": "string",
- "screenshot": "string",
- "is_critical": true,
- "is_trouble": true
}
}Delete an SSL incident
Permanently deletes a specific SSL incident and its associated status page threads.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
| incidentId required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "status": "success"
}List SSL monitoring logs
Returns recent monitoring check logs for the specified SSL monitor. Shows the last 90 days of data, limited to 20 entries.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| limit | integer Maximum number of log entries to return |
| offset | integer Number of log entries to skip |
| date_start | integer Start date as Unix timestamp to filter the log range |
| date_end | integer End date as Unix timestamp to filter the log range |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "id": 0,
- "flag": "string",
- "location": "string",
- "time_elapsed": "string",
- "speed": "string",
- "status_icon": "string",
- "status_alt": "string"
}
], - "metadata": {
- "total": 0
}
}Get timeline segments for an SSL monitor
Returns up, down, maintenance and unknown timeline segments for the SSL monitor over the requested date range, suitable for rendering an availability timeline strip.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 7 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Get SSL response time history
Returns response time and downtime chart data for the specified SSL monitor. Data is cached for 60 seconds.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 24 hours ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "speed": [
- 0
], - "downtime": [
- 0
], - "date": [
- "string"
], - "max_value": 0
}
}List all domain monitors
Returns a paginated list of all domain monitors for the authenticated account. Supports filtering by monitor status.
Authorizations:
query Parameters
| limit | integer Example: limit=25 Maximum number of monitors to return (0 = no limit) |
| offset | integer Example: offset=0 Number of monitors to skip |
| show_is_up | boolean Default: true Include monitors that are up |
| show_is_critical | boolean Default: true Include monitors with critical incidents |
| show_is_trouble | boolean Default: true Include monitors with trouble incidents |
| show_is_suspended | boolean Default: true Include suspended monitors |
| show_is_paused | boolean Default: true Include paused monitors |
| show_is_maintenance | boolean Default: true Include monitors in maintenance |
Responses
Response samples
- 200
- 401
{- "data": [
- {
- "id": 0,
- "name": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- {
- "id": 0,
- "name": "string"
}
]
}
], - "metadata": {
- "total": 0
}
}Create a new domain monitor
Creates a new domain expiration monitor. Validates domain zone against supported TLD whitelist.
Authorizations:
Request Body schema: application/json
| url required | string Domain name to monitor (e.g. example.com) |
| project_name required | string Monitor display name |
| monitoring_interval_slider | integer Monitoring interval slider value (1-10, determines check frequency, minimum 1 day) |
| report_down_slider | integer Report down delay slider value (1-5) |
| expire_alert_days | integer Days before domain expiry to alert (1-90, default 7) |
| expiry_date | string Manual expiry date in YYYY-MM-DD format (only for manual zones) |
| contacts | Array of integers Contact IDs to notify on incidents |
| groups | Array of integers Group IDs to assign the monitor to |
| report_up | integer Send notification when monitor recovers (0=no, 1=yes) |
| branding_id | integer Branding template ID for notifications |
| bulk_data | string Bulk import: newline-separated list of domains |
Responses
Request samples
- Payload
{- "url": "example.com",
- "project_name": "My Domain",
- "monitoring_interval_slider": 5,
- "report_down_slider": 1,
- "expire_alert_days": 7,
- "expiry_date": "2027-01-15",
- "contacts": [
- 0
], - "groups": [
- 0
], - "report_up": 0,
- "branding_id": 0,
- "bulk_data": ""
}Response samples
- 201
- 400
- 401
{- "data": {
- "id": 0
}
}Get a single domain monitor
Returns full details of a specific domain monitor including WHOIS data, expiration info, registrar, and nameservers.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- { }
], - "interval": 0,
- "report_down": 0,
- "report_up": true,
- "url": "string",
- "incident_id": 0,
- "expire_alert_days": 0,
- "branding_id": 0,
- "contacts": [
- {
- "id": 0,
- "is_team": true,
- "is_user": true,
- "is_operator": true,
- "is_individual_contact": true
}
], - "is_manual": true,
- "tld": "string",
- "zone": "string",
- "domain_creation_date": 0,
- "domain_updated_date": 0,
- "domain_expiry_date": 0,
- "days_remaining": 0,
- "registrar": "string",
- "nameservers": "string"
}
}Delete a domain monitor
Permanently deletes a domain monitor and its associated reporting configuration. Incident and log data may be retained.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "status": "success"
}Update an existing domain monitor
Updates an existing domain monitor. Only include fields you want to change. Omitted fields retain their current values.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Request Body schema: application/json
| is_paused | boolean Pause (true) or resume (false) the monitor. When present, only the pause/resume action is performed and other fields are ignored. |
| url | string Domain name to monitor |
| project_name | string Monitor display name |
| monitoring_interval_slider | integer Monitoring interval slider value (1-10) |
| report_down_slider | integer Report down delay slider value (1-5) |
| expire_alert_days | integer Days before domain expiry to alert (1-90) |
| expiry_date | string Manual expiry date in YYYY-MM-DD format (only for manual zones) |
| contacts | Array of integers Contact IDs to notify |
| groups | Array of integers Group IDs |
| report_up | integer Send notification when monitor recovers (0=no, 1=yes) |
| branding_id | integer Branding template ID |
Responses
Request samples
- Payload
{- "is_paused": true,
- "url": "string",
- "project_name": "string",
- "monitoring_interval_slider": 0,
- "report_down_slider": 0,
- "expire_alert_days": 0,
- "expiry_date": "2027-01-15",
- "contacts": [
- 0
], - "groups": [
- 0
], - "report_up": 0,
- "branding_id": 0
}Response samples
- 200
- 400
- 401
- 404
{- "data": {
- "id": 0
}
}List incidents for a domain monitor
Returns a list of domain expiration incidents within the given date range. Defaults to the last 30 days. Domain-specific error codes: domain_expires_soon, domain_expires_very_soon, domain_expired.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 30 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
| limit | integer Maximum number of incidents to return |
| offset | integer Number of incidents to skip |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "error_id": 0,
- "error_display": "string",
- "time_started": "string",
- "date_ended": "string",
- "time_elapsed": "string"
}
], - "metadata": {
- "total": 0
}
}Get a single domain incident
Returns details of a specific domain expiration incident.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
| incidentId required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "monitor_id": 0,
- "type": "Domain",
- "type_code": "domain",
- "url": "string",
- "port": 0,
- "time_started": "string",
- "time_started_unix": 0,
- "time_ended": "string",
- "time_ended_unix": 0,
- "error": "string",
- "duration": "string",
- "errors": [
- {
- "error": "string",
- "count": 0
}
], - "servers": [
- {
- "name": "string",
- "flag": "string",
- "ip": "string",
- "date": "string",
- "error": "string"
}
], - "response_headers": "string",
- "response_body": "string",
- "traceroute": "string",
- "screenshot": "string",
- "is_critical": true,
- "is_trouble": true
}
}Delete a domain incident
Permanently deletes a specific domain expiration incident and its associated status page threads.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
| incidentId required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "status": "success"
}List domain WHOIS check logs
Returns recent WHOIS monitoring check logs for the specified domain monitor. Shows the last 90 days of data, limited to 20 entries.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| limit | integer Maximum number of log entries to return |
| offset | integer Number of log entries to skip |
| date_start | integer Start date as Unix timestamp to filter the log range |
| date_end | integer End date as Unix timestamp to filter the log range |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "id": 0,
- "flag": "string",
- "location": "string",
- "time_elapsed": "string",
- "response_time": "string",
- "status_icon": "string",
- "status_alt": "string"
}
], - "metadata": {
- "total": 0
}
}Get timeline segments for a domain monitor
Returns up, down, maintenance and unknown timeline segments for the domain monitor over the requested date range, suitable for rendering an availability timeline strip.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 7 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Get domain WHOIS response time history
Returns WHOIS response time and downtime chart data for the specified domain monitor. Data is cached for 60 seconds.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 24 hours ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "speed": [
- 0
], - "downtime": [
- 0
], - "date": [
- "string"
], - "max_value": 0
}
}List all speed monitors
Returns a paginated list of all speed monitors for the authenticated account. Supports filtering by monitor status.
Authorizations:
query Parameters
| limit | integer Example: limit=25 Maximum number of monitors to return (0 = no limit) |
| offset | integer Example: offset=0 Number of monitors to skip |
| show_is_up | boolean Default: true Include monitors that are up |
| show_is_critical | boolean Default: true Include monitors with critical incidents |
| show_is_trouble | boolean Default: true Include monitors with trouble incidents |
| show_is_suspended | boolean Default: true Include suspended monitors |
| show_is_paused | boolean Default: true Include paused monitors |
| show_is_maintenance | boolean Default: true Include monitors in maintenance |
Responses
Response samples
- 200
- 401
{- "data": [
- {
- "id": 0,
- "name": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- {
- "id": 0,
- "name": "string"
}
]
}
], - "metadata": {
- "total": 0
}
}Create a new speed monitor
Creates a new speed/page load monitor for the specified URL.
Authorizations:
Request Body schema: application/json
| url required | string URL to monitor page speed for |
| project_name | string Monitor display name |
| monitoring_interval_slider | integer Monitoring interval slider value (1-10, determines check frequency) |
| report_down_slider | integer Report down delay slider value (1-5) |
| probes | string Monitoring locations: "all" for all locations, or comma-separated probe IDs |
| contacts | Array of integers Contact IDs to notify on incidents |
| groups | Array of integers Group IDs to assign the monitor to |
| is_alert_speed_drops | integer Enable speed drop alerts (0=no, 1=yes) |
| alert_speed_threshold | integer Speed alert threshold in seconds (1-30) |
| alert_speed_time | integer Speed alert time window in minutes (20-60) |
| report_up | integer Send notification when monitor recovers (0=no, 1=yes) |
| branding_id | integer Branding template ID for notifications |
Responses
Request samples
- Payload
{- "project_name": "My Website Speed",
- "monitoring_interval_slider": 5,
- "report_down_slider": 1,
- "probes": "all",
- "contacts": [
- 0
], - "groups": [
- 0
], - "is_alert_speed_drops": 0,
- "alert_speed_threshold": 5,
- "alert_speed_time": 30,
- "report_up": 0,
- "branding_id": 0
}Response samples
- 201
- 400
- 401
{- "data": {
- "id": 0
}
}Get a single speed monitor
Returns full details of a specific speed monitor including configuration, status, speed alert settings, and assigned contacts.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- { }
], - "interval": 0,
- "report_down": 0,
- "report_up": true,
- "url": "string",
- "incident_id": 0,
- "locations": [
- 0
], - "is_alert_speed_drops": 0,
- "alert_speed_threshold": 0,
- "alert_speed_time": 0,
- "branding_id": 0,
- "contacts": [
- {
- "id": 0,
- "is_team": true,
- "is_user": true,
- "is_operator": true,
- "is_individual_contact": true
}
]
}
}Delete a speed monitor
Permanently deletes a speed monitor and its associated reporting configuration. Incident and log data may be retained.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "status": "success"
}Update an existing speed monitor
Updates an existing speed monitor. Only include fields you want to change. Omitted fields retain their current values.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Request Body schema: application/json
| is_paused | boolean Pause (true) or resume (false) the monitor. When present, only the pause/resume action is performed and other fields are ignored. |
| url | string URL to monitor page speed for |
| project_name | string Monitor display name |
| monitoring_interval_slider | integer Monitoring interval slider value (1-10) |
| report_down_slider | integer Report down delay slider value (1-5) |
| probes | string Monitoring locations: "all" or comma-separated probe IDs |
| contacts | Array of integers Contact IDs to notify |
| groups | Array of integers Group IDs |
| is_alert_speed_drops | integer Enable speed drop alerts (0=no, 1=yes) |
| alert_speed_threshold | integer Speed alert threshold in seconds (1-30) |
| alert_speed_time | integer Speed alert time window in minutes (20-60) |
| report_up | integer Send notification when monitor recovers (0=no, 1=yes) |
| branding_id | integer Branding template ID |
Responses
Request samples
- Payload
{- "is_paused": true,
- "url": "string",
- "project_name": "string",
- "monitoring_interval_slider": 0,
- "report_down_slider": 0,
- "probes": "string",
- "contacts": [
- 0
], - "groups": [
- 0
], - "is_alert_speed_drops": 0,
- "alert_speed_threshold": 0,
- "alert_speed_time": 0,
- "report_up": 0,
- "branding_id": 0
}Response samples
- 200
- 400
- 401
- 404
{- "data": {
- "id": 0
}
}List incidents for a speed monitor
Returns a list of incidents for the specified speed monitor within the given date range. Defaults to the last 30 days.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 30 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
| limit | integer Maximum number of incidents to return |
| offset | integer Number of incidents to skip |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "error_id": 0,
- "error_display": "string",
- "time_started": "string",
- "date_ended": "string",
- "time_elapsed": "string"
}
], - "metadata": {
- "total": 0
}
}Get a single speed incident
Returns the full detail of a specific incident for the given speed monitor, including the parsed error list, the probe servers that detected the incident, the captured response headers/body, traceroute and screenshot.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
| incidentId required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "monitor_id": 0,
- "type": "Speed",
- "type_code": "speed",
- "url": "string",
- "port": 0,
- "time_started": "string",
- "time_started_unix": 0,
- "time_ended": "string",
- "time_ended_unix": 0,
- "error": "string",
- "duration": "string",
- "errors": [
- {
- "error": "string",
- "count": 0
}
], - "servers": [
- {
- "name": "string",
- "flag": "string",
- "ip": "string",
- "date": "string",
- "error": "string"
}
], - "response_headers": "string",
- "response_body": "string",
- "traceroute": "string",
- "screenshot": "string",
- "is_critical": true,
- "is_trouble": true
}
}Delete a speed incident
Permanently deletes a specific speed incident and its associated status page threads.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
| incidentId required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "status": "success"
}List speed monitoring logs
Returns recent monitoring check logs for the specified speed monitor. Shows the last 14 days of data, limited to 10 entries.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| limit | integer Maximum number of log entries to return |
| offset | integer Number of log entries to skip |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "id": 0,
- "flag": "string",
- "location": "string",
- "time_elapsed": "string",
- "speed": "string",
- "status_icon": "string",
- "status_alt": "string"
}
], - "metadata": {
- "total": 0
}
}Get timeline segments for a speed monitor
Returns up, down, maintenance and unknown timeline segments for the speed monitor over the requested date range, suitable for rendering an availability timeline strip.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 7 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Get speed load time chart data
Returns load time and downtime chart data for the specified speed monitor, including per-point probe location. Data is cached for 60 seconds.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 24 hours ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "speed": [
- 0
], - "downtime": [
- 0
], - "date": [
- "string"
], - "location": [
- {
- "name": "string",
- "flag": "string"
}
], - "max_value": 0
}
}Get speed monitor averages
Returns aggregated average metrics for the specified speed monitor within the given date range: load time, requests, size, own domain time, and number of hosts.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 30 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "load_time": 0,
- "total_resource_time": 0,
- "requests": 0,
- "size": 0,
- "own_domain_time": 0,
- "own_domain_pct": 0,
- "third_party_time": 0,
- "hosts": 0,
- "total_checks": 0
}
}Get dead/broken elements
Returns a list of broken or dead assets detected on the monitored page. Elements with 3+ consecutive failures are flagged.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 30 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "link": "string",
- "error": "string",
- "time": 0
}
]
}Get PageSpeed/Lighthouse scores
Returns the latest Lighthouse/PageSpeed analysis for the monitored page, including score, host count, resource count, page size, and detailed insights.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "summary": {
- "id": 0,
- "score": 0,
- "number_of_hosts": 0,
- "number_of_resources": 0,
- "page_size": "string",
- "page_size_plain": 0,
- "time": 0
}, - "insights": { }
}
}Get component breakdown
Returns average speed, size, and request count broken down by component type (script, HTML, CSS, image, text, redirect) for the specified date range.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 30 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "script": {
- "speed": "string",
- "size": "string",
- "requests": 0
}, - "html": {
- "speed": "string",
- "size": "string",
- "requests": 0
}, - "css": {
- "speed": "string",
- "size": "string",
- "requests": 0
}, - "image": {
- "speed": "string",
- "size": "string",
- "requests": 0
}, - "text": {
- "speed": "string",
- "size": "string",
- "requests": 0
}, - "redirect": {
- "speed": "string",
- "size": "string",
- "requests": 0
}
}
}List all transaction monitors
Returns a list of all transaction monitors for the authenticated account. Supports filtering by monitor status.
Authorizations:
query Parameters
| show_is_up | boolean Default: true Include monitors that are up |
| show_is_critical | boolean Default: true Include monitors with critical incidents |
| show_is_trouble | boolean Default: true Include monitors with trouble incidents |
| show_is_suspended | boolean Default: true Include suspended monitors |
| show_is_paused | boolean Default: true Include paused monitors |
| show_is_maintenance | boolean Default: true Include monitors in maintenance |
| limit | integer Example: limit=25 Maximum number of monitors to return (0 = no limit) |
| offset | integer Example: offset=0 Number of monitors to skip |
Responses
Response samples
- 200
- 401
{- "data": [
- {
- "id": 0,
- "name": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- {
- "id": 0,
- "name": "string"
}
]
}
], - "metadata": {
- "total": 0,
- "up": 0,
- "critical": 0,
- "trouble": 0,
- "suspended": 0,
- "paused": 0,
- "maintenance": 0
}
}Create a new transaction monitor
Creates a new transaction monitor with step definitions. Steps define the user journey to be tested.
Authorizations:
Request Body schema: application/json
| project_name | string Monitor display name |
| monitoring_interval_slider | integer Monitoring interval slider value |
| report_down_slider | integer Report down delay slider value |
| contacts | Array of integers Contact IDs to notify |
| groups | Array of integers Group IDs |
| report_up | integer Send notification when monitor recovers (0=no, 1=yes) |
| branding_id | integer Branding template ID |
| probes | any Probe locations ("all" or array of IDs) |
Array of objects Transaction step definitions |
Responses
Request samples
- Payload
{- "project_name": "string",
- "monitoring_interval_slider": 0,
- "report_down_slider": 0,
- "contacts": [
- 0
], - "groups": [
- 0
], - "report_up": 0,
- "branding_id": 0,
- "probes": null,
- "steps": [
- {
- "number": 0,
- "action_name": "string",
- "element_value_1": "string",
- "element_value_2": "string",
- "element_value_3": "string",
- "skip_step_if_fails": 0,
- "wait_before_starting": 0,
- "perform_if_element_found": "string",
- "perform_if_text_found": "string",
- "perform_if_element_found_existance": "string",
- "perform_if_text_found_existance": "string"
}
]
}Response samples
- 201
- 400
- 401
{- "data": {
- "id": 0
}
}Get a single transaction monitor
Returns full details of a specific transaction monitor including configuration, step definitions, and assigned contacts.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- { }
], - "interval": 0,
- "report_down": 0,
- "report_up": 0,
- "incident_id": 0,
- "locations": [
- 0
], - "branding_id": 0,
- "contacts": [
- {
- "id": 0,
- "is_team": true,
- "is_user": true,
- "is_operator": true,
- "is_individual_contact": true
}
], - "steps": [
- {
- "number": 0,
- "action_name": "string",
- "element_value_1": "string",
- "element_value_2": "string",
- "element_value_3": "string",
- "skip_step_if_fails": 0,
- "wait_before_starting": 0
}
]
}
}Update a transaction monitor
Updates an existing transaction monitor including step definitions. Supports pausing/resuming as a separate operation.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Request Body schema: application/json
| is_paused | boolean Set to true to pause, false to resume (handled separately) |
| project_name | string Monitor display name |
| monitoring_interval_slider | integer Monitoring interval slider value |
| report_down_slider | integer Report down delay slider value |
| contacts | Array of integers Contact IDs to notify |
| groups | Array of integers Group IDs |
| report_up | integer Send notification when monitor recovers (0=no, 1=yes) |
| branding_id | integer Branding template ID |
| probes | any Probe locations ("all" or array of IDs) |
Array of objects Transaction step definitions |
Responses
Request samples
- Payload
{- "is_paused": true,
- "project_name": "string",
- "monitoring_interval_slider": 0,
- "report_down_slider": 0,
- "contacts": [
- 0
], - "groups": [
- 0
], - "report_up": 0,
- "branding_id": 0,
- "probes": null,
- "steps": [
- {
- "number": 0,
- "action_name": "string",
- "element_value_1": "string",
- "element_value_2": "string",
- "element_value_3": "string",
- "skip_step_if_fails": 0,
- "wait_before_starting": 0,
- "perform_if_element_found": "string",
- "perform_if_text_found": "string",
- "perform_if_element_found_existance": "string",
- "perform_if_text_found_existance": "string"
}
]
}Response samples
- 200
- 400
- 401
- 404
{- "data": {
- "id": 0
}
}List incidents for a transaction monitor
Returns a list of incidents for the specified transaction monitor within the given date range. Defaults to the last 30 days.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 30 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
| limit | integer Maximum number of incidents to return |
| offset | integer Number of incidents to skip |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "error_id": 0,
- "error_display": "string",
- "time_started": "string",
- "date_ended": "string",
- "time_elapsed": "string"
}
], - "metadata": {
- "total": 0
}
}Get incident detail with step breakdown
Returns details of a specific transaction incident, including a per-step breakdown with durations, action names, and screenshot URLs.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
| incidentId required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "id": 0,
- "time_started": "string",
- "time_started_unix": 0,
- "error_display": "string",
- "date_ended": "string",
- "steps": [
- {
- "number": 0,
- "action_name": "string",
- "attribute": "string",
- "duration": "string",
- "status": "success",
- "screenshot_url": "string"
}
]
}
}List monitoring logs for a transaction monitor
Returns recent monitoring check logs for the specified transaction monitor within the given date range, limited to 20 entries. Defaults to the last 14 days when no range is supplied.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 14 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
| limit | integer Maximum number of log entries to return |
| offset | integer Number of log entries to skip |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "id": 0,
- "flag": "string",
- "location": "string",
- "time_elapsed": "string",
- "speed": "string",
- "status_icon": "string",
- "status_alt": "string"
}
], - "metadata": {
- "total": 0
}
}Get the last run of a transaction monitor
Returns the most recent transaction run with its overall status, total duration and per-step breakdown (step number, action name, attribute, duration, status and a screenshot URL when one was captured). Returns null data if the monitor has not run yet.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Get timeline segments for a transaction monitor
Returns up, down, maintenance and unknown timeline segments for the transaction monitor over the requested date range, suitable for rendering an availability timeline strip.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 7 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Get stacked step chart data
Returns step-by-step timing data for building a stacked chart of transaction execution durations. In addition to the fixed fields, the response contains one dynamic series per step ("step_1", "step_2", ... up to "step_N" where N is max_steps); each step_N is an array of that step's duration in seconds for each data point (0 when the step did not run). Returns an empty object when there is no data in the range.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 24 hours ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "date": [
- "string"
], - "max_value": 0,
- "max_steps": 0,
- "total": [
- 0
], - "step_1": [
- 0
], - "property1": [
- 0
], - "property2": [
- 0
]
}
}Get availability percentages for a transaction monitor
Calculates uptime and downtime percentages for the specified transaction monitor within the given date range. Defaults to the last 24 hours.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 24 hours ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "data": {
- "uptime": 99.95,
- "downtime": 0.05
}
}Get step definitions for a transaction monitor
Returns the configured step definitions for the specified transaction monitor, including action names, element selectors, and conditional execution options.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "number": 0,
- "action_name": "string",
- "element_value_1": "string",
- "element_value_2": "string",
- "element_value_3": "string",
- "skip_step_if_fails": 0,
- "wait_before_starting": 0,
- "perform_if_element_found": "string",
- "perform_if_text_found": "string",
- "perform_if_element_found_existance": "string",
- "perform_if_text_found_existance": "string"
}
]
}Queue an immediate test run for a transaction monitor
Schedules the specified transaction monitor for an immediate check by setting its next check time to now. This is an asynchronous operation: the test is queued for a probe to pick up and does NOT run synchronously, so live step results and screenshots are not returned here. The response always reports a "queued" status, echoes the monitor ID, and lists the monitor's steps with a placeholder "queued" status (duration "0ms", no screenshot). Poll GET /api/v2/transaction/{id}/last-run afterwards to retrieve the actual run results.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
{- "data": {
- "status": "queued",
- "monitor_id": 0,
- "steps": [
- {
- "number": 0,
- "action_name": "string",
- "status": "queued",
- "duration": "0ms",
- "screenshot_url": "string"
}
]
}
}List all virus monitors
Returns a paginated list of all virus monitors for the authenticated account. Supports filtering by monitor status.
Authorizations:
query Parameters
| limit | integer Example: limit=25 Maximum number of monitors to return (0 = no limit) |
| offset | integer Example: offset=0 Number of monitors to skip |
| show_is_up | boolean Default: true Include monitors that are up |
| show_is_critical | boolean Default: true Include monitors with critical incidents |
| show_is_trouble | boolean Default: true Include monitors with trouble incidents |
| show_is_suspended | boolean Default: true Include suspended monitors |
| show_is_paused | boolean Default: true Include paused monitors |
| show_is_maintenance | boolean Default: true Include monitors in maintenance |
Responses
Response samples
- 200
- 401
{- "data": [
- {
- "id": 0,
- "name": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- {
- "id": 0,
- "name": "string"
}
]
}
], - "metadata": {
- "total": 0
}
}Create a new virus monitor
Creates a new virus/malware monitor for the specified URL. Scans via the Google Web Risk API.
Authorizations:
Request Body schema: application/json
| url required | string URL to monitor for viruses/malware |
| project_name | string Monitor display name |
| monitoring_interval_slider | integer Monitoring interval slider value (determines check frequency, minimum 3600s) |
| report_down_slider | integer Report down delay slider value |
| contacts | Array of integers Contact IDs to notify on incidents |
| groups | Array of integers Group IDs to assign the monitor to |
| report_up | integer Send notification when monitor recovers (0=no, 1=yes) |
| branding_id | integer Branding template ID for notifications |
Responses
Request samples
- Payload
{- "project_name": "My Website Virus Scan",
- "monitoring_interval_slider": 5,
- "report_down_slider": 1,
- "contacts": [
- 0
], - "groups": [
- 0
], - "report_up": 1,
- "branding_id": 0
}Response samples
- 201
- 400
- 401
{- "data": {
- "id": 0
}
}Get a single virus monitor
Returns full details of a specific virus monitor including configuration, status, and assigned contacts.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- { }
], - "interval": 0,
- "report_down": 0,
- "report_up": true,
- "url": "string",
- "incident_id": 0,
- "branding_id": 0,
- "contacts": [
- {
- "id": 0,
- "is_team": true,
- "is_user": true,
- "is_operator": true,
- "is_individual_contact": true
}
]
}
}Delete a virus monitor
Permanently deletes a virus monitor and its associated reporting configuration. Incident and log data may be retained.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "status": "success"
}Update an existing virus monitor
Updates an existing virus monitor. Only include fields you want to change. Omitted fields retain their current values.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Request Body schema: application/json
| is_paused | boolean Pause (true) or resume (false) the monitor. When present, only the pause/resume action is performed and other fields are ignored. |
| url | string URL to monitor for viruses/malware |
| project_name | string Monitor display name |
| monitoring_interval_slider | integer Monitoring interval slider value |
| report_down_slider | integer Report down delay slider value |
| contacts | Array of integers Contact IDs to notify |
| groups | Array of integers Group IDs |
| report_up | integer Send notification when monitor recovers (0=no, 1=yes) |
| branding_id | integer Branding template ID |
Responses
Request samples
- Payload
{- "is_paused": true,
- "url": "string",
- "project_name": "string",
- "monitoring_interval_slider": 0,
- "report_down_slider": 0,
- "contacts": [
- 0
], - "groups": [
- 0
], - "report_up": 0,
- "branding_id": 0
}Response samples
- 200
- 400
- 401
- 404
{- "data": {
- "id": 0
}
}List incidents for a virus monitor
Returns a list of security incidents for the specified virus monitor within the given date range. Incident types include MALWARE, SOCIAL_ENGINEERING, and UNWANTED_SOFTWARE. Defaults to the last 30 days.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 30 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
| limit | integer Maximum number of incidents to return |
| offset | integer Number of incidents to skip |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "error_id": 0,
- "error_display": "string",
- "time_started": "string",
- "date_ended": "string",
- "time_elapsed": "string"
}
], - "metadata": {
- "total": 0
}
}Get a single virus incident
Returns the full detail of a specific security incident for the given virus monitor, including the parsed error list, the probe servers that detected the incident, the captured response headers/body, traceroute and screenshot.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
| incidentId required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "monitor_id": 0,
- "type": "Virus",
- "type_code": "virus",
- "url": "string",
- "port": 0,
- "time_started": "string",
- "time_started_unix": 0,
- "time_ended": "string",
- "time_ended_unix": 0,
- "error": "string",
- "duration": "string",
- "errors": [
- {
- "error": "string",
- "count": 0
}
], - "servers": [
- {
- "name": "string",
- "flag": "string",
- "ip": "string",
- "date": "string",
- "error": "string"
}
], - "response_headers": "string",
- "response_body": "string",
- "traceroute": "string",
- "screenshot": "string",
- "is_critical": true,
- "is_trouble": true
}
}Delete a virus incident
Permanently deletes a specific virus/malware incident and its associated status page threads.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
| incidentId required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "status": "success"
}List virus scan logs
Returns recent virus scan check logs for the specified monitor. Shows the last 90 days of data, limited to 20 entries.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 90 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
| limit | integer Maximum number of log entries to return |
| offset | integer Number of log entries to skip |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "id": 0,
- "time_elapsed": "string",
- "response_time": 0,
- "status_icon": "string",
- "status_alt": "string"
}
], - "metadata": {
- "total": 0
}
}Get timeline segments for a virus monitor
Returns up, down, maintenance and unknown timeline segments for the virus monitor over the requested date range, suitable for rendering an availability timeline strip.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 7 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
List all RUM monitors
Returns a paginated list of all RUM monitors for the authenticated account. Supports filtering by monitor status.
Authorizations:
query Parameters
| limit | integer Example: limit=25 Maximum number of monitors to return (0 = no limit) |
| offset | integer Example: offset=0 Number of monitors to skip |
| show_is_up | boolean Default: true Include monitors that are up |
| show_is_critical | boolean Default: true Include monitors with critical incidents |
| show_is_trouble | boolean Default: true Include monitors with trouble incidents |
| show_is_suspended | boolean Default: true Include suspended monitors |
| show_is_paused | boolean Default: true Include paused monitors |
| show_is_maintenance | boolean Default: true Include monitors in maintenance |
Responses
Response samples
- 200
- 401
{- "data": [
- {
- "id": 0,
- "name": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- {
- "id": 0,
- "name": "string"
}
]
}
], - "metadata": {
- "total": 0
}
}Create a new RUM monitor
Creates a new Real User Monitoring site with the specified configuration.
Authorizations:
Request Body schema: application/json
| url required | string URL of the website to monitor |
| project_name required | string Monitor display name |
| apdex_score | integer Apdex threshold in seconds (1-20, default 4) |
| is_alert_traffic_stops | integer Enable traffic stop alerts (0=no, 1=yes) |
| alert_traffic_stops_minutes | integer Minutes without traffic before alerting |
| is_alert_speed_drops | integer Enable speed drop alerts (0=no, 1=yes) |
| alert_speed_drops_percent | integer Speed drop percentage threshold |
| alert_speed_drops_time | integer Minutes of sustained speed drop before alerting |
| is_alert_traffic_drops | integer Enable traffic drop alerts (0=no, 1=yes) |
| alert_traffic_drops_percent | integer Traffic drop percentage threshold |
| alert_traffic_drops_time | integer Minutes of sustained traffic drop before alerting |
| is_alert_js_errors | integer Enable JS error alerts (0=no, 1=yes) |
| alert_js_errors_percent | integer JS error percentage threshold |
| alert_js_errors_time | integer Minutes of sustained JS errors before alerting |
| contacts | Array of integers Contact IDs to notify on incidents |
integer or Array of integers Group assignment: a single group ID or an array of group IDs. | |
| branding_id | integer Branding template ID |
Responses
Request samples
- Payload
{- "project_name": "My Website",
- "apdex_score": 4,
- "is_alert_traffic_stops": 0,
- "alert_traffic_stops_minutes": 30,
- "is_alert_speed_drops": 0,
- "alert_speed_drops_percent": 50,
- "alert_speed_drops_time": 30,
- "is_alert_traffic_drops": 0,
- "alert_traffic_drops_percent": 50,
- "alert_traffic_drops_time": 30,
- "is_alert_js_errors": 0,
- "alert_js_errors_percent": 10,
- "alert_js_errors_time": 30,
- "contacts": [
- 0
], - "groups": 0,
- "branding_id": 0
}Response samples
- 201
- 400
- 401
{- "data": {
- "id": 0,
- "script_hash": "string"
}
}Get a single RUM monitor
Returns full details of a specific RUM monitor including configuration, tracking code, alert settings, and assigned contacts.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "url": "string",
- "is_up": true,
- "is_critical": true,
- "is_trouble": true,
- "is_suspended": true,
- "is_paused": true,
- "is_maintenance": true,
- "groups": [
- { }
], - "tracking_code": "string",
- "script_found": true,
- "apdex_score": 0,
- "is_alert_traffic_stops": true,
- "alert_traffic_stops_minutes": 0,
- "is_alert_speed_drops": true,
- "alert_speed_drops_percent": 0,
- "alert_speed_drops_time": 0,
- "is_alert_traffic_drops": true,
- "alert_traffic_drops_percent": 0,
- "alert_traffic_drops_time": 0,
- "is_alert_js_errors": true,
- "alert_js_errors_percent": 0,
- "alert_js_errors_time": 0,
- "branding_id": 0,
- "contacts": [
- {
- "id": 0,
- "is_team": true,
- "is_user": true,
- "is_operator": true,
- "is_individual_contact": true
}
]
}
}Update an existing RUM monitor
Updates an existing RUM monitor. Only include fields you want to change. Omitted fields retain their current values.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Request Body schema: application/json
| url | string URL of the website to monitor |
| project_name | string Monitor display name |
| apdex_score | integer Apdex threshold in seconds (1-20) |
| is_alert_traffic_stops | integer Enable traffic stop alerts (0=no, 1=yes) |
| alert_traffic_stops_minutes | integer Minutes without traffic before alerting |
| is_alert_speed_drops | integer Enable speed drop alerts (0=no, 1=yes) |
| alert_speed_drops_percent | integer Speed drop percentage threshold |
| alert_speed_drops_time | integer Minutes of sustained speed drop before alerting |
| is_alert_traffic_drops | integer Enable traffic drop alerts (0=no, 1=yes) |
| alert_traffic_drops_percent | integer Traffic drop percentage threshold |
| alert_traffic_drops_time | integer Minutes of sustained traffic drop before alerting |
| is_alert_js_errors | integer Enable JS error alerts (0=no, 1=yes) |
| alert_js_errors_percent | integer JS error percentage threshold |
| alert_js_errors_time | integer Minutes of sustained JS errors before alerting |
| contacts | Array of integers Contact IDs to notify |
| is_paused | boolean Pause (true) or resume (false) the monitor. When present, only the pause/resume action is performed and other fields are ignored. |
integer or Array of integers Group assignment: a single group ID or an array of group IDs. | |
| branding_id | integer Branding template ID |
Responses
Request samples
- Payload
{- "url": "string",
- "project_name": "string",
- "apdex_score": 0,
- "is_alert_traffic_stops": 0,
- "alert_traffic_stops_minutes": 0,
- "is_alert_speed_drops": 0,
- "alert_speed_drops_percent": 0,
- "alert_speed_drops_time": 0,
- "is_alert_traffic_drops": 0,
- "alert_traffic_drops_percent": 0,
- "alert_traffic_drops_time": 0,
- "is_alert_js_errors": 0,
- "alert_js_errors_percent": 0,
- "alert_js_errors_time": 0,
- "contacts": [
- 0
], - "is_paused": true,
- "groups": 0,
- "branding_id": 0
}Response samples
- 200
- 400
- 401
- 404
{- "data": {
- "id": 0
}
}List incidents for a RUM monitor
Returns a list of incidents for the specified RUM monitor within the given date range. Defaults to the last 30 days. Incidents that overlap the range (including ongoing incidents that started before it) are included, and the result set is paginated with the limit/offset parameters.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 30 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
| limit | integer Maximum number of incidents to return |
| offset | integer Number of incidents to skip |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "error_id": 0,
- "error_short": "string",
- "error_long": "string",
- "severity": "string",
- "time_started": "string",
- "date_ended": "string",
- "time_elapsed": "string"
}
], - "metadata": {
- "total": 0
}
}Delete a RUM incident
Permanently deletes a specific RUM incident and its associated status page threads.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
| incidentId required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "status": "success"
}Verify tracking script installation
Checks whether the RUM tracking script has been correctly installed on the monitored website by fetching the page and searching for the script hash.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "script_found": true
}
}Get RUM summary analytics
Returns summary analytics for a RUM monitor: average load time, pageviews, JS errors, and user satisfaction breakdown.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | string <date> Start date (YYYY-MM-DD), defaults to 30 days ago |
| date_end | string <date> End date (YYYY-MM-DD), defaults to today |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "avg_load_time": 0,
- "pageviews": 0,
- "js_errors": 0,
- "satisfaction": {
- "satisfied_pct": 0,
- "tolerating_pct": 0,
- "frustrated_pct": 0
}
}
}Get per-page performance breakdown
Returns per-page performance data including pageviews and average load time for each tracked URL.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | string <date> Start date (YYYY-MM-DD), defaults to 30 days ago |
| date_end | string <date> End date (YYYY-MM-DD), defaults to today |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "url": "string",
- "pageviews": 0,
- "avg_load_time": 0
}
]
}Get JavaScript error analytics
Returns JavaScript error data including totals, error breakdown by name and by script.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | string <date> Start date (YYYY-MM-DD), defaults to 30 days ago |
| date_end | string <date> End date (YYYY-MM-DD), defaults to today |
Responses
Response samples
- 200
- 401
- 404
{- "data": {
- "total": 0,
- "unique": 0,
- "affected_pages": 0,
- "error_rate": 0,
- "by_name": [
- {
- "name": "string",
- "count": 0,
- "pages": 0,
- "rate": 0,
- "last_seen": "string",
- "stack_trace": "string"
}
], - "by_script": [
- {
- "script": "string",
- "count": 0,
- "last_seen": "string"
}
]
}
}Get geographic distribution
Returns visitor distribution by country with load counts and average load times.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | string <date> Start date (YYYY-MM-DD), defaults to 30 days ago |
| date_end | string <date> End date (YYYY-MM-DD), defaults to today |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "country": "string",
- "country_code": "string",
- "loads": 0,
- "avg_load_time": 0
}
]
}Get browser distribution
Returns visitor distribution by browser with share percentage and load counts.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | string <date> Start date (YYYY-MM-DD), defaults to 30 days ago |
| date_end | string <date> End date (YYYY-MM-DD), defaults to today |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "name": "string",
- "share_pct": 0,
- "loads": 0
}
]
}Get device type distribution
Returns visitor distribution by device type (Desktop, Mobile, Tablet) with share percentage and load counts.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | string <date> Start date (YYYY-MM-DD), defaults to 30 days ago |
| date_end | string <date> End date (YYYY-MM-DD), defaults to today |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "type": "string",
- "share_pct": 0,
- "loads": 0
}
]
}Get operating system distribution
Returns visitor distribution by operating system with share percentage and load counts.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | string <date> Start date (YYYY-MM-DD), defaults to 30 days ago |
| date_end | string <date> End date (YYYY-MM-DD), defaults to today |
Responses
Response samples
- 200
- 401
- 404
{- "data": [
- {
- "name": "string",
- "share_pct": 0,
- "loads": 0
}
]
}Get tracking JavaScript snippet
Returns the JavaScript tracking code snippet that should be embedded in the monitored website to collect Real User Monitoring data.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
{- "data": {
- "snippet": "string",
- "script_hash": "string"
}
}List alert logs for a RUM monitor
Returns recent alert/incident logs for the specified RUM monitor. RUM monitors collect client-side data, so logs reflect alert events rather than server-side checks.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 30 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
| limit | integer Maximum number of log entries to return |
| offset | integer Number of log entries to skip |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "error_type": "string",
- "error_short": "string",
- "severity": "string",
- "time_started": "string",
- "date_ended": "string",
- "time_elapsed": "string"
}
], - "metadata": {
- "total": 0
}
}Get timeline segments for a RUM monitor
Returns up, down, maintenance and unknown timeline segments for the RUM monitor over the requested date range, suitable for rendering an availability timeline strip.
Authorizations:
path Parameters
| id required | integer\d+ Monitor ID |
query Parameters
| date_start | integer Start date as Unix timestamp (defaults to 7 days ago) |
| date_end | integer End date as Unix timestamp (defaults to now) |
Responses
Pause a single monitor
Pauses a single monitor by type and ID. Creates a pause history entry.
Authorizations:
path Parameters
| type required | string Enum: "uptime" "ssl" "domain" "virus" "fpl" "transaction" "rum" Monitor type |
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
{- "status": "success"
}Resume a single monitor
Resumes a single paused monitor by type and ID. Closes the pause history entry.
Authorizations:
path Parameters
| type required | string Enum: "uptime" "ssl" "domain" "virus" "fpl" "transaction" "rum" Monitor type |
| id required | integer\d+ Monitor ID |
Responses
Response samples
- 200
{- "status": "success"
}Copy a monitor
Creates a copy of an existing monitor. Currently only supported for uptime monitors.
Authorizations:
path Parameters
| type required | string Value: "uptime" Monitor type (only "uptime" supported) |
| id required | integer\d+ Monitor ID to copy |
Responses
Response samples
- 201
{- "data": {
- "id": 0
}
}List monitoring locations (probes) grouped by region
Returns the full catalogue of monitoring checkpoint probes available to the account, organised into geographic regions; each probe lists its ID, city, country, ISO country code and IP. Use these probe IDs when creating or scoping monitors to choose which locations run the checks.
Authorizations:
Responses
Response samples
- 200
- 401
{- "regions": [
- {
- "id": "europe",
- "name": "Europe",
- "probes": [
- {
- "id": 1,
- "city": "Frankfurt",
- "country": "Germany",
- "countryCode": "DE",
- "ip": "203.0.113.10",
- "enabled": true
}
]
}
]
}List active incidents
Returns a list of currently active (ongoing) incidents across all monitor types. Supports filtering by groups or individual monitors.
Authorizations:
query Parameters
| all | boolean Default: true Show all monitors (default true) |
| groups[] | Array of integers Filter by group IDs |
| monitors[uptime][] | Array of integers Filter by specific uptime monitor IDs |
| monitors[ssl][] | Array of integers Filter by specific SSL monitor IDs |
| monitors[domain][] | Array of integers Filter by specific domain monitor IDs |
| monitors[fpl][] | Array of integers Filter by specific speed (full page load) monitor IDs. Note: the type key for speed monitors is "fpl". |
| monitors[transaction][] | Array of integers Filter by specific transaction monitor IDs |
| monitors[virus][] | Array of integers Filter by specific virus monitor IDs |
| monitors[rum][] | Array of integers Filter by specific RUM monitor IDs |
| monitors[server][] | Array of integers Filter by specific server monitor IDs |
Responses
Response samples
- 200
- 401
{- "data": [
- {
- "id": 0,
- "monitor_id": 0,
- "monitor_name": "string",
- "monitor_type": "string",
- "error": "string",
- "error_tooltip": "string",
- "time_started": "string",
- "time_ended": "string",
- "down_since": "string",
- "is_critical": true,
- "is_trouble": true,
- "path": "string"
}
], - "metadata": {
- "total": 0
}
}List incident history
Returns a paginated history of resolved and ongoing incidents across all monitor types within the specified date range.
Authorizations:
query Parameters
| date_start | string Start date (Unix timestamp or YYYYMMDD string, defaults to 7 days ago) |
| date_end | string End date (Unix timestamp or YYYYMMDD string, defaults to now) |
| groups[] | Array of integers Filter by group IDs |
| monitors[uptime][] | Array of integers Filter by specific uptime monitor IDs |
| monitors[ssl][] | Array of integers Filter by specific SSL monitor IDs |
| monitors[domain][] | Array of integers Filter by specific domain monitor IDs |
| monitors[fpl][] | Array of integers Filter by specific speed (full page load) monitor IDs. Note: the type key for speed monitors is "fpl". |
| monitors[transaction][] | Array of integers Filter by specific transaction monitor IDs |
| monitors[virus][] | Array of integers Filter by specific virus monitor IDs |
| monitors[rum][] | Array of integers Filter by specific RUM monitor IDs |
| monitors[server][] | Array of integers Filter by specific server monitor IDs |
| page | integer Default: 1 Page number (default 1) |
| limit | integer Default: 20 Results per page (default 20) |
Responses
Response samples
- 200
- 401
{- "data": [
- {
- "path": "string",
- "id": 0,
- "name": "string",
- "error_name": "string",
- "error_tooltip": "string",
- "time": "string",
- "time_started": "string",
- "time_ago": "string",
- "errors_sent_tooltip": "string",
- "errors_sent": 0,
- "duration": "string",
- "incident_id": 0,
- "type_name": "string",
- "type_name_display": "string",
- "incident_start": 0,
- "incident_end": 0,
- "is_critical": true,
- "is_trouble": true
}
], - "metadata": {
- "total": 0,
- "page": 0,
- "pages": 0
}
}Get incident details
Returns full details for a single incident including monitor info, error data, checkpoint servers, screenshots, response headers/body, and traceroute.
Authorizations:
path Parameters
| type required | string Enum: "uptime" "ssl" "domain" "fpl" "speed" "virus" "transaction" "rum" "server" Monitor type (the speed-monitor type key is fpl; speed is accepted as an alias) |
| id required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 400
- 401
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "monitor_id": 0,
- "type": "string",
- "type_id": 0,
- "type_code": "string",
- "url": "string",
- "time_started": "string",
- "time_started_unix": 0,
- "time_ended": "string",
- "time_ended_unix": 0,
- "error": "string",
- "duration": "string",
- "errors": [
- {
- "error": "string",
- "count": 0
}
], - "servers": [
- {
- "name": "string",
- "flag": "string",
- "ip": "string",
- "date": "string",
- "error": "string"
}
], - "response_headers": "string",
- "response_body": "string",
- "traceroute": "string",
- "screenshot": "string",
- "is_critical": true,
- "is_trouble": true
}
}Delete an incident
Permanently deletes a specific incident and its associated status page threads.
Authorizations:
path Parameters
| type required | string Enum: "uptime" "ssl" "domain" "fpl" "speed" "virus" "transaction" "rum" "server" Monitor type (the speed-monitor type key is fpl; speed is accepted as an alias) |
| id required | integer\d+ Incident ID |
Responses
Response samples
- 200
- 400
- 401
{- "status": "success"
}List monitoring logs across all monitor types
Returns a paginated list of monitoring check logs across all monitor types (uptime, SSL, domain, speed, virus, transaction). Supports filtering by date range, monitor, status, and location.
Authorizations:
query Parameters
| date_start | string Start date (Unix timestamp or YYYYMMDD string, defaults to 7 days ago) |
| date_end | string End date (Unix timestamp or YYYYMMDD string, defaults to now) |
| monitors[uptime][] | Array of integers Filter by specific uptime monitor IDs |
| monitors[ssl][] | Array of integers Filter by specific SSL monitor IDs |
| monitors[domain][] | Array of integers Filter by specific domain monitor IDs |
| monitors[fpl][] | Array of integers Filter by specific speed (full page load) monitor IDs. Note: the type key for speed monitors is "fpl". |
| monitors[transaction][] | Array of integers Filter by specific transaction monitor IDs |
| monitors[virus][] | Array of integers Filter by specific virus monitor IDs |
| status[up] | boolean Default: true Include checks with up status (default true) |
| status[down] | boolean Default: true Include checks with down status (default true) |
| locations | string Default: "all" Location filter: "all" or comma-separated location IDs |
| page | integer Default: 1 Page number (default 1) |
| limit | integer Default: 20 Results per page (default 20) |
Responses
Response samples
- 200
- 401
{- "data": [
- {
- "id": 0,
- "monitor_name": "string",
- "monitor_type": "string",
- "monitor_id": 0,
- "location": "string",
- "location_code": "string",
- "time": "string",
- "status": "string",
- "duration": "string",
- "response_time": 0
}
], - "metadata": {
- "total": 0,
- "page": 0,
- "pages": 0
}
}List available contact types (Email, SMS + user integrations)
Returns the set of contact channel types you can assign to a new contact: the built-in Email and SMS types plus one entry per integration profile already configured on your account (Slack, Discord, Telegram, webhooks, etc.). Use the returned ids/type codes when creating or updating contacts.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "type": "string",
- "name": "string"
}
]
}List all contacts for the authenticated account
Returns every alert recipient configured on your account, including email and SMS contacts as well as integration-backed contacts, with their confirmation status and the operator they belong to. The response includes a metadata.total count; results are not paginated.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "user": 0,
- "operator": 0,
- "name": "string",
- "type": 0,
- "contact": "string",
- "is_integration": 0,
- "integration_type": "string",
- "integration_id": 0,
- "is_confirmed": 0
}
], - "metadata": {
- "total": 0
}
}Create a new contact
Adds a new alert recipient to your account. For email/sms types the value is the address or phone number, and SMS numbers must be in international format (starting with a +); for integration types the value is optional and integration_id links to an existing integration profile. SMS contacts start unconfirmed (is_confirmed=false) and must be verified via the confirmation flow before they will receive alerts.
Authorizations:
Request Body schema: application/json
| name required | string Contact display name |
| type required | string Contact type (email, sms, slack, etc.) |
| value required | string Contact value (email address, phone number, etc.) |
| integration_id | integer Integration ID if this is an integration contact |
| user_id | integer User/operator ID this contact belongs to (0 for main user) |
Responses
Request samples
- Payload
{- "name": "string",
- "type": "email",
- "integration_id": 0,
- "user_id": 0
}Response samples
- 201
- 400
{- "data": {
- "id": 0,
- "is_confirmed": true
}
}Get a single contact by ID
Returns the full record for one alert recipient, including its type, value, confirmation flag and integration linkage. The contact must belong to the authenticated account; a 404 is returned if no matching contact exists.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 404
{- "data": {
- "id": 0,
- "user": 0,
- "operator": 0,
- "name": "string",
- "type": 0,
- "contact": "string",
- "is_integration": 0,
- "integration_type": "string",
- "integration_id": 0,
- "is_confirmed": 0
}
}Delete a contact
Permanently removes an alert recipient from your account so it will no longer receive notifications. This action cannot be undone; returns a 400 if the contact could not be deleted.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 400
{- "status": "success"
}Update an existing contact
Modifies an existing alert recipient; only the fields you supply are changed and any omitted fields keep their current values. SMS numbers must remain in international format (starting with a +). The contact must belong to the authenticated account, otherwise a 404 is returned.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: application/json
| name | string Contact display name |
| type | string Contact type |
| value | string Contact value |
| integration_id | integer |
Responses
Request samples
- Payload
{- "name": "string",
- "type": "string",
- "value": "string",
- "integration_id": 0
}Response samples
- 200
- 400
{- "data": {
- "id": 0,
- "is_confirmed": true
}
}Get contacts with selection state for a specific monitor
Returns all of your contacts annotated with an is_selected flag indicating whether each one is currently assigned to receive alerts for the given monitor. Use it to render an alert-recipient picker for a monitor of the specified type (uptime, ssl, domain, fpl, transaction, rum, virus, reports).
Authorizations:
path Parameters
| monitorId required | integer\d+ Monitor ID |
| type required | string Monitor type (uptime, ssl, domain, fpl, transaction, rum, virus, reports) |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "name": "string",
- "type": "string",
- "type_text": "string",
- "contact_value": "string",
- "is_selected": true
}
]
}Send an SMS confirmation code to a contact
Generates and texts a one-time confirmation code to an SMS contact so it can be verified before receiving alerts. The contact must belong to your account and be an SMS type; each send is charged against your SMS credit balance and is rate-limited per number, so repeated calls may return 429 (too many requests) or fail if you have no SMS credits.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 400
{- "status": "success"
}Verify an SMS confirmation code
Confirms an SMS contact by submitting the code previously delivered via the request-confirmation endpoint; on success the contact is marked confirmed and becomes eligible to receive alerts. The contact must belong to your account, and an incorrect code returns a 400 with code invalid_code.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: application/json
| code required | string The confirmation code received via SMS |
Responses
Request samples
- Payload
{- "code": "123456"
}Response samples
- 200
- 400
{- "status": "success"
}List all integrations for the authenticated account
Returns every third-party notification channel configured on your account (Slack, Discord, Telegram, PagerDuty, MS Teams, Statuspage, Mattermost, Twilio, WhatsApp, Twitter, webhooks, etc.) with its id, name and type. The response includes a metadata.total count; results are not paginated.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "name": "string",
- "type": "string"
}
], - "metadata": {
- "total": 0
}
}Create a new integration
Creates a third-party notification channel of the given type (slack, discord, telegram, pagerduty, etc.). Required and meaningful fields vary by type and are validated server-side; the type-specific values map onto component_id, page_id, custom_headers and additional_value_1 (for example Slack channel, Twilio phone, or Twitter secret). A matching alert contact is created automatically, so the response returns both the integration id and the new contact_id.
Authorizations:
Request Body schema: application/json
| name required | string Integration display name |
| type required | string Integration type (slack, discord, telegram, etc.) |
| api_key required | string API key or webhook URL |
| component_id | string Component ID (statuspage/twilio) |
| page_id | string Page ID (statuspage/twilio) |
| custom_headers | string Custom headers (webhook) |
| additional_value_1 | string Additional value (slack channel, twilio phone, twitter secret) |
Responses
Request samples
- Payload
{- "name": "string",
- "type": "slack",
- "api_key": "string",
- "component_id": "string",
- "page_id": "string",
- "custom_headers": "string",
- "additional_value_1": "string"
}Response samples
- 201
{- "data": {
- "id": 0,
- "contact_id": 0
}
}List all webhook integrations
Returns only the webhook-type integrations on your account, each with its target URL (api_key) and any custom headers. Use this to manage outbound HTTP notification endpoints separately from other integration types.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "name": "string",
- "api_key": "string",
- "custom_headers": "string"
}
]
}Create a new webhook
Registers a new outbound webhook that Uptimia will POST to when alerts fire. The api_key field must be a valid public URL; it is validated and screened against an SSRF guard, so internal/private addresses are rejected with a 400. Optionally supply custom_headers as a JSON string to attach to each request.
Authorizations:
Request Body schema: application/json
| name required | string Webhook display name |
| api_key required | string Webhook URL |
| custom_headers | string Custom headers as JSON string |
Responses
Request samples
- Payload
{- "name": "string",
- "api_key": "string",
- "custom_headers": "string"
}Response samples
- 201
{- "data": {
- "id": 0
}
}Get a single webhook by ID
Returns the configuration of one webhook integration, including its target URL and custom headers. The integration must belong to your account and be of type webhook; a 404 is returned otherwise.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
{- "data": {
- "id": 0,
- "name": "string",
- "api_key": "string",
- "custom_headers": "string"
}
}Delete a webhook
Permanently removes a webhook integration so it will no longer receive alert notifications. The integration must belong to your account and be of type webhook (404 otherwise); returns a 400 if deletion fails.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
{- "status": "success"
}Update a webhook
Updates the name, target URL or custom headers of an existing webhook; omitted fields keep their current values. The integration must belong to your account and be of type webhook, otherwise a 404 is returned.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: application/json
| name | string |
| api_key | string Webhook URL |
| custom_headers | string |
Responses
Request samples
- Payload
{- "name": "string",
- "api_key": "string",
- "custom_headers": "string"
}Response samples
- 200
{- "data": {
- "id": 0,
- "name": "string",
- "api_key": "string",
- "custom_headers": "string"
}
}Get a single integration by ID
Returns the full configuration of one integration of any type, including its api_key plus type-specific fields such as component_id, page_id, custom_headers and additional_value_1. The integration must belong to the authenticated account; a 404 is returned if not found.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
{- "data": {
- "id": 0,
- "name": "string",
- "type": "string",
- "api_key": "string",
- "component_id": "string",
- "custom_headers": "string",
- "page_id": "string",
- "additional_value_1": "string"
}
}Delete an integration
Permanently removes an integration of any type along with its associated alert contacts so it no longer receives notifications. The integration must belong to your account (404 otherwise); returns a 400 if deletion fails.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
{- "status": "success"
}Update an existing integration
Updates any field of an existing integration of any type; omitted fields retain their current values. If the integration name changes, the linked alert contact is renamed to match. The integration must belong to your account, otherwise a 404 is returned.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: application/json
| name | string |
| type | string |
| api_key | string |
| component_id | string |
| page_id | string |
| custom_headers | string |
| additional_value_1 | string |
Responses
Request samples
- Payload
{- "name": "string",
- "type": "string",
- "api_key": "string",
- "component_id": "string",
- "page_id": "string",
- "custom_headers": "string",
- "additional_value_1": "string"
}Response samples
- 200
{- "data": {
- "id": 0,
- "name": "string",
- "type": "string",
- "api_key": "string",
- "component_id": "string",
- "custom_headers": "string",
- "page_id": "string",
- "additional_value_1": "string"
}
}Send a test notification for an integration
Dispatches a sample alert through the integration using its stored credentials so you can confirm the channel is wired up correctly before relying on it. The integration must belong to your account (404 otherwise); unsupported integration types or delivery failures (for example an invalid Twilio phone number) return a 400.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
{- "status": "success"
}List all maintenance windows for the authenticated user
Returns every scheduled maintenance window belonging to the authenticated account, each with its schedule, current status, and the monitors it covers. The metadata object reports the total count.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "name": "string",
- "frequency_code": 0,
- "frequency": "string",
- "start": "string",
- "end": "string",
- "status": "string",
- "monitors": "string",
- "thread_id": 0
}
], - "metadata": {
- "total": 0
}
}Create a new maintenance window
Schedules a new maintenance window during which alerts are suppressed for the selected monitors. Set type to once, daily, weekly, or monthly, and pick monitors via selection_mode (all, by_type, by_group, or individual). For a one-off window you may also publish a status page thread via status_page and status_summary. Returns the new window ID.
Authorizations:
Request Body schema: application/json
| name required | string Maintenance window name |
| type required | string Enum: "once" "daily" "weekly" "monthly" Schedule type: once, daily, weekly, monthly |
| time_start | string Start time (datetime string for once, HHMM string for recurring) |
| time_end | string End time (datetime string for once, HHMM string for recurring) |
| days | Array of strings Days (weekday numbers for weekly, day-of-month for monthly) |
| weeks | Array of strings Week numbers for weekly type |
| selection_mode | string Enum: "all" "by_type" "by_group" "individual" Monitor selection mode: all, by_type, by_group, individual |
| uptime | integer Include uptime monitors (for by_type mode) |
| ssl | integer |
| domain | integer |
| virus | integer |
| fpl | integer |
| transaction | integer |
| rum | integer |
| server | integer |
| individual_monitors | Array of strings Monitor IDs as type|id strings |
| individual_groups | Array of integers Group IDs |
| status_page | integer Create status page thread (once type only) |
| status_summary | string Status page thread summary |
Responses
Request samples
- Payload
{- "name": "string",
- "type": "once",
- "time_start": "string",
- "time_end": "string",
- "days": [
- "string"
], - "weeks": [
- "string"
], - "selection_mode": "all",
- "uptime": 0,
- "ssl": 0,
- "domain": 0,
- "virus": 0,
- "fpl": 0,
- "transaction": 0,
- "rum": 0,
- "server": 0,
- "individual_monitors": [
- "string"
], - "individual_groups": [
- 0
], - "status_page": 0,
- "status_summary": "string"
}Response samples
- 201
{- "data": {
- "id": 0
}
}Get all monitors available for maintenance selection
Returns all of the account monitors that can be attached to a maintenance window, grouped by monitor type (uptime, ssl, domain, virus, fpl, transaction, rum). Use the returned IDs when building the individual_monitors selection.
Authorizations:
Responses
Response samples
- 200
{- "data": {
- "uptime": [
- {
- "id": 0,
- "name": "string"
}
], - "ssl": [
- {
- "id": 0,
- "name": "string"
}
], - "domain": [
- {
- "id": 0,
- "name": "string"
}
], - "virus": [
- {
- "id": 0,
- "name": "string"
}
], - "fpl": [
- {
- "id": 0,
- "name": "string"
}
], - "transaction": [
- {
- "id": 0,
- "name": "string"
}
], - "rum": [
- {
- "id": 0,
- "name": "string"
}
], - "server": [
- {
- "id": 0,
- "name": "string"
}
]
}
}Get a single maintenance window with full details
Returns the full configuration of one maintenance window, including its schedule type, start/end times, recurrence days and weeks, monitor selection, and whether the window is currently running. Returns 404 if the window does not exist or does not belong to your account.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
{- "data": {
- "id": 0,
- "name": "string",
- "type": "string",
- "time_start": "string",
- "time_end": "string",
- "days": "string",
- "weeks": "string",
- "all_monitors": 0,
- "groups": 0,
- "uptime": 0,
- "fpl": 0,
- "ssl": 0,
- "domain": 0,
- "virus": 0,
- "transaction": 0,
- "rum": 0,
- "server": 0,
- "individual_monitors": "string",
- "individual_groups": "string",
- "is_maintenance_running": true,
- "is_maintenance_temporary": true,
- "status_page": 0,
- "status_summary": "string"
}
}Delete a maintenance window and revert affected monitors
Permanently deletes a maintenance window and reverts any monitors currently held in maintenance by it back to active checking. Returns 404 if the window does not exist or does not belong to your account.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
{- "status": "success"
}Update an existing maintenance window
Replaces the configuration of an existing maintenance window with the supplied schedule and monitor selection, then returns the updated window. Returns 404 if the window does not exist or does not belong to your account.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: application/json
| name | string |
| type | string Enum: "once" "daily" "weekly" "monthly" |
| time_start | string |
| time_end | string |
| days | Array of strings |
| weeks | Array of strings |
| selection_mode | string Enum: "all" "by_type" "by_group" "individual" |
| uptime | integer |
| ssl | integer |
| domain | integer |
| virus | integer |
| fpl | integer |
| transaction | integer |
| rum | integer |
| server | integer |
| individual_monitors | Array of strings |
| individual_groups | Array of integers |
| status_page | integer |
| status_summary | string |
Responses
Request samples
- Payload
{- "name": "string",
- "type": "once",
- "time_start": "string",
- "time_end": "string",
- "days": [
- "string"
], - "weeks": [
- "string"
], - "selection_mode": "all",
- "uptime": 0,
- "ssl": 0,
- "domain": 0,
- "virus": 0,
- "fpl": 0,
- "transaction": 0,
- "rum": 0,
- "server": 0,
- "individual_monitors": [
- "string"
], - "individual_groups": [
- 0
], - "status_page": 0,
- "status_summary": "string"
}List all status pages for the authenticated account
Returns every public status page owned by the authenticated account, each with its display name, link slug, custom domain, visibility toggles and custom CSS/JS/HTML. The response includes a metadata.total count.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "name": "string",
- "status_page_link_name": "string",
- "custom_domain_name": "string",
- "is_incident_history_on": 0,
- "is_current_incidents_on": 0,
- "is_timezone_utc": 0,
- "is_scheduled_maintenances_on": 0,
- "is_footer_link_on": 0,
- "is_past_maintenances_on": 0,
- "custom_css": "string",
- "custom_js": "string",
- "custom_html": "string"
}
], - "metadata": {
- "total": 0
}
}Create a new status page
Creates a new public status page for the account from the supplied name, URL slug, optional custom domain, visibility toggles, custom styling/logo and section structure (sections each listing the monitors they display). Returns the new page ID on success, or a 400 validation error.
Authorizations:
Request Body schema: application/json
| name required | string Status page display name |
| status_page_link_name required | string URL slug for the status page |
| custom_domain_name | string Custom CNAME domain |
| is_incident_history_on | integer Enum: 0 1 Show incident history |
| is_current_incidents_on | integer Enum: 0 1 Show current incidents |
| is_scheduled_maintenances_on | integer Enum: 0 1 Show scheduled maintenances |
| is_past_maintenances_on | integer Enum: 0 1 Show past maintenances |
| is_footer_link_on | integer Enum: 0 1 Show footer link |
| is_timezone_utc | integer Enum: 0 1 Use UTC timezone |
| custom_css | string Custom CSS |
| custom_js | string Custom JavaScript |
| custom_html | string Custom HTML |
| custom_logo | string Custom logo URL or base64 |
required | Array of objects Page sections with monitors |
Responses
Request samples
- Payload
{- "name": "string",
- "status_page_link_name": "string",
- "custom_domain_name": "string",
- "is_incident_history_on": 0,
- "is_current_incidents_on": 0,
- "is_scheduled_maintenances_on": 0,
- "is_past_maintenances_on": 0,
- "is_footer_link_on": 0,
- "is_timezone_utc": 0,
- "custom_css": "string",
- "custom_js": "string",
- "custom_html": "string",
- "custom_logo": "string",
- "structure": [
- {
- "name": "string",
- "monitors": [
- {
- "id": 0,
- "type": "string"
}
]
}
]
}Response samples
- 201
- 400
{- "data": {
- "id": 0
}
}Get a single status page with settings and structure
Retrieves one status page by ID, including all of its settings, visibility toggles, custom styling and its section/monitor structure. The page must belong to the authenticated account; returns 404 if it does not exist or is not yours.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "status_page_link_name": "string",
- "custom_domain_name": "string",
- "is_incident_history_on": 0,
- "is_current_incidents_on": 0,
- "is_timezone_utc": 0,
- "is_scheduled_maintenances_on": 0,
- "is_footer_link_on": 0,
- "is_past_maintenances_on": 0,
- "custom_css": "string",
- "custom_js": "string",
- "custom_html": "string",
- "structure": [
- {
- "name": "string",
- "description": "string",
- "monitors": [
- {
- "id": 0,
- "type": "string"
}
]
}
], - "has_custom_logo": true,
- "custom_logo_url": "string"
}
}Delete a status page
Permanently deletes the status page identified by ID along with its configuration. The page must belong to the authenticated account. This action cannot be undone and returns a 400 error if the deletion fails.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 400
{- "status": "success"
}Update an existing status page
Partially updates a status page; any omitted field keeps its current value, which is merged from the stored record before saving. A logo may be supplied either as a multipart file upload or via the custom_logo JSON field. The page must belong to the authenticated account; returns 404 if not found.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: application/json
| name | string |
| status_page_link_name | string |
| custom_domain_name | string |
| is_incident_history_on | integer Enum: 0 1 |
| is_current_incidents_on | integer Enum: 0 1 |
| is_scheduled_maintenances_on | integer Enum: 0 1 |
| is_past_maintenances_on | integer Enum: 0 1 |
| is_footer_link_on | integer Enum: 0 1 |
| is_timezone_utc | integer Enum: 0 1 |
| custom_css | string |
| custom_js | string |
| custom_html | string |
| custom_logo | string |
Array of objects |
Responses
Request samples
- Payload
{- "name": "string",
- "status_page_link_name": "string",
- "custom_domain_name": "string",
- "is_incident_history_on": 0,
- "is_current_incidents_on": 0,
- "is_scheduled_maintenances_on": 0,
- "is_past_maintenances_on": 0,
- "is_footer_link_on": 0,
- "is_timezone_utc": 0,
- "custom_css": "string",
- "custom_js": "string",
- "custom_html": "string",
- "custom_logo": "string",
- "structure": [
- {
- "name": "string",
- "monitors": [
- {
- "id": 0,
- "type": "string"
}
]
}
]
}Response samples
- 200
- 400
{- "data": {
- "id": 0,
- "name": "string"
}
}List threads filtered by resolved status
Returns the account's status threads (incidents, scheduled maintenances and general announcements shown on status pages), filtered by the is_resolved query flag (0 = active, 1 = resolved). Each entry summarises the thread and how many status updates it has, with a metadata.total count.
Authorizations:
query Parameters
| is_resolved | integer Default: 0 Enum: 0 1 0 = active, 1 = resolved |
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "title": "string",
- "thread_type": "string",
- "summary": "string",
- "current_status": "string",
- "is_resolved": 0,
- "time_created": 0,
- "time_updated": 0,
- "status_updates_posted": 0
}
], - "metadata": {
- "total": 0
}
}Create a new thread
Opens a new status thread of the chosen type (general, incident or maintenance) with a title, summary and a first status update. Depending on the type you must reference the relevant status_page_id, incident_id or maintenance_id and may list affected monitors. Returns the new thread ID, or a 400 validation error.
Authorizations:
Request Body schema: application/json
| thread_type required | string Enum: "general" "incident" "maintenance" Thread type |
| title required | string Thread title (min 5 chars) |
| summary required | string Thread summary (min 10 chars) |
| initial_status_update required | string Initial status update message (min 5 chars) |
| status_page_id | integer Status page ID (for general type) |
| incident_id | integer Incident ID (for incident type) |
| monitor_type | string Enum: "uptime" "speed" "transaction" Monitor type (for incident type) |
| maintenance_id | integer Maintenance ID (for maintenance type) |
Array of objects Affected monitors |
Responses
Request samples
- Payload
{- "thread_type": "general",
- "title": "string",
- "summary": "string",
- "initial_status_update": "string",
- "status_page_id": 0,
- "incident_id": 0,
- "monitor_type": "uptime",
- "maintenance_id": 0,
- "monitors": [
- {
- "id": 0,
- "type": "string"
}
]
}Response samples
- 201
- 400
{- "data": {
- "id": 0
}
}Get a single thread with all updates
Retrieves one status thread by ID together with its full chronological list of status updates (each with status, message and timestamp). The thread must belong to the authenticated account; returns 404 if not found.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 404
{- "data": {
- "id": 0,
- "title": "string",
- "thread_type": "string",
- "summary": "string",
- "current_status": "string",
- "is_resolved": 0,
- "time_created": 0,
- "time_updated": 0,
- "updates": [
- {
- "id": 0,
- "status": "string",
- "message": "string",
- "time": 0
}
]
}
}Delete a thread and all its updates
Permanently deletes a status thread together with every status update posted to it. The thread must belong to the authenticated account. This action cannot be undone and returns a 400 error if it fails.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 400
{- "status": "success"
}Update an existing thread
Updates a status thread's title, summary and the list of affected monitors. To change the thread status post a new status update instead. The thread must belong to the authenticated account; returns 404 if not found.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: application/json
| title | string Thread title (min 5 chars) |
| summary | string Thread summary (min 10 chars) |
Array of objects Affected monitors |
Responses
Request samples
- Payload
{- "title": "string",
- "summary": "string",
- "monitors": [
- {
- "id": 0,
- "type": "string"
}
]
}Response samples
- 200
- 400
{- "status": "success"
}Post a status update to a thread
Appends a new status update to the thread identified by threadId, advancing its current status (for example investigating, monitoring or resolved) with an accompanying message. The parent thread must belong to the authenticated account. Returns the new update ID, or a 400 validation error.
Authorizations:
path Parameters
| threadId required | integer\d+ |
Request Body schema: application/json
| status required | string Enum: "open" "acknowledged" "investigating" "in_progress" "monitoring" "resolved" "scheduled" "completed" Status progression value |
| message required | string Update message (min 10 chars) |
Responses
Request samples
- Payload
{- "status": "open",
- "message": "string"
}Response samples
- 201
- 400
{- "data": {
- "id": 0
}
}Delete a single status update
Removes one status update from its thread without deleting the thread itself. The update must belong to a thread owned by the authenticated account. This action cannot be undone and returns a 400 error if it fails.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 400
{- "status": "success"
}Edit an existing status update
Edits a previously posted status update, changing its status and message. You must pass the parent thread_id alongside the update ID. The update must belong to a thread owned by the authenticated account.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: application/json
| thread_id required | integer Parent thread ID |
| status required | string Status value |
| message required | string Update message (min 10 chars) |
Responses
Request samples
- Payload
{- "thread_id": 0,
- "status": "string",
- "message": "string"
}Response samples
- 200
- 400
{- "status": "success"
}List all scheduled reports for the authenticated account
Returns the recurring email reports configured on your account, each with its frequency (and a human-readable frequency_label), last/next send timestamps, attachment options and monitor-scope flags. One-time temporary reports are excluded; the response includes a metadata.total count and is not paginated.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "name": "string",
- "frequency": 0,
- "frequency_label": "string",
- "temporary": 0,
- "last_sent": 0,
- "next_send": 0,
- "show_all_incidents": 0,
- "show_maintenances": 0,
- "attach_pdf": 0,
- "attach_html": 0,
- "attach_csv": 0,
- "theme_id": 0,
- "all_monitors": 0,
- "all_uptime": 0,
- "all_ssl": 0,
- "all_fpl": 0,
- "all_rum": 0,
- "all_domain": 0,
- "all_virus": 0,
- "all_transaction": 0
}
], - "metadata": {
- "total": 0
}
}Create a new scheduled report
Creates a recurring email report delivered on the chosen frequency (1=Daily, 7=Weekly, 30=Monthly, 90=Quarterly, 365=Yearly). Choose monitors via the per-type all_* flags or by selecting specific monitors, set which contacts receive it, and toggle PDF/HTML/CSV attachments and incident/maintenance inclusion. Contacts are validated for ownership; invalid frequencies or contacts return a 400.
Authorizations:
Request Body schema: application/json
| name required | string Report name |
| frequency required | integer Frequency: 1=Daily, 7=Weekly, 30=Monthly, 90=Quarterly, 365=Yearly |
| theme | integer Branding theme ID |
| all_monitors | integer Include all monitors |
| all_uptime | integer |
| all_fpl | integer |
| all_rum | integer |
| all_ssl | integer |
| all_domain | integer |
| all_virus | integer |
| all_transaction | integer |
| monitors_uptime | Array of integers Specific uptime monitor IDs to include (when not using all_uptime). |
| monitors_ssl | Array of integers Specific SSL monitor IDs to include. |
| monitors_domain | Array of integers Specific domain monitor IDs to include. |
| monitors_fpl | Array of integers Specific speed (full page load) monitor IDs to include. The type key for speed monitors is "fpl". |
| monitors_transaction | Array of integers Specific transaction monitor IDs to include. |
| monitors_virus | Array of integers Specific virus monitor IDs to include. |
| monitors_rum | Array of integers Specific RUM monitor IDs to include. |
| show_all_incidents | integer |
| show_maintenances | integer |
| attach_pdf | integer |
| attach_html | integer |
| attach_csv | integer |
Array of objects |
Responses
Request samples
- Payload
{- "name": "string",
- "frequency": 7,
- "theme": 0,
- "all_monitors": 1,
- "all_uptime": 0,
- "all_fpl": 0,
- "all_rum": 0,
- "all_ssl": 0,
- "all_domain": 0,
- "all_virus": 0,
- "all_transaction": 0,
- "monitors_uptime": [
- 0
], - "monitors_ssl": [
- 0
], - "monitors_domain": [
- 0
], - "monitors_fpl": [
- 0
], - "monitors_transaction": [
- 0
], - "monitors_virus": [
- 0
], - "monitors_rum": [
- 0
], - "show_all_incidents": 0,
- "show_maintenances": 0,
- "attach_pdf": 0,
- "attach_html": 0,
- "attach_csv": 0,
- "contacts": [
- {
- "id": 0,
- "is_team": 0,
- "is_user": 0,
- "is_operator": 0,
- "is_individual_contact": 0
}
]
}Response samples
- 201
- 400
{- "data": {
- "id": 0
}
}Get a single report with monitors and contacts
Returns one scheduled report including its full settings plus the expanded list of monitors it covers and the contacts (individual recipients, teams, users and operators) it is delivered to. Monitors and contacts are resolved only when they belong to the report owner. The report must belong to the authenticated account; a 404 is returned if not found.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "frequency": 0,
- "frequency_label": "string",
- "temporary": 0,
- "last_sent": 0,
- "next_send": 0,
- "show_all_incidents": 0,
- "show_maintenances": 0,
- "attach_pdf": 0,
- "attach_html": 0,
- "attach_csv": 0,
- "theme_id": 0,
- "all_monitors": 0,
- "all_uptime": 0,
- "all_ssl": 0,
- "all_fpl": 0,
- "all_rum": 0,
- "all_domain": 0,
- "all_virus": 0,
- "all_transaction": 0,
- "monitors": [
- {
- "id": 0,
- "type": "string",
- "name": "string"
}
], - "contacts": [
- {
- "id": 0,
- "name": "string",
- "type": 0,
- "is_team": 0,
- "is_user": 0,
- "is_operator": 0,
- "is_individual_contact": 0
}
]
}
}Delete a scheduled report
Permanently deletes a scheduled report along with its monitor and contact associations so it stops being sent. The report must belong to the authenticated account; a 404 is returned if not found.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
{- "status": "success"
}Update an existing scheduled report
Updates the settings, monitor selection, contacts and attachment options of an existing scheduled report. The report must belong to your account (404 otherwise); supplied contacts are validated for ownership and an invalid set returns a 400.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: application/json
| name | string |
| frequency | integer |
| theme | integer |
| all_monitors | integer |
| all_uptime | integer |
| all_fpl | integer |
| all_rum | integer |
| all_ssl | integer |
| all_domain | integer |
| all_virus | integer |
| all_transaction | integer |
| monitors_uptime | Array of integers Specific uptime monitor IDs to include (when not using all_uptime). |
| monitors_ssl | Array of integers Specific SSL monitor IDs to include. |
| monitors_domain | Array of integers Specific domain monitor IDs to include. |
| monitors_fpl | Array of integers Specific speed (full page load) monitor IDs to include. The type key for speed monitors is "fpl". |
| monitors_transaction | Array of integers Specific transaction monitor IDs to include. |
| monitors_virus | Array of integers Specific virus monitor IDs to include. |
| monitors_rum | Array of integers Specific RUM monitor IDs to include. |
| show_all_incidents | integer |
| show_maintenances | integer |
| attach_pdf | integer |
| attach_html | integer |
| attach_csv | integer |
Array of objects |
Responses
Request samples
- Payload
{- "name": "string",
- "frequency": 0,
- "theme": 0,
- "all_monitors": 0,
- "all_uptime": 0,
- "all_fpl": 0,
- "all_rum": 0,
- "all_ssl": 0,
- "all_domain": 0,
- "all_virus": 0,
- "all_transaction": 0,
- "monitors_uptime": [
- 0
], - "monitors_ssl": [
- 0
], - "monitors_domain": [
- 0
], - "monitors_fpl": [
- 0
], - "monitors_transaction": [
- 0
], - "monitors_virus": [
- 0
], - "monitors_rum": [
- 0
], - "show_all_incidents": 0,
- "show_maintenances": 0,
- "attach_pdf": 0,
- "attach_html": 0,
- "attach_csv": 0,
- "contacts": [
- {
- "id": 0,
- "is_team": 0,
- "is_user": 0,
- "is_operator": 0,
- "is_individual_contact": 0
}
]
}Response samples
- 200
{- "data": {
- "id": 0
}
}List branding themes available for reports
Returns the branding themes (logo/colour presets) defined on your account that can be applied to report emails and exports via the theme field when creating or updating a report.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "name": "string"
}
]
}Send a report email immediately
Generates the report on demand and emails it right away to all of its email contacts, honouring the report's configured PDF/HTML/CSV attachments, then updates its last_sent timestamp. Your account email must be verified (403 otherwise), the report must belong to you (404 otherwise), and a temporary one-time report is removed after sending. Returns the number of emails actually sent.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
{- "status": "success",
- "emails_sent": 0
}Download report as PDF
Generates the report on demand and returns it as a downloadable PDF file (application/pdf) rather than emailing it. The report must belong to your account (404 otherwise), a report with no data returns a 400, and a temporary one-time report is removed after the export.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Download report as HTML
Generates the report on demand and returns it as a downloadable standalone HTML file (text/html). The report must belong to your account (404 otherwise), a report with no data returns a 400, and a temporary one-time report is removed after the export.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Download report as CSV
Generates the report on demand and returns its data as a downloadable CSV file (text/csv) for use in spreadsheets. The report must belong to your account (404 otherwise), a report with no data returns a 400, and a temporary one-time report is removed after the export.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Generate a public link for a report
Renders the report to a static HTML page saved under /reports and returns a shareable URL that anyone with the link can view without authenticating. The report must belong to your account (404 otherwise) and a report with no data returns a 400; a temporary one-time report is removed once the page is generated.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
{- "data": {
- "url": "string"
}
}Create and deliver a custom one-time report
Builds an ad-hoc report for an explicit date range and monitor/contact selection and delivers it in one call according to the delivery field: email it to the chosen contacts, return it as a downloadable file in the requested format (pdf, html or csv), or publish it as a public link. Email delivery requires a verified account email (403 otherwise); the temporary report is removed after delivery and the response returns its id plus a url when a public link was generated.
Authorizations:
Request Body schema: application/json
| name | string Report name (defaults to "Custom Report" when omitted) |
| date_started | integer Start date as YYYYMMDD integer |
| date_ended | integer End date as YYYYMMDD integer |
Array of objects | |
Array of objects | |
| show_all_incidents | integer |
| show_maintenances | integer |
| delivery | string Enum: "email" "download" "public_link" |
| format | string Enum: "pdf" "html" "csv" Export format for download delivery |
| all_monitors | integer |
| theme | integer |
Responses
Request samples
- Payload
{- "name": "Custom Report",
- "date_started": 20240301,
- "date_ended": 20240331,
- "monitors": [
- {
- "id": 0,
- "type": "uptime"
}
], - "contacts": [
- {
- "id": 0,
- "is_team": 0,
- "is_user": 0,
- "is_operator": 0,
- "is_individual_contact": 0
}
], - "show_all_incidents": 1,
- "show_maintenances": 0,
- "delivery": "email",
- "format": "pdf",
- "all_monitors": 0,
- "theme": 0
}Response samples
- 201
{- "data": {
- "id": 0,
- "url": "string"
}
}List all teams for the authenticated account
Returns every alerting team owned by the authenticated account, including each team members, alerting-hours window, do-not-alert days, and whether the team overrides individual members alerting settings. The metadata object reports the total count.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "name": "string",
- "alerted_for": "string",
- "alerting_times": "string",
- "team_members_raw": [
- 0
], - "team_members_names": "string",
- "is_alerting_settings_override": true,
- "do_not_alert_days": [
- "string"
], - "alert_hours_from": 0,
- "alert_hours_to": 0
}
], - "metadata": {
- "total": 0
}
}Create a new team
Creates an alerting team that groups members so they can be notified together as a single contact. Requires a name and at least one member, and every member must belong to your account. Optionally override members individual alerting with a custom alerting-hours window (from must be before to) and do-not-alert days. Returns the new team ID.
Authorizations:
Request Body schema: application/json
| name required | string Team name |
| members required | Array of integers Array of user/operator IDs |
| is_alerting_settings_override | boolean Override individual alerting settings |
| do_not_alert_days | Array of strings Items Enum: "mon" "tue" "wed" "thu" "fri" "sat" "sun" Days to suppress alerts |
| alert_hours_from | integer Alert window start hour (0-23) |
| alert_hours_to | integer Alert window end hour (0-23) |
Responses
Request samples
- Payload
{- "name": "string",
- "members": [
- 0
], - "is_alerting_settings_override": true,
- "do_not_alert_days": [
- "mon"
], - "alert_hours_from": 8,
- "alert_hours_to": 17
}Response samples
- 201
- 400
{- "data": {
- "id": 0
}
}Get a single team with full member details
Returns one team with its full roster of members (each flagged as the main account user or an operator) plus its alerting-override flag, alerting-hours window, and do-not-alert days. Returns 404 if the team does not exist or does not belong to your account.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "is_settings_override": 0,
- "do_not_alert_days": [
- "string"
], - "alert_hours_from": 0,
- "alert_hours_to": 0,
- "members_list": [
- {
- "id": 0,
- "name": "string",
- "is_main_user": true
}
]
}
}Delete a team
Permanently deletes a team belonging to the authenticated account; the underlying member users themselves are not deleted. Returns an error if the team could not be removed.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 400
{- "status": "success"
}Update an existing team
Updates a team; only the supplied fields change while omitted fields keep their current values. The member list must remain non-empty and every member must belong to your account, and alerting-hours from must be before to. Returns 404 if the team does not exist or does not belong to your account.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: application/json
| name | string |
| members | Array of integers |
| is_alerting_settings_override | boolean |
| do_not_alert_days | Array of strings Items Enum: "mon" "tue" "wed" "thu" "fri" "sat" "sun" |
| alert_hours_from | integer |
| alert_hours_to | integer |
Responses
Request samples
- Payload
{- "name": "string",
- "members": [
- 0
], - "is_alerting_settings_override": true,
- "do_not_alert_days": [
- "mon"
], - "alert_hours_from": 0,
- "alert_hours_to": 0
}Response samples
- 200
- 400
{- "data": {
- "id": 0,
- "name": "string"
}
}List all users and operators for the authenticated account
Returns the account owner (main user) and every operator (sub-user) on the account, including each one's contact email, alerting schedule (do-not-alert days and alert-hour window) and confirmation state. The response includes a metadata.total count.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "email": "string",
- "full_name": "string",
- "alerting_times": "string",
- "do_not_alert_days": "string",
- "alert_hours_from": 0,
- "alert_hours_to": 0,
- "is_main_user": true,
- "is_confirmed": true
}
], - "metadata": {
- "total": 0
}
}Create a new operator
Adds a new operator (sub-user) to the account with a full name, email and optional alerting schedule. If no contacts are supplied an email contact is auto-created from the operator's email. Alert hours must form a valid range and the operator count is capped by the account plan; returns a 400 error on validation failure or plan limit.
Authorizations:
Request Body schema: application/json
| full_name required | string Operator full name |
| email required | string <email> Operator email address |
Array of objects Array of contacts for the operator | |
| do_not_alert_days | Array of strings Items Enum: "mon" "tue" "wed" "thu" "fri" "sat" "sun" Days to suppress alerts |
| alert_hours_from | integer Alert window start hour (0-23) |
| alert_hours_to | integer Alert window end hour (0-23) |
Responses
Request samples
- Payload
{- "full_name": "string",
- "contacts": [
- {
- "name": "string",
- "type": "email",
- "contact": "string",
- "is_new": true
}
], - "do_not_alert_days": [
- "mon"
], - "alert_hours_from": 8,
- "alert_hours_to": 17
}Response samples
- 201
- 400
{- "data": {
- "id": 0
}
}Get a single user or operator
Retrieves one operator (sub-user) by ID with a whitelisted set of fields: email, full name and their alerting schedule (do-not-alert days and alert-hour window). The operator must belong to the authenticated account; returns 404 if not found.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 404
{- "data": {
- "id": 0,
- "email": "string",
- "full_name": "string",
- "do_not_alert_days": "string",
- "alert_hours_from": 0,
- "alert_hours_to": 0
}
}Delete an operator
Permanently removes an operator (sub-user) and their contacts from the account. The operator must belong to the authenticated account. This action cannot be undone and returns a 400 error if it fails.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 400
{- "status": "success"
}Update an operator
Partially updates an operator's full name, email and alerting schedule; omitted fields keep their current values. The email must be valid and unique and the alert hours must form a valid range. The operator must belong to the authenticated account; returns 404 if not found.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: application/json
| full_name | string |
string <email> | |
| do_not_alert_days | Array of strings Items Enum: "mon" "tue" "wed" "thu" "fri" "sat" "sun" |
| alert_hours_from | integer |
| alert_hours_to | integer |
Responses
Request samples
- Payload
{- "full_name": "string",
- "do_not_alert_days": [
- "mon"
], - "alert_hours_from": 0,
- "alert_hours_to": 0
}Response samples
- 200
- 400
{- "data": {
- "id": 0,
- "email": "string",
- "full_name": "string"
}
}Update main user alerting preferences
Updates the alerting preferences of the authenticated account owner (main user): the do-not-alert days and the daily alert-hour window during which notifications are sent. Alert hours must form a valid range or a 400 error is returned.
Authorizations:
Request Body schema: application/json
| do_not_alert_days | Array of strings Items Enum: "mon" "tue" "wed" "thu" "fri" "sat" "sun" Days to suppress alerts |
| alert_hours_from | integer Alert window start hour (0-23) |
| alert_hours_to | integer Alert window end hour (0-23) |
Responses
Request samples
- Payload
{- "do_not_alert_days": [
- "mon"
], - "alert_hours_from": 8,
- "alert_hours_to": 17
}Response samples
- 200
- 400
{- "status": "success"
}List available timezones
Returns the complete map of supported timezone IDs to their human-readable labels, intended to populate a timezone picker before setting the time_zone field on the user profile. This endpoint requires no parameters.
Authorizations:
Responses
Response samples
- 200
{- "data": { }
}Get current user profile
Returns the authenticated user's profile (name, email, timezone, custom email sender, 2FA and login-email flags) plus the account plan, trial state and per-monitor-type usage versus plan limits. When signed in as an operator the operator's own name and email are returned along with impersonation context.
Authorizations:
Responses
Response samples
- 200
- 401
{- "data": {
- "full_name": "string",
- "email": "string",
- "time_zone": 0,
- "custom_sender": "string",
- "twofa": 0,
- "login_in_emails": true,
- "plan": 0,
- "api_user": 0,
- "operator_id": 0,
- "is_operator": true,
- "is_impersonated": true,
- "is_dashboard_tour_seen": true,
- "is_sumoling": true,
- "sumo_tier": 0,
- "needs_password_setup": true,
- "server_monitoring_enabled": true
}, - "plan": {
- "name": "string",
- "is_legacy": true,
- "is_trial": true,
- "trial_days_left": 0,
- "is_sumoling": true,
- "usage": {
- "uptime": {
- "used": 0,
- "max": 0
}, - "ssl": {
- "used": 0,
- "max": 0
}, - "domain": {
- "used": 0,
- "max": 0
}, - "virus": {
- "used": 0,
- "max": 0
}, - "rum": {
- "used": 0,
- "max": 0
}, - "sms_credits": {
- "used": 0,
- "max": 0
}, - "users": {
- "used": 0,
- "max": 0
}
}
}
}Update user profile
Updates the authenticated user's full name, email, timezone and custom email sender. The email must be valid and unique and the custom sender must be 3-11 alphanumeric characters. For operator sessions the operator's own name and email are returned so the form is not overwritten with the owner's values; returns a 400 error on validation failure.
Authorizations:
Request Body schema: application/json
| full_name | string |
string <email> | |
| time_zone | string |
| custom_sender | string |
Responses
Request samples
- Payload
{- "full_name": "string",
- "time_zone": "string",
- "custom_sender": "string"
}Response samples
- 200
- 400
{- "data": {
- "full_name": "string",
- "email": "string",
- "time_zone": 0,
- "custom_sender": "string"
}
}List all branding themes for the authenticated account
Returns every branding theme owned by the account, each with its ID, name and a fully-qualified logo URL (relative filenames are expanded to the CDN uploads base URL). Themes control the colours and logo applied to email reports and status pages. The response includes a metadata.total count.
Authorizations:
Responses
Response samples
- 200
{- "data": [
- {
- "id": 0,
- "name": "string",
- "logo": "string"
}
], - "metadata": {
- "total": 0
}
}Create a new branding theme
Creates a new branding theme for the account with a required name and an optional map of colour overrides; unspecified colours fall back to defaults. A logo is added separately via the logo upload endpoint. Returns the new theme ID, or a 400 error if the name is missing or creation fails.
Authorizations:
Request Body schema: application/json
| name required | string Theme name |
| colors | object Color overrides |
Responses
Request samples
- Payload
{- "name": "string",
- "colors": { }
}Response samples
- 201
- 400
{- "data": {
- "id": 0
}
}Get a single branding theme with all color data
Retrieves one branding theme by ID with its name, logo URL and the full set of colour fields (backgrounds, text, headers, links and separators). The theme must belong to the authenticated account; returns 404 if it does not exist or is not yours.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 404
{- "data": {
- "id": 0,
- "name": "string",
- "logo": "string",
- "colors": { }
}
}Delete a branding theme
Permanently deletes a branding theme from the account. The theme must belong to the authenticated account; returns 404 if not found. This action cannot be undone.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
- 404
{- "status": "success"
}Update an existing branding theme
Updates a branding theme's name and colours; supplied colour fields are merged over the theme's existing colours and the current logo is preserved. Returns the full updated theme. The theme must belong to the authenticated account; returns 404 if not found.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: application/json
| name | string |
| colors | object |
Responses
Request samples
- Payload
{- "name": "string",
- "colors": { }
}Response samples
- 200
- 400
{- "data": {
- "id": 0,
- "name": "string",
- "logo": "string",
- "colors": { }
}
}Upload a logo for a branding theme
Uploads a logo image (PNG, JPG or SVG, max 2MB; SVGs are sanitized server-side) via multipart form-data and attaches it to the theme, replacing any previous logo. Returns the fully-qualified logo URL. The theme must belong to the authenticated account; returns 404 if not found.
Authorizations:
path Parameters
| id required | integer\d+ |
Request Body schema: multipart/form-data
| logo | string <binary> Logo file (PNG, JPG or SVG, max 2MB). SVGs are sanitized server-side. |
Responses
Response samples
- 200
- 400
{- "data": {
- "filename": "string"
}
}Remove the logo from a branding theme
Clears the logo from a branding theme while keeping the theme and its colours intact. The theme must belong to the authenticated account; returns 404 if not found.
Authorizations:
path Parameters
| id required | integer\d+ |
Responses
Response samples
- 200
{- "status": "success"
}