Skip to main content

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.

Getting started

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.

Authentication

The Uptimia API uses Bearer authentication. Include your API key in an Authorization header on every request:

Authorization: Bearer YOUR_API_KEY

How to create an API key

  1. Log in to your Uptimia account and open Settings → API Keys.
  2. Click Create API key and give it a name (for your own reference).
  3. Copy the key that is shown — for security you won't be able to see it again.
  4. Use the key in the Authorization header 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.

How to use an API key

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"

When the API key is invalid

Requests with a missing or invalid key return 401 Unauthorized:

{
  "error_code": "invalid_api_key",
  "message": "API key invalid"
}

Uptime Monitors

HTTP/website uptime monitoring — create, read, update, delete and view stats.

List all uptime monitors

Returns a paginated list of all uptime monitors for the authenticated account. Supports filtering by monitor status.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Create a new uptime monitor

Creates a new uptime monitor with the specified configuration. The domain field is required.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "domain": "https://example.com",
  • "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": [
    ],
  • "groups": [
    ],
  • "error_types": {
    },
  • "keywords": [
    ],
  • "custom_headers": [
    ],
  • "payload": "string",
  • "request_type": "GET",
  • "follow_redirects": 1,
  • "max_timeout": 30,
  • "report_up": 0,
  • "branding_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get a single uptime monitor

Returns full details of a specific uptime monitor including configuration, status, and assigned contacts.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete an uptime monitor

Permanently deletes an uptime monitor and its associated reporting configuration. Incident and log data may be retained.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "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": [
    ],
  • "groups": [
    ],
  • "error_types": { },
  • "keywords": [
    ],
  • "custom_headers": [
    ],
  • "payload": "string",
  • "request_type": "GET",
  • "follow_redirects": 0,
  • "max_timeout": 0,
  • "report_up": 0,
  • "branding_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Get a single incident

Returns details of a specific incident for the given uptime monitor.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete an incident

Permanently deletes a specific incident and its associated status page threads.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

List monitoring logs

Returns recent monitoring check logs for the specified monitor. Shows the last 14 days of data, limited to 20 entries.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Get a single monitoring log entry

Returns full details of a specific monitoring check log.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

logId
required
integer\d+

Log entry ID

Responses

Get timeline segments for an uptime monitor

Returns timeline segments showing uptime, downtime, maintenance, and unknown periods for the given date range.

Authorizations:
bearerAuth
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:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

SSL Monitors

SSL/TLS certificate expiry and validity monitoring.

List all SSL monitors

Returns a paginated list of all SSL monitors for the authenticated account. Supports filtering by monitor status.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Create a new SSL monitor

Creates a new SSL certificate monitor for the specified URL.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "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": [
    ],
  • "groups": [
    ],
  • "report_up": 0,
  • "branding_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get a single SSL monitor

Returns full details of a specific SSL monitor including configuration, status, certificate info, and assigned contacts.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete an SSL monitor

Permanently deletes an SSL monitor and its associated reporting configuration. Incident and log data may be retained.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "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": [
    ],
  • "groups": [
    ],
  • "report_up": 0,
  • "branding_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Get a single SSL incident

Returns full details of a specific incident for the given SSL monitor.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete an SSL incident

Permanently deletes a specific SSL incident and its associated status page threads.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Get a single SSL monitoring log entry

Returns full details of a specific SSL monitoring check log.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

logId
required
integer\d+

Log entry ID

Responses

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:
bearerAuth
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:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

Domain Monitors

Domain registration / WHOIS expiry monitoring.

List all domain monitors

Returns a paginated list of all domain monitors for the authenticated account. Supports filtering by monitor status.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Create a new domain monitor

Creates a new domain expiration monitor. Validates domain zone against supported TLD whitelist.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "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": [
    ],
  • "groups": [
    ],
  • "report_up": 0,
  • "branding_id": 0,
  • "bulk_data": ""
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get a single domain monitor

