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 [ 0 .. 65 ]

How often to check, in MINUTES (0-60; 0 = every 30 seconds). Values 61-65 are period codes for longer cadences: 61=2h, 62=3h, 63=6h, 64=12h, 65=24h. A value below your plan's fastest cadence is raised to that floor.

report_down_slider
integer [ 0 .. 60 ]

How long an outage must persist before it is reported, in MINUTES (0-60). 0 reports as soon as the outage is confirmed.

probes
string

Monitoring locations: "all" for all locations, or comma-separated probe IDs

contacts
required
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

New HTTP Basic Auth password. Omitting it — or sending an empty string, which is what a GET response round-trips — keeps the stored secret. To remove the password, send clear_password: true.

clear_password
boolean

Set true to remove the stored HTTP Basic Auth password. Ignored when a non-empty password is sent in the same request (that rotates instead).

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 [ 0 .. 65 ]

How often to check, in MINUTES (0-60; 0 = every 30 seconds). Values 61-65 are period codes: 61=2h, 62=3h, 63=6h, 64=12h, 65=24h.

report_down_slider
integer [ 0 .. 60 ]

How long an outage must persist before it is reported, in MINUTES (0-60). 0 reports as soon as the outage is confirmed.

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

Array of objects

Keywords to check in the response body. Replaces the whole list; [] clears it.

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",
  • "clear_password": true,
  • "string_send": "string",
  • "string_expect": "string",
  • "encrypted": 0,
  • "monitoring_interval_slider": 65,
  • "report_down_slider": 60,
  • "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. date_start is raised to the account plan's history retention floor.

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. The incident must belong to the monitor in the path; otherwise 404 incident_not_found.

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. date_start is raised to the account plan's history retention floor, and an omitted date_start starts at that floor.

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 monitoring check logs for the specified monitor, newest first. Defaults to the last 14 days and a page size of 20; use limit/offset to page through the whole window. date_start is raised to the account plan's history retention floor.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

query Parameters
limit
integer
Example: limit=20

Page size (default 20)

offset
integer

Number of log entries to skip

date_start
integer

Start date as Unix timestamp to filter the log range (defaults to 14 days ago, raised to the plan retention floor)

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. date_start is raised to the account plan's history retention floor.

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. date_start is raised to the account plan's history retention floor.

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. date_start is raised to the account plan's history retention floor.

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

Check frequency in minutes (0-60; 0 = every 30 seconds) or a period code 61-65 (2h, 3h, 6h, 12h, 24h). -1 selects the 10-second cadence where enabled.

report_down_slider
integer

Minutes to wait before reporting an outage (0-60; 0 = report as soon as the outage is confirmed)

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

Check frequency in minutes (0-60; 0 = every 30 seconds) or a period code 61-65 (2h, 3h, 6h, 12h, 24h)

report_down_slider
integer

Minutes to wait before reporting an outage (0-60)

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. The incident must belong to the monitor in the path; otherwise 404 incident_not_found.

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

WHOIS check frequency, 71-79 (71 = every day … 79 = every 9 days)

monitoring_interval
integer

WHOIS check frequency in seconds, 86400-2592000 (1 to 30 days). Alternative to monitoring_interval_slider

report_down_slider
integer

Minutes to wait before reporting a failed check, 0-60 (0 = report as soon as the check fails)

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

confirmations_required
integer

How many backup checks must agree before an outage is confirmed (1-3, default 3)

escalation_policy_id
integer

Escalation policy to alert through (0 = alert every recipient at once)

notes
string

Free-text operator note (plain text, up to 500 characters)

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": 77,
  • "monitoring_interval": 604800,
  • "report_down_slider": 0,
  • "expire_alert_days": 7,
  • "expiry_date": "2027-01-15",
  • "contacts": [
    ],
  • "groups": [
    ],
  • "report_up": 0,
  • "branding_id": 0,
  • "confirmations_required": 3,
  • "escalation_policy_id": 0,
  • "notes": "",
  • "bulk_data": ""
}

Response samples

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

Look up a domain zone

Resolves a domain name (or a bare TLD) to its zone and reports whether the zone is monitored and whether its expiry date has to be supplied by hand. A manual zone has no queryable WHOIS server, so a monitor in it must be created with an expiry_date. The monitor editor calls this while the user types, to decide whether to show the expiry-date field.

Authorizations:
bearerAuth
query Parameters
url
string
Example: url=example.de

Domain name or URL to resolve (e.g. "example.de" or "https://example.de/path")

tld
string
Example: tld=example.de

Alias for url — accepted so a caller that already has the bare TLD can pass it directly

Responses

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

WHOIS check frequency, 71-79 (71 = every day … 79 = every 9 days)

monitoring_interval
integer

WHOIS check frequency in seconds, 86400-2592000 (1 to 30 days). Alternative to monitoring_interval_slider

