Monitors

Notes
Expert level
The API key should be sent as a Bearer token in the Authorization header of the request. Get your API key.
List

API endpoint:

GET
https://monitoringdaddy.com/api/v1/monitors

Request example:

curl --location --request GET 'https://monitoringdaddy.com/api/v1/monitors' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {api_key}'
Parameter
Type
Description
search
optional string
The search query.
search_by
optional string
Search by. Possible values are: name for Name, url for URL. Defaults to: name.
kind
optional string
Narrows the list to one kind of check. Without it every kind is returned together. Possible values are: uptime, ssl, domain, api, watch, heartbeat, premium. watch returns page watches, heartbeat returns cron jobs and scheduled tasks, and premium returns the page watches that can only be read through premium fetching.
status_page_id
optional integer
Status page ID.
sort_by
optional string
Sort by. Possible values are: id for Date created, name for Name, url for URL. Defaults to: id.
sort
optional string
Sort. Possible values are: desc for Descending, asc for Ascending. Defaults to: desc.
per_page
optional integer
Results per page. Possible values are: 10, 25, 50, 100. Defaults to: 10.
Show

API endpoint:

GET
https://monitoringdaddy.com/api/v1/monitors/{id}

Request example:

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

API endpoint:

POST
https://monitoringdaddy.com/api/v1/monitors

Request example:

curl --location --request POST 'https://monitoringdaddy.com/api/v1/monitors' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}' \
--data-urlencode 'name={name}' \
--data-urlencode 'url={url}' \
--data-urlencode 'interval={interval}'
Parameter
Type
Description
name
required string
Name.
url
required string
URL.
interval
required integer
Interval. Possible values are: 60, 180, 300, 600, 900, 1800, 3600.
alert_condition
optional string
Alert condition. Possible values are: url_unavailable for URL becomes unavailable, url_text for URL response contains text, url_no_text for URL response does not contain text. Defaults to: url_unavailable.
alert_text_lookup
optional string
Text to be looked-up to trigger alerts. Only works with alert_condition field set to url_text, url_no_text.
request_method
optional string
Request method. Possible values are: GET, POST, HEAD, PUT, DELETE, PATCH, OPTIONS. Defaults to: GET.
request_headers[index][key]
optional string
Request header name.
request_headers[index][value]
optional string
Request header value.
request_auth_username
optional string
Username for Basic HTTP request authentication.
request_auth_password
optional string
Password for Basic HTTP request authentication. Write-only: it can be set and changed, but is never returned by the API. It is stored encrypted, and handing it back would defeat that.
type
optional string
Which kind of monitor to create. Possible values are: uptime, ssl, domain, api. Defaults to: uptime.
change_detection
optional integer
Set to 1 to create a page watch rather than an uptime check. Page watches have their own allowance on your plan. Supporting fields: change_selector, change_ignore_selectors, change_threshold, change_min_words, change_ignore_numbers, change_trigger_keywords, change_trigger_mode.
heartbeat
optional integer
Set to 1 to create a cron job or scheduled task monitor. These have no address of their own — the response carries a ping URL for your job to call — so url, interval, request_method, alert_condition are not required. Cron jobs have their own allowance on your plan.
heartbeat_period
optional integer
How often the job is expected to check in, in seconds. Required when heartbeat is set. Possible values are: 300, 900, 1800, 3600, 10800, 21600, 43200, 86400, 172800, 604800.
heartbeat_grace
optional integer
How late a check-in may be before the run is treated as missed, in seconds. Required when heartbeat is set. Between 60 and 86400.
cache_buster
optional integer
Cache buster. Possible values are: 0 for Disabled, 1 for Enabled. Defaults to: 0.
ssl_alert_days
optional integer
The number of days before SSL certificate expiration to receive an alert. Possible values are: 0, 1, 2, 3, 7, 14, 30, 60.
domain_alert_days
optional integer
The number of days before domain name expiration to receive an alert. Possible values are: 0, 1, 2, 3, 7, 14, 30, 60.
maintenance_start_at
optional string
Maintenance starting date in Y-m-dTH:i:s format.
maintenance_end_at
optional string
Maintenance ending date in Y-m-dTH:i:s format.
alerts[index][key]
optional string
Alert channels. Possible values are: email for Email, webhook for Webhook, slack for Slack, teams for Microsoft Teams, discord for Discord, flock for Flock, telegram for Telegram, sms for SMS.
alerts[index][value]
optional string
Value of the alert.
Update