Returns full details of a specific domain monitor including WHOIS data, expiration info, registrar, and nameservers.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a domain monitor

Permanently deletes a domain monitor and its associated reporting configuration. Incident and log data may be retained.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "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": [
    ],
  • "groups": [
    ],
  • "report_up": 0,
  • "branding_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Get a single domain incident

Returns details of a specific domain expiration incident.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a domain incident

Permanently deletes a specific domain expiration incident and its associated status page threads.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Get a single domain monitoring log entry

Returns full details of a specific domain WHOIS check log.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

logId
required
integer\d+

Log entry ID

Responses

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:
bearerAuth
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:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

Speed Monitors

Full-page-load performance monitoring (the type key is "fpl").

List all speed monitors

Returns a paginated list of all speed monitors for the authenticated account. Supports filtering by monitor status.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Create a new speed monitor

Creates a new speed/page load monitor for the specified URL.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "project_name": "My Website Speed",
  • "monitoring_interval_slider": 5,
  • "report_down_slider": 1,
  • "probes": "all",
  • "contacts": [
    ],
  • "groups": [
    ],
  • "is_alert_speed_drops": 0,
  • "alert_speed_threshold": 5,
  • "alert_speed_time": 30,
  • "report_up": 0,
  • "branding_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get a single speed monitor

Returns full details of a specific speed monitor including configuration, status, speed alert settings, and assigned contacts.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a speed monitor

Permanently deletes a speed monitor and its associated reporting configuration. Incident and log data may be retained.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "is_paused": true,
  • "url": "string",
  • "project_name": "string",
  • "monitoring_interval_slider": 0,
  • "report_down_slider": 0,
  • "probes": "string",
  • "contacts": [
    ],
  • "groups": [
    ],
  • "is_alert_speed_drops": 0,
  • "alert_speed_threshold": 0,
  • "alert_speed_time": 0,
  • "report_up": 0,
  • "branding_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a speed incident

Permanently deletes a specific speed incident and its associated status page threads.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Get a single speed monitoring log entry

Returns full details of a specific speed monitoring check log.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

logId
required
integer\d+

Log entry ID

Responses

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:
bearerAuth
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:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ]
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

Transaction Monitors

Multi-step browser transaction monitoring.

List all transaction monitors

Returns a list of all transaction monitors for the authenticated account. Supports filtering by monitor status.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Create a new transaction monitor

Creates a new transaction monitor with step definitions. Steps define the user journey to be tested.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "project_name": "string",
  • "monitoring_interval_slider": 0,
  • "report_down_slider": 0,
  • "contacts": [
    ],
  • "groups": [
    ],
  • "report_up": 0,
  • "branding_id": 0,
  • "probes": null,
  • "steps": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get a single transaction monitor

Returns full details of a specific transaction monitor including configuration, step definitions, and assigned contacts.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a transaction monitor

Permanently deletes a transaction monitor and its associated steps and reporting configuration.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "status": "success"
}

Update a transaction monitor

Updates an existing transaction monitor including step definitions. Supports pausing/resuming as a separate operation.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "is_paused": true,
  • "project_name": "string",
  • "monitoring_interval_slider": 0,
  • "report_down_slider": 0,
  • "contacts": [
    ],
  • "groups": [
    ],
  • "report_up": 0,
  • "branding_id": 0,
  • "probes": null,
  • "steps": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a transaction incident

Permanently deletes a specific transaction incident.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "status": "success"
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Get a single transaction monitoring log entry

Returns full details of a specific transaction monitoring check log.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

logId
required
integer\d+

Log entry ID

Responses

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:
bearerAuth
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:
bearerAuth
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:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Run tests for all transaction monitors

Triggers immediate test runs for all transaction monitors belonging to the authenticated account.

Authorizations:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Virus Monitors

Malware / blacklist scanning of your sites.