report_down_slider
integer

Minutes to wait before reporting a failed check, 0-60

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

confirmations_required
integer

How many backup checks must agree before an outage is confirmed (1-3)

escalation_policy_id
integer

Escalation policy to alert through (0 = alert every recipient at once)

notes
string

Free-text operator note (plain text, up to 500 characters)

Responses

Request samples

Content type
application/json
{
  • "is_paused": true,
  • "url": "string",
  • "project_name": "string",
  • "monitoring_interval_slider": 0,
  • "monitoring_interval": 0,
  • "report_down_slider": 0,
  • "expire_alert_days": 0,
  • "expiry_date": "2027-01-15",
  • "contacts": [
    ],
  • "groups": [
    ],
  • "report_up": 0,
  • "branding_id": 0,
  • "confirmations_required": 0,
  • "escalation_policy_id": 0,
  • "notes": "string"
}

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. The incident must belong to the monitor in the path; otherwise 404 incident_not_found.

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)

is_alert_vitals
integer

Master toggle for web-vitals budget alerts (0=no, 1=yes). Stored as 1 only while at least one budget below is > 0.

alert_lcp_ms
integer

LCP budget in ms (0 = recorded but not alerting; else 100-60000)

alert_fcp_ms
integer

FCP budget in ms (0 = recorded but not alerting; else 100-60000)

alert_ttfb_ms
integer

TTFB budget in ms (0 = recorded but not alerting; else 50-30000)

alert_cls_x1000
integer

CLS budget ×1000 (0 = recorded but not alerting; else 10-10000; 100 = CLS 0.10)

is_alert_dead_elements
integer

Alert when a page element keeps failing (0=no, 1=yes); detection itself always runs

dead_element_checks
integer

Consecutive failing checks before the dead-element alert fires (1-10)

dead_element_watch_types
string

Comma-separated element types to alert on, from: image,script,css,other

dead_element_ignore
string

Ignore globs, one per line — matching elements are recorded but never alert

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,
  • "is_alert_vitals": 0,
  • "alert_lcp_ms": 2500,
  • "alert_fcp_ms": 0,
  • "alert_ttfb_ms": 800,
  • "alert_cls_x1000": 100,
  • "is_alert_dead_elements": 0,
  • "dead_element_checks": 3,
  • "dead_element_watch_types": "image,script,css",
  • "dead_element_ignore": "*/pixel/*.gif",
  • "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. The incident must belong to the monitor in the path; otherwise 404 incident_not_found.

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 monitoring check logs for the specified speed monitor, newest first. Defaults to the last 14 days and a page size of 10; use limit/offset to page through the window. date_start is raised to the account plan's history retention floor.

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

Page size (default 10, capped at 500)

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 web-vitals & breakdown chart data

Consolidated per-check history for the speed detail page: median-bucketed series for full page load, lab web vitals (TTFB/FCP/LCP/CLS), own-vs-third-party time, requests, hosts and per-type transfer sizes; plus range summary, the latest check per location, the configured budgets, and the locations present in the range. Vitals are lab values measured in the same Chrome run as the load time; checks from probes that do not record vitals yet are excluded from the vitals series (never zero-filled).

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Monitor ID

query Parameters
date_start
integer

Start as Unix timestamp (defaults to 24 hours ago)

date_end
integer

End as Unix timestamp (defaults to now)

location
string
Example: location=all

Probe server ID to filter to, or 'all' (default) for the cross-location median

Responses

Response samples

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

Get dead/broken elements

Returns the dead-element report for the monitored page: every failing asset seen in the range with its type, sighting streaks, status and probe locations, plus a bucketed sightings series, the ignore-list hit count and the monitor alert config.

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
{
  • "report": {
    }
}

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 one CLOSED incident of the specified monitor. The currently open incident cannot be deleted.

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. May be sent alone or together with configuration fields — both are then applied, and the pause only after the rest of the payload has validated.

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. A virus check is one server-side Google Web Risk lookup, so the shared incident keys that describe a probe fan-out and its HTTP exchange (servers, response headers/body, traceroute, screenshot) are always empty for this family.

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 CLOSED virus/malware incident and its associated status page threads. The incident must belong to the monitor in the path; otherwise 404 incident_not_found. The monitor's currently open incident cannot be deleted (409).

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 virus scan check logs for the specified monitor, newest first. Defaults to the last 90 days; use limit/offset to page through the window. date_start is raised to the account plan's history retention floor.

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. The incident must belong to the monitor in the path; otherwise 404 incident_not_found.

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" "heartbeat" "blacklist" "dns" "api"

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" "heartbeat" "blacklist" "dns" "api"

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

monitors[heartbeat][]
Array of integers

Filter by specific heartbeat 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

monitors[heartbeat][]
Array of integers