API endpoint:

PUT PATCH
https://monitoringdaddy.com/api/v1/monitors/{id}

Request example:

curl --location --request PUT 'https://monitoringdaddy.com/api/v1/monitors/{id}' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--header 'Authorization: Bearer {api_key}'
Parameter
Type
Description
name
optional string
Name.
url
optional string
URL.
interval
optional integer
Interval. Possible values are: 60, 180, 300, 600, 900, 1800, 3600.
alert_condition
optional string
Alert condition. Possible values are: url_unavailable for URL becomes unavailable, url_text for URL response contains text, url_no_text for URL response does not contain text. Defaults to: url_unavailable.
alert_text_lookup
optional string
Text to be looked-up to trigger alerts. Only works with alert_condition field set to url_text, url_no_text.
request_method
optional string
Request method. Possible values are: GET, POST, HEAD, PUT, DELETE, PATCH, OPTIONS. Defaults to: GET.
request_headers[index][key]
optional string
Request header name.
request_headers[index][value]
optional string
Request header value.
request_auth_username
optional string
Username for Basic HTTP request authentication.
request_auth_password
optional string
Password for Basic HTTP request authentication. Write-only: it can be set and changed, but is never returned by the API. It is stored encrypted, and handing it back would defeat that.
type
optional string
Which kind of monitor to create. Possible values are: uptime, ssl, domain, api. Defaults to: uptime.
change_detection
optional integer
Set to 1 to create a page watch rather than an uptime check. Page watches have their own allowance on your plan. Supporting fields: change_selector, change_ignore_selectors, change_threshold, change_min_words, change_ignore_numbers, change_trigger_keywords, change_trigger_mode.
heartbeat
optional integer
Set to 1 to create a cron job or scheduled task monitor. These have no address of their own — the response carries a ping URL for your job to call — so url, interval, request_method, alert_condition are not required. Cron jobs have their own allowance on your plan.
heartbeat_period
optional integer
How often the job is expected to check in, in seconds. Required when heartbeat is set. Possible values are: 300, 900, 1800, 3600, 10800, 21600, 43200, 86400, 172800, 604800.
heartbeat_grace
optional integer
How late a check-in may be before the run is treated as missed, in seconds. Required when heartbeat is set. Between 60 and 86400.
cache_buster
optional integer
Cache buster. Possible values are: 0 for Disabled, 1 for Enabled.
ssl_alert_days
optional integer
The number of days before SSL certificate expiration to receive an alert. Possible values are: 0, 1, 2, 3, 7, 14, 30, 60.
domain_alert_days
optional integer
The number of days before domain name expiration to receive an alert. Possible values are: 0, 1, 2, 3, 7, 14, 30, 60.
maintenance_start_at
optional string
Maintenance starting date in Y-m-dTH:i:s format.
maintenance_end_at
optional string
Maintenance ending date in Y-m-dTH:i:s format.
alerts[index][key]
optional string
Alert channels. Possible values are: email for Email, webhook for Webhook, slack for Slack, teams for Microsoft Teams, discord for Discord, flock for Flock, telegram for Telegram, sms for SMS.
alerts[index][value]
optional string
Value of the alert.
pause
optional boolean
Pause.
Delete

API endpoint:

DELETE
https://monitoringdaddy.com/api/v1/monitors/{id}

Request example:

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