List all virus monitors

Returns a paginated list of all virus monitors for the authenticated account. Supports filtering by monitor status.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Create a new virus monitor

Creates a new virus/malware monitor for the specified URL. Scans via the Google Web Risk API.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "project_name": "My Website Virus Scan",
  • "monitoring_interval_slider": 5,
  • "report_down_slider": 1,
  • "contacts": [
    ],
  • "groups": [
    ],
  • "report_up": 1,
  • "branding_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get a single virus monitor

Returns full details of a specific virus monitor including configuration, status, and assigned contacts.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a virus monitor

Permanently deletes a virus monitor and its associated reporting configuration. Incident and log data may be retained.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "is_paused": true,
  • "url": "string",
  • "project_name": "string",
  • "monitoring_interval_slider": 0,
  • "report_down_slider": 0,
  • "contacts": [
    ],
  • "groups": [
    ],
  • "report_up": 0,
  • "branding_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a virus incident

Permanently deletes a specific virus/malware incident and its associated status page threads.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Get a single virus scan log entry

Returns full details of a specific virus scan check log.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

logId
required
integer\d+

Log entry ID

Responses

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:
bearerAuth
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

RUM Monitors

Real User Monitoring — passive, in-browser performance beacon.

List all RUM monitors

Returns a paginated list of all RUM monitors for the authenticated account. Supports filtering by monitor status.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Create a new RUM monitor

Creates a new Real User Monitoring site with the specified configuration.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "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": [
    ],
  • "groups": 0,
  • "branding_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get a single RUM monitor

Returns full details of a specific RUM monitor including configuration, tracking code, alert settings, and assigned contacts.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Delete a RUM monitor

Permanently deletes a RUM monitor and its associated configuration. Incident and log data may be retained.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "status": "success"
}

Update an existing RUM monitor

Updates an existing RUM monitor. Only include fields you want to change. Omitted fields retain their current values.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "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": [
    ],
  • "is_paused": true,
  • "groups": 0,
  • "branding_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Get a single RUM incident

Returns full details of a specific RUM incident.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Delete a RUM incident

Permanently deletes a specific RUM incident and its associated status page threads.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

incidentId
required
integer\d+

Incident ID

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Get RUM summary analytics

Returns summary analytics for a RUM monitor: average load time, pageviews, JS errors, and user satisfaction breakdown.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

Get per-page performance breakdown

Returns per-page performance data including pageviews and average load time for each tracked URL.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ]
}

Get JavaScript error analytics

Returns JavaScript error data including totals, error breakdown by name and by script.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

Get geographic distribution

Returns visitor distribution by country with load counts and average load times.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ]
}

Get browser distribution

Returns visitor distribution by browser with share percentage and load counts.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ]
}

Get device type distribution

Returns visitor distribution by device type (Desktop, Mobile, Tablet) with share percentage and load counts.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ]
}

Get operating system distribution

Returns visitor distribution by operating system with share percentage and load counts.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ]
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
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

Monitors

Cross-type monitor actions: copy, pause and resume.

Pause a single monitor

Pauses a single monitor by type and ID. Creates a pause history entry.

Authorizations:
bearerAuth
path Parameters
type
required
string
Enum: "uptime" "ssl" "domain" "virus" "fpl" "transaction" "rum"

Monitor type

id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "status": "success"
}

Resume a single monitor

Resumes a single paused monitor by type and ID. Closes the pause history entry.

Authorizations:
bearerAuth
path Parameters
type
required
string
Enum: "uptime" "ssl" "domain" "virus" "fpl" "transaction" "rum"

Monitor type

id
required
integer\d+

Monitor ID

Responses

Response samples

Content type
application/json
{
  • "status": "success"
}

Copy a monitor

Creates a copy of an existing monitor. Currently only supported for uptime monitors.

Authorizations:
bearerAuth
path Parameters
type
required
string
Value: "uptime"