Filter by specific heartbeat 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" "heartbeat" "blacklist" "dns" "api"

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" "heartbeat" "blacklist" "dns" "api"

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, server, API, DNS, blacklist). Supports filtering by date range, monitor, status, and location. Heartbeat pings are returned when the monitor filter names heartbeat monitors only.

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

monitors[api][]
Array of integers

Filter by specific API monitor IDs (one row per run)

monitors[dns][]
Array of integers

Filter by specific DNS monitor IDs (one row per sweep; these rows carry no probe location)

monitors[blacklist][]
Array of integers

Filter by specific blacklist monitor IDs (one row per sweep; these rows carry no probe location)

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" "heartbeat" "server" "api" "dns" "blacklist"

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
query Parameters
scope
string
Value: "account"

Optional scope filter. Defaults to the operator-scoped list (an operator sees only the contacts it owns). Set to "account" to return every contact on the account regardless of the owning operator.

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
user_id
integer

Reassign the contact to this user/operator (0 = main user). Account owner only.

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "string",
  • "value": "string",
  • "integration_id": 0,
  • "user_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, 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 or Twilio phone). 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)

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 — plus a computed schedule decoration: a truthful computed_status (running/recurring/scheduled/expired/invalid), a structured schedule block, the current/next occurrence, and every concrete occurrence intersecting the requested horizon. All occurrence epochs are computed in the account timezone. The metadata object reports the total count, the account timezone, the server now, and one entry per horizon day.

Authorizations:
bearerAuth
query Parameters
horizon_days
integer [ 1 .. 31 ]
Default: 14

How many account-local days (starting today) to expand occurrences over. Clamped to 1..31.

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
heartbeat
integer
blacklist
integer
dns
integer
api
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 (published for both one-time and recurring windows)

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,
  • "heartbeat": 0,
  • "blacklist": 0,
  • "dns": 0,
  • "api": 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, server, heartbeat, api). Use the returned IDs when building the individual_monitors selection.

Authorizations:
bearerAuth

Responses

Response samples

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

Preview the concrete occurrences of a maintenance draft without saving it

Validates a create/update payload with the exact same schedule rules as POST/PATCH and, when valid, expands the draft into its next occurrences (up to 5, computed in the account timezone over the next 400 days) plus the first overlap with any other maintenance window. Name/title/summary problems never block a preview — they are returned as non-blocking warnings, because the preview concerns the schedule, not the announcement. Always responds 200; inspect data.valid.

Authorizations:
bearerAuth
Request Body schema: application/json
name
string

Maintenance window name (missing/short name only produces a warning here)

type
required
string
Enum: "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; next-day ends encoded as hour+24, e.g. 2630)

days
Array of strings
weeks
Array of strings
selection_mode
string
Enum: "all" "by_type" "by_group" "individual"
status_page
integer
status_summary
string
exclude_id
integer

Window id to exclude from the overlap scan (edit mode: the window being edited)

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "type": "once",
  • "time_start": "string",
  • "time_end": "string",
  • "days": [
    ],
  • "weeks": [
    ],
  • "selection_mode": "all",
  • "status_page": 0,
  • "status_summary": "string",
  • "exclude_id": 0
}

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 (same shape as GET /{id}, including the additive selection_mode and *_list array fields). 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
heartbeat
integer
blacklist
integer
dns
integer
api
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,
  • "heartbeat": 0,
  • "blacklist": 0,
  • "dns": 0,
  • "api": 0,
  • "individual_monitors": [
    ],
  • "individual_groups": [
    ],
  • "status_page": 0,
  • "status_summary": "string"
}

Delete all expired one-time maintenance windows

Permanently deletes every one-time (type once) maintenance window of the authenticated account whose end time is in the past. Unlike deleting a single window, resolved status-page threads and their history (updates and page targeting) are PRESERVED; only unresolved announcement threads are removed together with the windows. Returns how many windows were deleted.

Authorizations:
bearerAuth

Responses

Response samples

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

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": {
    }
}

Count the confirmed subscribers who would actually be emailed

Computes how many confirmed email subscribers would be notified for the affected monitor/incident across every owned status page that displays it, mirroring the incident notification fan-out. Only pages with subscriptions enabled (subscribe_enabled=1) contribute; pages with subscriptions off count 0 so the figure reflects who is ACTUALLY emailed. Scoped to the authenticated account.

Authorizations:
bearerAuth
query Parameters
status_page_id
integer

Restrict to a single owned status page

monitor_type
string
Enum: "uptime" "fpl" "transaction"

Affected monitor type

monitor_id
integer

Affected monitor (site) ID

incident_id
integer

Affected incident ID

Responses

Response samples

Content type
application/json
{
  • "total": 0,
  • "pages": [
    ]
}

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

next_update_at
integer

"Next update by" ETA for the initial update (epoch seconds; 0 or omit = none)

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": [
    ],
  • "next_update_at": 0
}

Response samples

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

Find the existing thread for a monitor or incident

Looks up whether a status thread already exists for the given monitor (monitor_type + monitor_id) and/or incident (incident_id), so the control panel can offer to continue posting to it instead of opening a duplicate. An UNRESOLVED thread is preferred; if none is open the most recent RESOLVED thread for the same incident/monitor is returned with resolved=true so the client can offer to reopen it. Returns thread=null, resolved=false when nothing matches. Scoped to the authenticated account.

Authorizations:
bearerAuth
query Parameters
monitor_type
string
Enum: "uptime" "fpl" "transaction"

Monitor type of an incident thread

monitor_id
integer

Monitor (site) ID

incident_id
integer

Incident ID

Responses

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)

status_page_id
integer

Status page ID (required for general threads)

Array of objects

Affected monitors

Responses

Request samples

Content type
application/json
{
  • "title": "string",
  • "summary": "string",
  • "status_page_id": 0,
  • "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" "update" "closed"

Status progression value

message
required
string

Update message (min 10 chars)

next_update_at
integer

"Next update by" ETA for this update (epoch seconds; 0 or omit = none)

Responses

Request samples

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

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)

next_update_at
integer

"Next update by" ETA for this update (epoch seconds; 0 or omit = none)

Responses

Request samples

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

Response samples

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

Get presentation settings for a status page

Returns the default theme and subscribe toggle for one owned status page.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

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

Update presentation settings for a status page

Sets the default theme (system|light|dark) and whether the public Subscribe affordance is shown.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+
Request Body schema: application/json
default_theme
string
Enum: "system" "light" "dark"
subscribe_enabled
integer
Enum: 0 1
show_name_with_logo
integer
Enum: 0 1
visibility
string
Enum: "public" "password" "private"
password
string

New shared password (>=10 chars) when visibility=password; omit to keep the current one

clear_password
boolean

Remove protection (revert to public + revoke grants)

access_ip_allowlist
string

Newline/comma-separated IPs/CIDRs required when visibility=private

Responses

Request samples

Content type
application/json
{
  • "default_theme": "system",
  • "subscribe_enabled": 0,
  • "show_name_with_logo": 0,
  • "visibility": "public",
  • "password": "string",
  • "clear_password": true,
  • "access_ip_allowlist": "string"
}

List email subscribers for a status page

Returns the email subscribers of one owned status page with their confirmation state, plus a metadata.total / metadata.confirmed count.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Remove an email subscriber from a status page

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+
subscriberId
required
integer\d+

Responses

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.

monitors_blacklist
Array of integers

Specific blacklist monitor IDs to include. There is no all_blacklist toggle — blacklist monitors are picked individually or covered by all_monitors.

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": [
    ],
  • "monitors_blacklist": [
    ],
  • "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.

monitors_blacklist
Array of integers

Specific blacklist monitor IDs to include. There is no all_blacklist toggle — blacklist monitors are picked individually or covered by all_monitors.

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": [
    ],
  • "monitors_blacklist": [
    ],
  • "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.

Roles & permissions matrix

Returns the fixed five-role model and the permission matrix, serialized from the very map the backend enforces on every request (RoleCapabilities) — the matrix shown on /cp/roles can never disagree with enforcement. Cell values: y = full, v = partial (footnoted), n = no access, o = optional. Columns are in owner, admin, editor, viewer, billing order.

Authorizations:
bearerAuth

Responses

Response samples

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

Recent team access changes

Returns the most recent access-change events on the account (invites, role changes, member removals, invite resends) for the audit card on the team-members page. Visible to the account owner and Admin operators; the sentence to render is "{actor} {detail}".

Authorizations:
bearerAuth

Responses

Response samples

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

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)

time_zone
integer

Timezone id (1-127) the alert window is evaluated in. 0 = inherit the account timezone.

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,
  • "time_zone": 0
}

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
time_zone
integer

Timezone id (1-127) the alert window is evaluated in. 0 = inherit the account timezone.

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,
  • "time_zone": 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"
}

Re-send the activation email to a pending operator

Re-sends the activation (direct-access) email for an operator who has not yet activated their access, reusing the invite token issued at creation. Owner-only; returns 404 if the operator does not exist, does not belong to the account, or has already activated.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Responses

Response samples

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

Reset a team member's two-factor authentication

Turns off two-factor authentication for one operator (sub-user) so a member who can no longer receive their own 2FA codes can sign in again and re-enrol. Owner + Admin only (team management), account-scoped, and written to the team audit log; the member is emailed that it happened. Does not affect the account owner's own 2FA. Returns 400 when the member already has 2FA off.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Responses

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, a fully-qualified logo URL (relative filenames are expanded to the CDN uploads base URL), the full colour map, and live usage counts (how many scheduled reports and monitors currently reference the theme). 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": {
    }
}