Monitor type (only "uptime" supported)

id
required
integer\d+

Monitor ID to copy

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

Locations

Monitoring checkpoint locations (probes) used when scoping monitors.

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "regions": [
    ]
}

Incidents

Active and historical incidents across all monitor types.

List active incidents

Returns a list of currently active (ongoing) incidents across all monitor types. Supports filtering by groups or individual monitors.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

List incident history

Returns a paginated history of resolved and ongoing incidents across all monitor types within the specified date range.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Get incident details

Returns full details for a single incident including monitor info, error data, checkpoint servers, screenshots, response headers/body, and traceroute.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

Delete an incident

Permanently deletes a specific incident and its associated status page threads.

Authorizations:
bearerAuth
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

Content type
application/json
{
  • "status": "success"
}

Monitoring Logs

Per-check monitoring logs across all monitor types.

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:
bearerAuth
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

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

Get single monitoring log detail

Returns detailed data for a single monitoring check result.

Authorizations:
bearerAuth
path Parameters
type
required
string
Enum: "uptime" "ssl" "domain" "virus" "fpl" "transaction"

Monitor type

id
required
integer\d+

Log entry ID

Responses

Contacts

Alert contacts and notification channels.

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "name": "string",
  • "type": "email",
  • "value": "[email protected]",
  • "integration_id": 0,
  • "user_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "value": "string",
  • "integration_id": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
monitorId
required
integer\d+

Monitor ID

type
required
string

Monitor type (uptime, ssl, domain, fpl, transaction, rum, virus, reports)

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
path Parameters
id
required
integer\d+
Request Body schema: application/json
code
required
string

The confirmation code received via SMS

Responses

Request samples

Content type
application/json
{
  • "code": "123456"
}

Response samples

Content type
application/json
{
  • "status": "success"
}

Integrations

Third-party integrations and outbound webhooks.

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "name": "string",
  • "type": "slack",
  • "api_key": "string",
  • "component_id": "string",
  • "page_id": "string",
  • "custom_headers": "string",
  • "additional_value_1": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

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:
bearerAuth
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

Content type
application/json
{
  • "name": "string",
  • "api_key": "string",
  • "custom_headers": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
path Parameters
id
required
integer\d+
Request Body schema: application/json
name
string
api_key
string

Webhook URL

custom_headers
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "api_key": "string",
  • "custom_headers": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "api_key": "string",
  • "component_id": "string",
  • "page_id": "string",
  • "custom_headers": "string",
  • "additional_value_1": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "status": "success"
}

Maintenance

Scheduled maintenance windows that suppress alerting.

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "name": "string",
  • "type": "once",
  • "time_start": "string",
  • "time_end": "string",
  • "days": [
    ],
  • "weeks": [
    ],
  • "selection_mode": "all",
  • "uptime": 0,
  • "ssl": 0,
  • "domain": 0,
  • "virus": 0,
  • "fpl": 0,
  • "transaction": 0,
  • "rum": 0,
  • "server": 0,
  • "individual_monitors": [
    ],
  • "individual_groups": [
    ],
  • "status_page": 0,
  • "status_summary": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "name": "string",
  • "type": "once",
  • "time_start": "string",
  • "time_end": "string",
  • "days": [
    ],
  • "weeks": [
    ],
  • "selection_mode": "all",
  • "uptime": 0,
  • "ssl": 0,
  • "domain": 0,
  • "virus": 0,
  • "fpl": 0,
  • "transaction": 0,
  • "rum": 0,
  • "server": 0,
  • "individual_monitors": [
    ],
  • "individual_groups": [
    ],
  • "status_page": 0,
  • "status_summary": "string"
}

Status Pages

Public status pages and their incident threads.

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "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": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "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": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
query Parameters
is_resolved
integer
Default: 0
Enum: 0 1