Duplicate a branding theme

Creates a copy of an existing theme — same colours, name suffixed with " (copy)", and a physical copy of the logo file (so deleting either theme later cannot orphan the other's logo). The source 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
{
  • "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"
}

Alert Groups

List active (open) alert groups

Returns the account's OPEN alert groups (including singletons), newest first. Each GroupCard carries the members, distinct-monitor counts, acknowledgement state (with MTTA), notifications-sent tally and the storm-math counterfactual (without_grouping).

Authorizations:
bearerAuth

Responses

Get one alert group

Returns one owned alert group as a GroupCard plus detail extras: events, ladder rows (per-step schedule/status), the notifications ledger, a policy snapshot and ack_url_enabled. Tolerates a purged escalation state (ladder renders empty).

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Alert group ID

Responses

Acknowledge an alert group

Pauses the group's escalation ladder (pending steps and repeats) without closing the incident; monitoring continues and the recovery notice still goes out. Records who acknowledged and the MTTA. Operators are allowed (acknowledging is operational, unlike policy CRUD).

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Alert group ID

Responses

Un-acknowledge an alert group

Clears the acknowledgement and re-arms the ladder from the current step (steps whose scheduled time passed while paused fire immediately). Invalidates every previously distributed ack link (ack_epoch bump). Operators are allowed.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Alert group ID

Responses

Alerting Settings

Get incident grouping & acknowledgement settings

Returns the account's grouping/acknowledgement settings (defaults when never saved: grouping on, scope policy, 3-minute rolling window, 3-minute update throttle, acknowledgement links on, no auto-resume).

Authorizations:
bearerAuth

Responses

Update incident grouping & acknowledgement settings

Partial update — only supplied fields change. Catalogues: window_minutes 1|2|3|5|10, window_mode rolling|fixed, throttle_minutes 1|3|5|10, group_scope policy|policy+group, ack_resume_minutes 0|30|60|120 (0 = never). Settings snapshot into groups at open — changes affect only NEW groups. Operators cannot update these settings.

Authorizations:
bearerAuth
Request Body schema: application/json
grouping_enabled
boolean
group_scope
string
Enum: "policy" "policy+group"
window_minutes
integer
Enum: 1 2 3 5 10
window_mode
string
Enum: "rolling" "fixed"
throttle_minutes
integer
Enum: 1 3 5 10
ack_links_enabled
boolean
ack_resume_minutes
integer
Enum: 0 30 60 120

Responses

Request samples

Content type
application/json
{
  • "grouping_enabled": true,
  • "group_scope": "policy",
  • "window_minutes": 1,
  • "window_mode": "rolling",
  • "throttle_minutes": 1,
  • "ack_links_enabled": true,
  • "ack_resume_minutes": 0
}

API Monitors

List all API monitors

Returns every API monitor for the authenticated account with status decorations (is_up, is_paused, is_maintenance, steps_count, last_check).

Authorizations:
bearerAuth

Responses

Create an API monitor

Creates a multi-step API monitor. Returns 422 on validation errors, 403 when the plan pool is exhausted.

Authorizations:
bearerAuth

Responses

Get an API monitor

Full detail: monitor, steps (asserts/extracts decoded), variables (secrets masked), last_run and locations.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Update an API monitor

True partial update: omitted fields keep their stored values; a secret variable sent with an empty value keeps the stored secret. Sending is_paused pauses/resumes the monitor.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Delete an API monitor

Permanently deletes an API monitor, its steps, run history, incidents and contact bindings.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

patch_api-v2-api-monitor-update

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Incidents for an API monitor

Newest-first incident history.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Per-run check log

Newest-first page of the append-only run log: one row per run of the step chain with its timestamp, total duration, pass/fail, the failing step + error, the pass count and the probe. Kept per plan retention, like every other monitor family's check history.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

One run in full

The summary of a single run plus every step of the chain as it was recorded: pass/fail/optional-failed/not-run, HTTP status, total and phase timings (DNS, connect, TLS, wait, receive), response size, the assertion tally and any error. Step names come from the monitor's current definition, so a step renamed since the run shows its name of today and a step deleted since is labelled by its number.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+
time
required
string\d+

Responses

Delete an API monitor incident

Deletes one CLOSED incident record. The currently open incident cannot be deleted.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+
incidentId
required
string\d+

Responses

Detail-page summary

One payload for the detail page: decorated monitor + steps, availability, incidents, run counts, per-step averages/p95/share/delta, hourly stacked series, last run and recent activity.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Run a builder test (unsaved editor state)

Runs the supplied step chain synchronously through a monitoring probe and returns the full per-step result. Rate limited to 10 runs/minute per account.

Authorizations:
bearerAuth

Responses

Run a builder test against a saved monitor

Like /test, but stored secret values are merged into masked incoming variables and the result is persisted as the monitor's last run.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Authentication

Exchange credentials for an API key (mobile/native sign-in)

Verifies an account's email and password and returns a Bearer API key the native app stores securely and sends on every later /api/v2 request. If the account has two-factor authentication enabled, the first call (without a code) emails a one-time code and responds 401 code=2fa_required; the app then re-calls with that code in the code field to obtain the key. The returned api_key is the FULL secret and is revealed only once — persist it in secure device storage. This endpoint is public (no Bearer required to reach it) and is rate limited per client IP.

Authorizations:
bearerAuth
Request Body schema: application/json
email
required
string

Account email address

password
required
string

Account password

code
string

Two-factor code (required only when the account has 2FA enabled; obtained from the email sent on the first attempt)

device_name
string

Optional label stored on the minted key (shown in the API keys list)

Responses

Request samples

Content type
application/json
{
  • "email": "[email protected]",
  • "password": "string",
  • "code": "string",
  • "device_name": "iPhone 15"
}

Response samples

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

Blacklist Monitors

List all blacklist monitors

Returns every blacklist monitor for the authenticated account.

Authorizations:
bearerAuth

Responses

Create a blacklist monitor

Creates a blacklist monitor. The baseline sweep runs within a minute of creation.

Authorizations:
bearerAuth

Responses

Get a blacklist monitor

Returns one blacklist monitor with its contact bindings and groups (editor prefill).

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Update a blacklist monitor

Partial update: omitted fields keep their stored values. Sending is_paused pauses/resumes the monitor; it can be combined with other fields, in which case the request is validated in full before anything is written, so a 422 leaves the monitor untouched. Watch-config changes (target, dedicated IPs, tiers) apply on the next sweep, pulled forward to within a minute.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Delete a blacklist monitor

Permanently deletes a blacklist monitor, its listing history, incidents and contact bindings.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

patch_api-v2-blacklist-update

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Detail-page summary

The whole detail page in one payload: decorated monitor, every listing episode, the last sweep's decoded answers, incidents, the enabled list registry and the watched resources.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Re-check all lists now

Queues an on-demand sweep: the per-minute sweep cron picks the monitor up on its next tick (within a minute). Rate limited to 10 rechecks/minute per account.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Incidents for a blacklist monitor

Newest-first incident history (listing alerts and their recoveries).

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Per-sweep check log

Newest-first page of the append-only sweep log: one row per sweep with its timestamp, fan-out duration, queried-zone count and what it found (active/informational listings, check errors). Kept per plan retention, like every other monitor family's check history.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

One sweep in full

The counters of a single sweep plus the per-list answers behind them: which zone, which watched address, what it replied and what that reply decodes to. Clean answers are not listed individually — they are the difference between the queried-zone count and the answers returned here. cells_source states where the per-list view came from: log is the sweep's own stored answers, episodes means the sweep predates per-list storage and only its listings could be rebuilt from the listing history, and unavailable means neither is left.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+
time
required
string\d+

Responses

Delete a blacklist incident

Deletes one CLOSED incident record. The currently open incident cannot be deleted.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+
incidentId
required
string\d+

Responses

Devices

Register a push-notification device token

Registers (or refreshes) an APNs device token so the authenticated account can receive outage alerts on that device. The token is stored as a push contact scoped to your account; calling this again with the same token is idempotent and returns the existing registration rather than creating a duplicate.

Authorizations:
bearerAuth
Request Body schema: application/json
token
required
string

APNs device token issued to the app

device_name
string

Optional label shown for the device

Responses

Request samples

Content type
application/json
{
  • "token": "string",
  • "device_name": "iPhone"
}

Response samples

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

Unregister a push-notification device token

Removes a previously registered APNs device token so the device stops receiving alerts; used on logout or uninstall. Supply the token in the JSON body or as a ?token= query parameter. The call is idempotent — a token that is not (or no longer) registered still returns success.

Authorizations:
bearerAuth
query Parameters
token
string

APNs device token to remove (alternative to the JSON body)

Request Body schema: application/json
token
string

APNs device token to remove

Responses

Request samples

Content type
application/json
{
  • "token": "string"
}

Response samples

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

DNS Monitors

List all DNS monitors

Returns every DNS monitor for the authenticated account.

Authorizations:
bearerAuth

Responses

Create a DNS monitor

Creates a DNS monitor. The baseline sweep runs within a minute of creation.

Authorizations:
bearerAuth

Responses

Get a DNS monitor

Returns one DNS monitor with its contact bindings and groups (editor prefill).

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Update a DNS monitor

Partial update: omitted fields keep their stored values. Sending is_paused pauses/resumes the monitor, on its own or alongside other fields. Watch-config changes (zone, watched names, groups, dynamic flags) apply on the next sweep, pulled forward to within a minute; a zone change resets the baseline entirely.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Delete a DNS monitor

Permanently deletes a DNS monitor, its episode history, incidents and contact bindings.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

patch_api-v2-dns-update

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Detail-page summary

The whole detail page in one payload: decorated monitor (including baseline + nameservers), the newest episodes, the last sweep's transcript, the 24 h nameserver roll-up, incidents, the effective watch matrix and the SOA serial state.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Sweep now

Queues an on-demand sweep: the per-minute sweep cron picks the monitor up on its next tick (within a minute). Rate-limited per account.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Acknowledge a change episode

Acknowledges an ACTIVE change episode: the new answer becomes the baseline (acknowledgment is only for changes you keep). Health findings and non-active episodes cannot be acknowledged. Body: {note?: string, max 500 chars}.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+
changeId
required
string\d+

Responses

Mark a changed record as dynamic

"This record legitimately rotates": adds the episode's watch key to the dynamic list (presence + type compared from now on, values ignored) AND acknowledges the episode.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+
changeId
required
string\d+

Responses

Incidents for a DNS monitor

Newest-first incident history (change/health alerts and their recoveries).

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Per-sweep check log

Newest-first page of the append-only sweep log: one row per sweep with its timestamp, slowest-nameserver answer time, query count, servers answered and the active change/health episode counts. Kept per plan retention, like every other monitor family's check history.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

One sweep in full

The counters of a single sweep plus the per-nameserver answers behind them: each authoritative server's reachability, mean answer time, SOA serial, AA bit and TCP/recursion probes, and every watched record as THAT server answered it (rcode, TTL, RRset, query time). cells_source states where the view came from: log is the sweep's own stored answers, episodes means the sweep predates per-cell storage and only the change/health episodes open at that moment could be rebuilt, and unavailable means neither is left.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+
time
required
string\d+

Responses

Delete a DNS incident

Deletes one CLOSED incident record. The currently open incident cannot be deleted.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+
incidentId
required
string\d+

Responses

Escalation Policies

List escalation policies

Returns the account's escalation policies with their ordered steps, repeat settings and monitor usage ({count, sample} across all monitor types, uptime first).

Authorizations:
bearerAuth

Responses

Create an escalation policy

Creates an escalation policy. Requires a name (1..100 chars) and 1..10 steps; step 0 fires at t+0 (its wait is forced to 0), later steps wait 1..1440 minutes after the previous step. Each step takes up to 30 recipient entries ({id, is_team, is_user, is_operator, is_individual_contact} with exactly one flag set). Repeat is optional (scope last|all, every 5..1440 minutes, 1..10 extra rounds). Operators cannot create policies.

Authorizations:
bearerAuth
Request Body schema: application/json
name
string
Array of objects
object

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "steps": [
    ],
  • "repeat": {
    }
}

Get a single escalation policy

Returns one owned escalation policy with its ordered steps, repeat settings and monitor usage.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Policy ID

Responses

Delete an escalation policy

Deletes an owned escalation policy and its steps, detaches it from every monitor (those monitors fall back to their own all-at-once recipient list) and cancels any in-flight escalations on it. Returns the number of detached monitors. Operators cannot delete policies.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Policy ID

Responses

Update an escalation policy

Partially updates an owned escalation policy (404 if not owned). Only supplied fields change; a supplied steps array fully replaces the existing steps. Operators cannot update policies.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Policy ID

Responses

Groups

List monitor groups

Returns every monitor group on your account — including groups that currently hold no monitors — with the IDs the monitor endpoints' groups field expects. Group-scoped operators only see the groups their access is limited to. Results are not paginated.

Authorizations:
bearerAuth

Responses

Response samples

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

Create a monitor group

Creates a monitor group. Requires a name (1..100 characters) and a HEX color like #e66465. Group-scoped operators cannot create groups.

Authorizations:
bearerAuth
Request Body schema: application/json
name
required
string
color
required
string

Responses

Request samples

Content type
application/json
{
  • "name": "Production",
  • "color": "#e66465"
}

Response samples

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

Delete a monitor group

Deletes a monitor group and removes its monitor associations (the monitors themselves are kept). Maintenance windows covering the group stop covering it.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Group ID