0 = active, 1 = resolved

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "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": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "title": "string",
  • "summary": "string",
  • "monitors": [
    ]
}

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "status": "open",
  • "message": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "thread_id": 0,
  • "status": "string",
  • "message": "string"
}

Response samples

Content type
application/json
{
  • "status": "success"
}

Reports

Scheduled and on-demand email reports.

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "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": [
    ],
  • "monitors_ssl": [
    ],
  • "monitors_domain": [
    ],
  • "monitors_fpl": [
    ],
  • "monitors_transaction": [
    ],
  • "monitors_virus": [
    ],
  • "monitors_rum": [
    ],
  • "show_all_incidents": 0,
  • "show_maintenances": 0,
  • "attach_pdf": 0,
  • "attach_html": 0,
  • "attach_csv": 0,
  • "contacts": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "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": [
    ],
  • "monitors_ssl": [
    ],
  • "monitors_domain": [
    ],
  • "monitors_fpl": [
    ],
  • "monitors_transaction": [
    ],
  • "monitors_virus": [
    ],
  • "monitors_rum": [
    ],
  • "show_all_incidents": 0,
  • "show_maintenances": 0,
  • "attach_pdf": 0,
  • "attach_html": 0,
  • "attach_csv": 0,
  • "contacts": [
    ]
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ]
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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:
bearerAuth
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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

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:
bearerAuth
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

Content type
application/json
{
  • "name": "Custom Report",
  • "date_started": 20240301,
  • "date_ended": 20240331,
  • "monitors": [
    ],
  • "contacts": [
    ],
  • "show_all_incidents": 1,
  • "show_maintenances": 0,
  • "delivery": "email",
  • "format": "pdf",
  • "all_monitors": 0,
  • "theme": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Teams

Team members and multi-user access.

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "name": "string",
  • "members": [
    ],
  • "is_alerting_settings_override": true,
  • "do_not_alert_days": [
    ],
  • "alert_hours_from": 8,
  • "alert_hours_to": 17
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
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

Content type
application/json
{
  • "name": "string",
  • "members": [
    ],
  • "is_alerting_settings_override": true,
  • "do_not_alert_days": [
    ],
  • "alert_hours_from": 0,
  • "alert_hours_to": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Users

Account user profile information.

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "full_name": "string",
  • "email": "[email protected]",
  • "contacts": [
    ],
  • "do_not_alert_days": [
    ],
  • "alert_hours_from": 8,
  • "alert_hours_to": 17
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
path Parameters
id
required
integer\d+
Request Body schema: application/json
full_name
string
email
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

Content type
application/json
{
  • "full_name": "string",
  • "email": "[email protected]",
  • "do_not_alert_days": [
    ],
  • "alert_hours_from": 0,
  • "alert_hours_to": 0
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "do_not_alert_days": [
    ],
  • "alert_hours_from": 8,
  • "alert_hours_to": 17
}

Response samples

Content type
application/json
{
  • "status": "success"
}

Settings

Account profile and timezone settings.

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": {
    },
  • "plan": {
    }
}

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:
bearerAuth
Request Body schema: application/json
full_name
string
email
string <email>
time_zone
string
custom_sender
string

Responses

Request samples

Content type
application/json
{
  • "full_name": "string",
  • "email": "[email protected]",
  • "time_zone": "string",
  • "custom_sender": "string"
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

Branding

Branding themes (colors and logos) for emails and reports.

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:
bearerAuth

Responses

Response samples

Content type
application/json
{
  • "data": [
    ],
  • "metadata": {
    }
}

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:
bearerAuth
Request Body schema: application/json
name
required
string

Theme name

colors
object

Color overrides

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "colors": { }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "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:
bearerAuth
path Parameters
id
required
integer\d+
Request Body schema: application/json
name
string
colors
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "colors": { }
}

Response samples

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
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

Content type
application/json
{
  • "data": {
    }
}

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:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

Content type
application/json
{
  • "status": "success"
}