Responses

Response samples

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

Update a monitor group

Partially updates a monitor group: only the supplied fields change. Groups outside a group-scoped operator's access respond 404, indistinguishable from ones that do not exist.

Authorizations:
bearerAuth
path Parameters
id
required
integer\d+

Group ID

Request Body schema: application/json
name
string
color
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "color": "#5454e6"
}

Response samples

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

Heartbeat Monitors

List all heartbeat monitors

Returns every heartbeat monitor for the authenticated account.

Authorizations:
bearerAuth

Responses

Create a heartbeat monitor

Creates a heartbeat monitor and mints its unique ping token. The monitor arms itself on the first real ping. The optional integer timezone (a config/time_zone.php id, 1-127) is the timezone a cron schedule is evaluated in; 0, the default, uses the account timezone.

Authorizations:
bearerAuth

Responses

Validate a cron expression and preview its next runs

Returns validity, a human-readable description and the next expected run times. Accepts an optional integer timezone (a config/time_zone.php id, 1-127) and previews the runs in that zone; 0 or absent previews them in the account timezone.

Authorizations:
bearerAuth

Responses

Get a heartbeat monitor

Returns one heartbeat monitor, including its ping URL.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Update a heartbeat monitor

Partial update: omitted fields keep their stored values. Sending is_paused pauses/resumes the monitor; resuming grants one fresh schedule window before the sweep may alert. Changing timezone recomputes the next expected ping immediately, so an armed monitor does not keep the previous zone deadline.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Delete a heartbeat monitor

Permanently deletes a heartbeat monitor, its ping log, incidents and contact bindings.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

patch_api-v2-heartbeat-update

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Regenerate the ping token

Mints a new ping token. The old ping URL stops working instantly.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Send a test ping

Records a manual test ping (visible in the ping log and live feed; never arms the monitor or moves the schedule).

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Ping log

Newest-first ping log. Pass since_id to fetch only pings newer than a known id (live feed polling).

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Detail-page summary

Stat-strip numbers, 12h pulse ping times, per-bucket received counts and incidents in one payload. The late_pings key is always returned as an empty array — this endpoint skips the dedicated late-ping read — while the pings_late counter from the totals aggregate is unaffected.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Incidents for a heartbeat monitor

Newest-first incident history (missed pings, reported failures, runtime overruns).

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Delete a heartbeat incident

Deletes one CLOSED incident record. The currently open incident cannot be deleted.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+
incidentId
required
string\d+

Responses

Location Profiles

List location profiles

Returns the authenticated account's saved location profiles together with the code-defined built-in profiles (Europe, North America, ... EU/GDPR). Each profile carries its RESOLVED probe-id list.

Authorizations:
bearerAuth

Responses

Create a location profile

Creates a user-owned location profile. kind "static" requires a probes int[] (resolved selection must contain at least 6 probes); kind "rule" requires a rule (regions/countries); kind "all" needs neither.

Authorizations:
bearerAuth
Request Body schema: application/json
name
string
kind
string
Enum: "static" "rule" "all"
probes
Array of integers
rule
object
color
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "kind": "static",
  • "probes": [
    ],
  • "rule": { },
  • "color": "string"
}

Delete a location profile

Deletes an owned location profile and reaps its provenance links.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Update a location profile

Partially updates an owned location profile (404 if the profile does not exist or is not owned by the account). Re-validates name and the resolved probe selection.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Apply a location profile to monitors

Resolves the profile (owned by id, or a built-in via "builtin:") to its probe list, enforces the minimum-6 rule, and writes the selection into each listed monitor's probes column (parity-identical to a manual hand-pick). Every monitor is ownership-checked. Returns a per-monitor result.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+|builtin:[a-z-]+
Request Body schema: application/json
Array of objects
Array
id
integer
type
string
Enum: "uptime" "speed" "ssl" "transaction" "api" "dns"

Responses

Request samples

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

Monitor Templates

List monitor templates

Returns the authenticated account's saved monitor templates, newest first, each with its decoded create-payload settings. A group-scoped operator only receives templates whose source monitor is inside their scope.

Authorizations:
bearerAuth

Responses

Save a monitor as a template

Stores a named snapshot of a monitor's create payload. monitor_type is the monitor family key (uptime|ssl|fpl|domain|virus|rum|heartbeat|blacklist|dns|api); settings is the JSON body the family's create endpoint accepts.

Authorizations:
bearerAuth
Request Body schema: application/json
name
string
description
string
monitor_type
string
settings
object
source_monitor_id
integer
source_monitor_name
string

Responses

Request samples

Content type
application/json
{
  • "name": "string",
  • "description": "string",
  • "monitor_type": "string",
  • "settings": { },
  • "source_monitor_id": 0,
  • "source_monitor_name": "string"
}

Delete a monitor template

Deletes an owned template. Monitors already created from it are untouched — templates are snapshots.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Rename a monitor template

Partially updates an owned template's name and/or description (404 if the template does not exist or is not owned by the account). Settings are immutable — templates are snapshots.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses

Record a template use

Increments the template's usage counter and stamps last_used_at. Called by the control panel after a monitor was successfully created from the template.

Authorizations:
bearerAuth
path Parameters
id
required
string\d+

Responses