Menu
API reference
Monitors
HTTP and TCP monitors, their readings, uptime and the AI-assisted create flow.
- POST Start an AI analysis of a URL
- GET Poll an AI analysis run
- GET List monitors
- POST Create a monitor
- GET Get a monitor
- PUT Update a monitor
- DELETE Delete a monitor
- POST Pause a monitor
- POST Resume a monitor
- POST Run a check now
- GET List a monitor's checks
- GET Get one check
- GET List archived content versions
- GET List metric candidates
- GET Download an archived version
- GET Get uptime over a range
- GET Get response times over a range
- GET List anomalies
- GET Get the 90-day status history
Start an AI analysis of a URL
data.run_id and the run state; poll GET /monitors/analyze/{run} until status is completed or failed. A second analysis while one is running for the team answers 409. Counts against the plan's AI setup allowance; an unclaimed anonymous workspace has none.Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
urlstring, uri, max length 2048 requiredregionMonitorRegion: string, one of "us-east", "us-west", "eu-west", "eu-central", "ap"A region a check is probed from.
intentstring or null, max length 500What the operator wants from this monitor, in their own words.
auth_configobject or nulltypeHttpAuthType: string, one of "none", "basic", "bearer", "api_key"Authentication scheme applied to outbound monitor check requests.
usernamestring or null, max length 255passwordstring or null, max length 255tokenstring or null, max length 2048keystring or null, max length 2048headerstring or null, max length 255
Response 202 application/json
dataobject requiredrun_idstring requiredstatusany requiredstepany requiredstepsany requiredprobeany requiredprobesany requiredreasonany requiredresultany required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 409 Conflict
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/monitors/analyze" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"url": "https://example.com"
}'
const payload = {
"url": "https://example.com"
};
const response = await fetch('https://api.uptizm.com/v1/monitors/analyze', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/analyze');
$payload = <<<'JSON'
{
"url": "https://example.com"
}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/monitors/analyze",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{
"url": "https://example.com"
}''',
)
print(response.json())
Try it
ms
Poll an AI analysis run
status is queued, analyzing, completed or failed. On completed, result.data holds the proposed monitor (name, url, suggestion settings, suggested_metrics); on failed, reason says why. Poll every 2.5 seconds for up to about 150 seconds. A 404 means the run expired or belongs to another team: start a new analysis.Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| run | path | string | Yes |
Response 200 application/json
dataobject requiredrun_idstring requiredstatusany requiredstepany requiredstepsany requiredprobeany requiredprobesany requiredreasonany requiredresultany required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 An error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/monitors/analyze/RUN" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors/analyze/RUN', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/analyze/RUN');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/monitors/analyze/RUN",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
List monitors
status. Monitors read through a key never include request_headers or request_body, and credentials are stripped from url.Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| status | query | string | No | |
| per_page | query | integer, min 1, max 200 | No | Page size, clamped to 1 and the endpoint's maximum (200 on most lists). |
| cursor | query | string | No | The meta.next_cursor of the previous page. |
Response 200 application/json
dataarray of MonitorResource requiredidstring requiredteam_idstring requirednamestring requiredurlstring or null requiredtypestring requiredmethodstring, one of "get", "post", "head" requiredstatusstring requiredpaused_by_planboolean requiredWhy a paused monitor is paused: true when the plan stopped it, so the client offers an upgrade; false for a pause the customer chose.
paused_for_downtimeboolean requiredTrue when a month of nothing but down readings paused a Free monitor.
last_statusstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredcheck_interval_secinteger requiredeffective_check_interval_secinteger requiredWhat the loop actually spends, which is the stored value clamped up to the plan's floor.
timeout_secinteger requiredregionsarray of any requiredexpected_status_codeinteger requiredrequest_headersarray of anyBoth emitted so the edit form can prefill what the operator configured.
request_bodystring or nullai_modeAiMode: string, one of "off", "suggest", "auto" requiredHow much authority the AI has for a given monitor or workspace.
effective_ai_modeAiMode: string, one of "off", "suggest", "auto" requiredHow much authority the AI has for a given monitor or workspace.
ai_auto_updatesboolean requiredRead back by the monitor form's own switch.
auth_configarray of any or null requiredslo_targetnumber or null requiredescalation_policy_idstring or null requiredThe pinned paging ladder, or null to fall back to the team default.
uptime_24hstring requiredMeasured uptime over the trailing 24h, attached by the show action only (null in list/edit responses and while a monitor has no checks yet, which the client renders as "no data").
slo_down_minutes_7dstring requiredslo_observed_minutes_7dstring requiredslo_gap_minutes_7dstring requiredslo_measured_minutes_7dstring requiredslo_down_minutes_30dstring requiredslo_observed_minutes_30dstring requiredslo_gap_minutes_30dstring requiredslo_measured_minutes_30dstring requiredtagsarray of any requiredshow_on_status_pageboolean requiredonly_show_if_degradedboolean requiredfollow_redirectsboolean requiredalert_on_downboolean requiredalert_on_recoverboolean requiredssl_trackingboolean requiredanomaly_detectionboolean requiredresponse_anomaly_sensitivitystring, one of "low", "medium", "high" requiredssl_expires_atstring or null requiredssl_last_checked_atstring or null requiredssl_last_errorstring or null requiredssl_alert_threshold_daysinteger requiredis_groupboolean requiredparent_idstring or null requiredlast_checked_atstring or null requiredlast_response_msinteger or null requiredlast_probe_errorstring or null requiredSet when the EDGE refused to run a probe, which is a configuration problem on this monitor rather than an outage of its target.
last_probe_error_atstring or null requirednext_check_atstring or null requiredconsecutive_failsinteger requiredincident_thresholdinteger requiredassertion_rulesarray of any or null requiredNull for both means off: no rules asserted, no degraded threshold.
degraded_after_msinteger or null requiredmaintenance_tolerance_secinteger requireddescriptionstring or null requireddescription_sourcestring or null, one of "ai_draft", "user", null requiredsite_kindstring or null, one of "ecommerce", "saas", "api", "content", "corporate", "other", null requiredintentstring or null requiredcreated_atstring or null requiredupdated_atstring or null required
linksobject requiredfirststring or null requiredlaststring or null requiredprevstring or null requirednextstring or null required
metaobject requiredpathstring or null requiredBase path for paginator generated URLs.
per_pageinteger, min 0 requiredNumber of items shown per page.
next_cursorstring or null requiredThe "cursor" that points to the next set of items.
prev_cursorstring or null requiredThe "cursor" that points to the previous set of items.
totalnumber requiredcountsarray, max items 2 requiredavg_response_msinteger or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/monitors" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/monitors",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Create a monitor
metrics sent with it in the same write, and queues its first check. Send an Idempotency-Key so a retry cannot create it twice. The plan caps the monitor count and the shortest check_interval_sec.Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Request body application/json
namestring, max length 200 requiredurlstring, uri, max length 2048 requiredtypeMonitorType: string, one of "http" requiredSupported check protocol for a monitor.
methodHttpMethod: string, one of "get", "post", "head" requiredHTTP verb used when issuing a monitor check request.
check_interval_secinteger, min 30, max 86400 requiredtimeout_secinteger, min 1, max 30 requiredregionsarray of MonitorRegion: string, one of "us-east", "us-west", "eu-west", "eu-central", "ap" requiredexpected_status_codeinteger or null, min 100, max 599ai_modeAiMode: string, one of "off", "suggest", "auto"How much authority the AI has for a given monitor or workspace.
anomaly_detectionbooleanAbsent means the model default (true).
response_anomaly_sensitivityAnomalySensitivity: string, one of "low", "medium", "high"How far from its baseline a metric has to move before the sweep reports it.
ai_auto_updatesbooleanWhether AI may publish incident updates to the public status page for this monitor.
escalation_policy_idstring or null, uuidThe team's escalation policy that pages for this monitor's incidents.
request_headersarray of string or nullrequest_bodystring or nullslo_targetnumber or null, min 0, max 100tagsarray of string or nullshow_on_status_pagebooleanfollow_redirectsbooleanWhether a 3xx is the answer or a step on the way to it.
only_show_if_degradedbooleanalert_on_downbooleanalert_on_recoverbooleanssl_trackingbooleanssl_alert_threshold_daysinteger or null, min 1, max 365maintenance_tolerance_secinteger, one of "0", "60", "120", "180", "300", "600", "900"Maintenance tolerance in seconds; omit it for the default of 0.
metricsarray of object, max items 40Metrics to create together with the monitor, in the same write.
group_namestring or null, max length 80labelstring, max length 120 requiredtypeMetricType: string, one of "numeric", "status", "string" requiredClassification of a custom monitor metric.
sourceMetricSource: string, one of "json_path", "regex", "xpath", "header", "http_status" or nullextraction_pathstring or null, max length 500unitMetricUnit: string, one of "bytes_auto", "byte", "kilobyte", "megabyte", "gigabyte", "terabyte", "duration_auto", "millisecond", "second", "minute", "hour", "percent", "ratio", "count", "count_short", "custom" or nullthreshold_directionThresholdDirection: string, one of "high_bad", "low_bad" or nullwarn_boundnumber or nullcritical_boundnumber or nulldisplay_orderinteger or null, min 0anomaly_enabledbooleananomaly_directionMetricAnomalyDirection: string, one of "high_bad", "low_bad", "both"Which side of a baseline counts as an anomaly: high_bad, low_bad or both.
anomaly_kindMetricKind: string, one of "gauge", "counter", "count_per_period"What a numeric metric's readings measure, which decides how the sweep reads them.
anomaly_sensitivityAnomalySensitivity: string, one of "low", "medium", "high"How far from its baseline a metric has to move before the sweep reports it.
ok_valuesarray of string, min length 1, max length 120, max items 50warn_valuesarray of string, min length 1, max length 120, max items 50critical_valuesarray of string, min length 1, max length 120, max items 50unmatched_bandMetricBand: string, one of "ok", "warn", "critical" or nullkeystring, max length 40 required
auth_configobject or nulltypeHttpAuthType: string, one of "none", "basic", "bearer", "api_key"Authentication scheme applied to outbound monitor check requests.
usernamestring or null, max length 255passwordstring or null, max length 255tokenstring or null, max length 2048keystring or null, max length 2048headerstring or null, max length 255
assertion_rulesarray of string or null, max items 20incident_thresholdinteger, min 1, max 10How many consecutive failed checks open an incident, from 1 to 10.
degraded_after_msinteger or null, min 100, max 30000Null is "off" in both engines.
descriptionstring or null, max length 1000Context the AI reads as unverified and source-labelled, never a probe input.
description_sourceDescriptionSource: string, one of "ai_draft", "user" or nullsite_kindSiteKind: string, one of "ecommerce", "saas", "api", "content", "corporate", "other" or nullintentstring or null, max length 500What the operator says matters about this monitor, in their own words.
Response 201 application/json
dataMonitorResource requiredidstring requiredteam_idstring requirednamestring requiredurlstring or null requiredtypestring requiredmethodstring, one of "get", "post", "head" requiredstatusstring requiredpaused_by_planboolean requiredWhy a paused monitor is paused: true when the plan stopped it, so the client offers an upgrade; false for a pause the customer chose.
paused_for_downtimeboolean requiredTrue when a month of nothing but down readings paused a Free monitor.
last_statusstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredcheck_interval_secinteger requiredeffective_check_interval_secinteger requiredWhat the loop actually spends, which is the stored value clamped up to the plan's floor.
timeout_secinteger requiredregionsarray of any requiredexpected_status_codeinteger requiredrequest_headersarray of anyBoth emitted so the edit form can prefill what the operator configured.
request_bodystring or nullai_modeAiMode: string, one of "off", "suggest", "auto" requiredHow much authority the AI has for a given monitor or workspace.
effective_ai_modeAiMode: string, one of "off", "suggest", "auto" requiredHow much authority the AI has for a given monitor or workspace.
ai_auto_updatesboolean requiredRead back by the monitor form's own switch.
auth_configarray of any or null requiredslo_targetnumber or null requiredescalation_policy_idstring or null requiredThe pinned paging ladder, or null to fall back to the team default.
uptime_24hstring requiredMeasured uptime over the trailing 24h, attached by the show action only (null in list/edit responses and while a monitor has no checks yet, which the client renders as "no data").
slo_down_minutes_7dstring requiredslo_observed_minutes_7dstring requiredslo_gap_minutes_7dstring requiredslo_measured_minutes_7dstring requiredslo_down_minutes_30dstring requiredslo_observed_minutes_30dstring requiredslo_gap_minutes_30dstring requiredslo_measured_minutes_30dstring requiredtagsarray of any requiredshow_on_status_pageboolean requiredonly_show_if_degradedboolean requiredfollow_redirectsboolean requiredalert_on_downboolean requiredalert_on_recoverboolean requiredssl_trackingboolean requiredanomaly_detectionboolean requiredresponse_anomaly_sensitivitystring, one of "low", "medium", "high" requiredssl_expires_atstring or null requiredssl_last_checked_atstring or null requiredssl_last_errorstring or null requiredssl_alert_threshold_daysinteger requiredis_groupboolean requiredparent_idstring or null requiredlast_checked_atstring or null requiredlast_response_msinteger or null requiredlast_probe_errorstring or null requiredSet when the EDGE refused to run a probe, which is a configuration problem on this monitor rather than an outage of its target.
last_probe_error_atstring or null requirednext_check_atstring or null requiredconsecutive_failsinteger requiredincident_thresholdinteger requiredassertion_rulesarray of any or null requiredNull for both means off: no rules asserted, no degraded threshold.
degraded_after_msinteger or null requiredmaintenance_tolerance_secinteger requireddescriptionstring or null requireddescription_sourcestring or null, one of "ai_draft", "user", null requiredsite_kindstring or null, one of "ecommerce", "saas", "api", "content", "corporate", "other", null requiredintentstring or null requiredcreated_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/monitors" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: $(uuidgen)" \
-d '{
"name": "string",
"url": "https://example.com",
"type": "http",
"method": "get",
"check_interval_sec": 30,
"timeout_sec": 1,
"regions": [
"us-east"
]
}'
const payload = {
"name": "string",
"url": "https://example.com",
"type": "http",
"method": "get",
"check_interval_sec": 30,
"timeout_sec": 1,
"regions": [
"us-east"
]
};
const response = await fetch('https://api.uptizm.com/v1/monitors', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors');
$payload = <<<'JSON'
{
"name": "string",
"url": "https://example.com",
"type": "http",
"method": "get",
"check_interval_sec": 30,
"timeout_sec": 1,
"regions": [
"us-east"
]
}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
'Idempotency-Key: '.uniqid('', true),
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/monitors",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
data=r'''{
"name": "string",
"url": "https://example.com",
"type": "http",
"method": "get",
"check_interval_sec": 30,
"timeout_sec": 1,
"regions": [
"us-east"
]
}''',
)
print(response.json())
Try it
ms
Get a monitor
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
Response 200 application/json
dataMonitorResource requiredidstring requiredteam_idstring requirednamestring requiredurlstring or null requiredtypestring requiredmethodstring, one of "get", "post", "head" requiredstatusstring requiredpaused_by_planboolean requiredWhy a paused monitor is paused: true when the plan stopped it, so the client offers an upgrade; false for a pause the customer chose.
paused_for_downtimeboolean requiredTrue when a month of nothing but down readings paused a Free monitor.
last_statusstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredcheck_interval_secinteger requiredeffective_check_interval_secinteger requiredWhat the loop actually spends, which is the stored value clamped up to the plan's floor.
timeout_secinteger requiredregionsarray of any requiredexpected_status_codeinteger requiredrequest_headersarray of anyBoth emitted so the edit form can prefill what the operator configured.
request_bodystring or nullai_modeAiMode: string, one of "off", "suggest", "auto" requiredHow much authority the AI has for a given monitor or workspace.
effective_ai_modeAiMode: string, one of "off", "suggest", "auto" requiredHow much authority the AI has for a given monitor or workspace.
ai_auto_updatesboolean requiredRead back by the monitor form's own switch.
auth_configarray of any or null requiredslo_targetnumber or null requiredescalation_policy_idstring or null requiredThe pinned paging ladder, or null to fall back to the team default.
uptime_24hstring requiredMeasured uptime over the trailing 24h, attached by the show action only (null in list/edit responses and while a monitor has no checks yet, which the client renders as "no data").
slo_down_minutes_7dstring requiredslo_observed_minutes_7dstring requiredslo_gap_minutes_7dstring requiredslo_measured_minutes_7dstring requiredslo_down_minutes_30dstring requiredslo_observed_minutes_30dstring requiredslo_gap_minutes_30dstring requiredslo_measured_minutes_30dstring requiredtagsarray of any requiredshow_on_status_pageboolean requiredonly_show_if_degradedboolean requiredfollow_redirectsboolean requiredalert_on_downboolean requiredalert_on_recoverboolean requiredssl_trackingboolean requiredanomaly_detectionboolean requiredresponse_anomaly_sensitivitystring, one of "low", "medium", "high" requiredssl_expires_atstring or null requiredssl_last_checked_atstring or null requiredssl_last_errorstring or null requiredssl_alert_threshold_daysinteger requiredis_groupboolean requiredparent_idstring or null requiredlast_checked_atstring or null requiredlast_response_msinteger or null requiredlast_probe_errorstring or null requiredSet when the EDGE refused to run a probe, which is a configuration problem on this monitor rather than an outage of its target.
last_probe_error_atstring or null requirednext_check_atstring or null requiredconsecutive_failsinteger requiredincident_thresholdinteger requiredassertion_rulesarray of any or null requiredNull for both means off: no rules asserted, no degraded threshold.
degraded_after_msinteger or null requiredmaintenance_tolerance_secinteger requireddescriptionstring or null requireddescription_sourcestring or null, one of "ai_draft", "user", null requiredsite_kindstring or null, one of "ecommerce", "saas", "api", "content", "corporate", "other", null requiredintentstring or null requiredcreated_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/monitors/MONITOR" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/monitors/MONITOR",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Update a monitor
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
Request body application/json
namestring, max length 200urlstring, uri, max length 2048typeMonitorType: string, one of "http"Supported check protocol for a monitor.
methodHttpMethod: string, one of "get", "post", "head"HTTP verb used when issuing a monitor check request.
check_interval_secinteger, min 30, max 86400timeout_secinteger, min 1, max 30regionsarray of MonitorRegion: string, one of "us-east", "us-west", "eu-west", "eu-central", "ap"expected_status_codeinteger or null, min 100, max 599ai_modeAiMode: string, one of "off", "suggest", "auto"How much authority the AI has for a given monitor or workspace.
ai_auto_updatesbooleanescalation_policy_idstring or null, uuidrequest_headersarray of string or nullrequest_bodystring or nullslo_targetnumber or null, min 0, max 100tagsarray of string or nullshow_on_status_pagebooleanfollow_redirectsbooleanonly_show_if_degradedbooleanalert_on_downbooleanalert_on_recoverbooleanssl_trackingbooleananomaly_detectionbooleanresponse_anomaly_sensitivityAnomalySensitivity: string, one of "low", "medium", "high"How far from its baseline a metric has to move before the sweep reports it.
ssl_alert_threshold_daysinteger or null, min 1, max 365maintenance_tolerance_secinteger, one of "0", "60", "120", "180", "300", "600", "900"auth_configobject or nulltypeHttpAuthType: string, one of "none", "basic", "bearer", "api_key"Authentication scheme applied to outbound monitor check requests.
usernamestring or null, max length 255passwordstring or null, max length 255tokenstring or null, max length 2048keystring or null, max length 2048headerstring or null, max length 255
assertion_rulesarray of string or null, max items 20incident_thresholdinteger, min 1, max 10degraded_after_msinteger or null, min 100, max 30000descriptionstring or null, max length 1000site_kindSiteKind: string, one of "ecommerce", "saas", "api", "content", "corporate", "other" or nullintentstring or null, max length 500description_sourceDescriptionSource: string, one of "ai_draft", "user" or null
Response 200 application/json
dataMonitorResource requiredidstring requiredteam_idstring requirednamestring requiredurlstring or null requiredtypestring requiredmethodstring, one of "get", "post", "head" requiredstatusstring requiredpaused_by_planboolean requiredWhy a paused monitor is paused: true when the plan stopped it, so the client offers an upgrade; false for a pause the customer chose.
paused_for_downtimeboolean requiredTrue when a month of nothing but down readings paused a Free monitor.
last_statusstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredcheck_interval_secinteger requiredeffective_check_interval_secinteger requiredWhat the loop actually spends, which is the stored value clamped up to the plan's floor.
timeout_secinteger requiredregionsarray of any requiredexpected_status_codeinteger requiredrequest_headersarray of anyBoth emitted so the edit form can prefill what the operator configured.
request_bodystring or nullai_modeAiMode: string, one of "off", "suggest", "auto" requiredHow much authority the AI has for a given monitor or workspace.
effective_ai_modeAiMode: string, one of "off", "suggest", "auto" requiredHow much authority the AI has for a given monitor or workspace.
ai_auto_updatesboolean requiredRead back by the monitor form's own switch.
auth_configarray of any or null requiredslo_targetnumber or null requiredescalation_policy_idstring or null requiredThe pinned paging ladder, or null to fall back to the team default.
uptime_24hstring requiredMeasured uptime over the trailing 24h, attached by the show action only (null in list/edit responses and while a monitor has no checks yet, which the client renders as "no data").
slo_down_minutes_7dstring requiredslo_observed_minutes_7dstring requiredslo_gap_minutes_7dstring requiredslo_measured_minutes_7dstring requiredslo_down_minutes_30dstring requiredslo_observed_minutes_30dstring requiredslo_gap_minutes_30dstring requiredslo_measured_minutes_30dstring requiredtagsarray of any requiredshow_on_status_pageboolean requiredonly_show_if_degradedboolean requiredfollow_redirectsboolean requiredalert_on_downboolean requiredalert_on_recoverboolean requiredssl_trackingboolean requiredanomaly_detectionboolean requiredresponse_anomaly_sensitivitystring, one of "low", "medium", "high" requiredssl_expires_atstring or null requiredssl_last_checked_atstring or null requiredssl_last_errorstring or null requiredssl_alert_threshold_daysinteger requiredis_groupboolean requiredparent_idstring or null requiredlast_checked_atstring or null requiredlast_response_msinteger or null requiredlast_probe_errorstring or null requiredSet when the EDGE refused to run a probe, which is a configuration problem on this monitor rather than an outage of its target.
last_probe_error_atstring or null requirednext_check_atstring or null requiredconsecutive_failsinteger requiredincident_thresholdinteger requiredassertion_rulesarray of any or null requiredNull for both means off: no rules asserted, no degraded threshold.
degraded_after_msinteger or null requiredmaintenance_tolerance_secinteger requireddescriptionstring or null requireddescription_sourcestring or null, one of "ai_draft", "user", null requiredsite_kindstring or null, one of "ecommerce", "saas", "api", "content", "corporate", "other", null requiredintentstring or null requiredcreated_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 422 Validation error
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X PUT "https://api.uptizm.com/v1/monitors/MONITOR" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{}'
const payload = {};
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR', {
method: 'PUT',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Content-Type': 'application/json',
},
body: JSON.stringify(payload),
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR');
$payload = <<<'JSON'
{}
JSON;
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Content-Type: application/json',
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
import os
import requests
response = requests.put(
"https://api.uptizm.com/v1/monitors/MONITOR",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Content-Type": "application/json",
},
data=r'''{}''',
)
print(response.json())
Try it
ms
Delete a monitor
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
Response 204
No body.
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X DELETE "https://api.uptizm.com/v1/monitors/MONITOR" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR', {
method: 'DELETE',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
console.log(response.status);
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'DELETE',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.delete(
"https://api.uptizm.com/v1/monitors/MONITOR",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.status_code)
Try it
ms
Pause a monitor
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Response 200 application/json
dataMonitorResource requiredidstring requiredteam_idstring requirednamestring requiredurlstring or null requiredtypestring requiredmethodstring, one of "get", "post", "head" requiredstatusstring requiredpaused_by_planboolean requiredWhy a paused monitor is paused: true when the plan stopped it, so the client offers an upgrade; false for a pause the customer chose.
paused_for_downtimeboolean requiredTrue when a month of nothing but down readings paused a Free monitor.
last_statusstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredcheck_interval_secinteger requiredeffective_check_interval_secinteger requiredWhat the loop actually spends, which is the stored value clamped up to the plan's floor.
timeout_secinteger requiredregionsarray of any requiredexpected_status_codeinteger requiredrequest_headersarray of anyBoth emitted so the edit form can prefill what the operator configured.
request_bodystring or nullai_modeAiMode: string, one of "off", "suggest", "auto" requiredHow much authority the AI has for a given monitor or workspace.
effective_ai_modeAiMode: string, one of "off", "suggest", "auto" requiredHow much authority the AI has for a given monitor or workspace.
ai_auto_updatesboolean requiredRead back by the monitor form's own switch.
auth_configarray of any or null requiredslo_targetnumber or null requiredescalation_policy_idstring or null requiredThe pinned paging ladder, or null to fall back to the team default.
uptime_24hstring requiredMeasured uptime over the trailing 24h, attached by the show action only (null in list/edit responses and while a monitor has no checks yet, which the client renders as "no data").
slo_down_minutes_7dstring requiredslo_observed_minutes_7dstring requiredslo_gap_minutes_7dstring requiredslo_measured_minutes_7dstring requiredslo_down_minutes_30dstring requiredslo_observed_minutes_30dstring requiredslo_gap_minutes_30dstring requiredslo_measured_minutes_30dstring requiredtagsarray of any requiredshow_on_status_pageboolean requiredonly_show_if_degradedboolean requiredfollow_redirectsboolean requiredalert_on_downboolean requiredalert_on_recoverboolean requiredssl_trackingboolean requiredanomaly_detectionboolean requiredresponse_anomaly_sensitivitystring, one of "low", "medium", "high" requiredssl_expires_atstring or null requiredssl_last_checked_atstring or null requiredssl_last_errorstring or null requiredssl_alert_threshold_daysinteger requiredis_groupboolean requiredparent_idstring or null requiredlast_checked_atstring or null requiredlast_response_msinteger or null requiredlast_probe_errorstring or null requiredSet when the EDGE refused to run a probe, which is a configuration problem on this monitor rather than an outage of its target.
last_probe_error_atstring or null requirednext_check_atstring or null requiredconsecutive_failsinteger requiredincident_thresholdinteger requiredassertion_rulesarray of any or null requiredNull for both means off: no rules asserted, no degraded threshold.
degraded_after_msinteger or null requiredmaintenance_tolerance_secinteger requireddescriptionstring or null requireddescription_sourcestring or null, one of "ai_draft", "user", null requiredsite_kindstring or null, one of "ecommerce", "saas", "api", "content", "corporate", "other", null requiredintentstring or null requiredcreated_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/monitors/MONITOR/pause" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Idempotency-Key: $(uuidgen)"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR/pause', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR/pause');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Idempotency-Key: '.uniqid('', true),
],
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/monitors/MONITOR/pause",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
)
print(response.json())
Try it
ms
Resume a monitor
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Response 200 application/json
dataMonitorResource requiredidstring requiredteam_idstring requirednamestring requiredurlstring or null requiredtypestring requiredmethodstring, one of "get", "post", "head" requiredstatusstring requiredpaused_by_planboolean requiredWhy a paused monitor is paused: true when the plan stopped it, so the client offers an upgrade; false for a pause the customer chose.
paused_for_downtimeboolean requiredTrue when a month of nothing but down readings paused a Free monitor.
last_statusstring or null, one of "up", "down", "degraded", "paused", "maintenance", null requiredcheck_interval_secinteger requiredeffective_check_interval_secinteger requiredWhat the loop actually spends, which is the stored value clamped up to the plan's floor.
timeout_secinteger requiredregionsarray of any requiredexpected_status_codeinteger requiredrequest_headersarray of anyBoth emitted so the edit form can prefill what the operator configured.
request_bodystring or nullai_modeAiMode: string, one of "off", "suggest", "auto" requiredHow much authority the AI has for a given monitor or workspace.
effective_ai_modeAiMode: string, one of "off", "suggest", "auto" requiredHow much authority the AI has for a given monitor or workspace.
ai_auto_updatesboolean requiredRead back by the monitor form's own switch.
auth_configarray of any or null requiredslo_targetnumber or null requiredescalation_policy_idstring or null requiredThe pinned paging ladder, or null to fall back to the team default.
uptime_24hstring requiredMeasured uptime over the trailing 24h, attached by the show action only (null in list/edit responses and while a monitor has no checks yet, which the client renders as "no data").
slo_down_minutes_7dstring requiredslo_observed_minutes_7dstring requiredslo_gap_minutes_7dstring requiredslo_measured_minutes_7dstring requiredslo_down_minutes_30dstring requiredslo_observed_minutes_30dstring requiredslo_gap_minutes_30dstring requiredslo_measured_minutes_30dstring requiredtagsarray of any requiredshow_on_status_pageboolean requiredonly_show_if_degradedboolean requiredfollow_redirectsboolean requiredalert_on_downboolean requiredalert_on_recoverboolean requiredssl_trackingboolean requiredanomaly_detectionboolean requiredresponse_anomaly_sensitivitystring, one of "low", "medium", "high" requiredssl_expires_atstring or null requiredssl_last_checked_atstring or null requiredssl_last_errorstring or null requiredssl_alert_threshold_daysinteger requiredis_groupboolean requiredparent_idstring or null requiredlast_checked_atstring or null requiredlast_response_msinteger or null requiredlast_probe_errorstring or null requiredSet when the EDGE refused to run a probe, which is a configuration problem on this monitor rather than an outage of its target.
last_probe_error_atstring or null requirednext_check_atstring or null requiredconsecutive_failsinteger requiredincident_thresholdinteger requiredassertion_rulesarray of any or null requiredNull for both means off: no rules asserted, no degraded threshold.
degraded_after_msinteger or null requiredmaintenance_tolerance_secinteger requireddescriptionstring or null requireddescription_sourcestring or null, one of "ai_draft", "user", null requiredsite_kindstring or null, one of "ecommerce", "saas", "api", "content", "corporate", "other", null requiredintentstring or null requiredcreated_atstring or null requiredupdated_atstring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/monitors/MONITOR/resume" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Idempotency-Key: $(uuidgen)"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR/resume', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR/resume');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Idempotency-Key: '.uniqid('', true),
],
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/monitors/MONITOR/resume",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
)
print(response.json())
Try it
ms
Run a check now
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
| Idempotency-Key | header | string | No | Any unique string per logical request. |
Response 202
No body.
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X POST "https://api.uptizm.com/v1/monitors/MONITOR/test" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json" \
-H "Idempotency-Key: $(uuidgen)"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR/test', {
method: 'POST',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
'Idempotency-Key': crypto.randomUUID(),
},
});
console.log(response.status);
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR/test');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
'Idempotency-Key: '.uniqid('', true),
],
]);
$response = curl_exec($curl);
import os
import uuid
import requests
response = requests.post(
"https://api.uptizm.com/v1/monitors/MONITOR/test",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
"Idempotency-Key": str(uuid.uuid4()),
},
)
print(response.status_code)
Try it
ms
List a monitor's checks
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
| per_page | query | integer, min 1, max 200 | No | Page size, clamped to 1 and the endpoint's maximum (200 on most lists). |
| cursor | query | string | No | The meta.next_cursor of the previous page. |
Response 200 application/json
dataarray of MonitorCheckResource requiredidstring requiredregionstring requiredstatusstring, one of "up", "down", "degraded", "paused", "maintenance" requiredstatus_codeinteger or null requiredresponse_msinteger or null requiredtiming_dns_msinteger requiredtiming_connect_msinteger requiredtiming_tls_msinteger requiredtiming_ttfb_msinteger requiredtiming_download_msinteger requiredchecked_atstring, date-time requirederror_messagestring or null required
linksobject requiredfirststring or null requiredlaststring or null requiredprevstring or null requirednextstring or null required
metaobject requiredpathstring or null requiredBase path for paginator generated URLs.
per_pageinteger, min 0 requiredNumber of items shown per page.
next_cursorstring or null requiredThe "cursor" that points to the next set of items.
prev_cursorstring or null requiredThe "cursor" that points to the previous set of items.
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/monitors/MONITOR/checks" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR/checks', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR/checks');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/monitors/MONITOR/checks",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Get one check
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
| check | path | string | Yes | The check ID |
Response 200 application/json
dataMonitorCheckResource requiredidstring requiredregionstring requiredstatusstring, one of "up", "down", "degraded", "paused", "maintenance" requiredstatus_codeinteger or null requiredresponse_msinteger or null requiredtiming_dns_msinteger requiredtiming_connect_msinteger requiredtiming_tls_msinteger requiredtiming_ttfb_msinteger requiredtiming_download_msinteger requiredchecked_atstring, date-time requirederror_messagestring or null required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/monitors/MONITOR/checks/CHECK" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR/checks/CHECK', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR/checks/CHECK');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/monitors/MONITOR/checks/CHECK",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
List archived content versions
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
Response 200 application/json
dataarray of MonitorContentVersionResource requiredcontent_hashstring requiredbyte_sizeinteger requiredThe RAW decoded length, not the size of the gzipped blob on disk.
content_typestring or null requiredtruncatedboolean requiredfirst_seen_atstring requiredlast_seen_atstring required
linksobject requiredfirststring or null requiredlaststring or null requiredprevstring or null requirednextstring or null required
metaobject requiredcurrent_pageinteger, min 1 requiredfrominteger or null, min 1 requiredlast_pageinteger, min 1 requiredlinksarray of object requiredGenerated paginator links.
urlstring or null requiredlabelstring requiredactiveboolean required
pathstring or null requiredBase path for paginator generated URLs.
per_pageinteger, min 0 requiredNumber of items shown per page.
tointeger or null, min 1 requiredNumber of the last item in the slice.
totalinteger, min 0 requiredTotal number of items being paginated.
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/monitors/MONITOR/content" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR/content', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR/content');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/monitors/MONITOR/content",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
List metric candidates
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
Response 200 application/json
dataarray of any or null requiredhas_sampleboolean required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/monitors/MONITOR/content/candidates" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR/content/candidates', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR/content/candidates');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/monitors/MONITOR/content/candidates",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Download an archived version
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
| contentHash | path | string | Yes | The sha256 content hash of the archived version: 64 lowercase hex characters. |
Response 200 text/plain; charset=utf-8
No documented fields.
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/monitors/MONITOR/content/CONTENT_HASH" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR/content/CONTENT_HASH', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR/content/CONTENT_HASH');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/monitors/MONITOR/content/CONTENT_HASH",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Get uptime over a range
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
Response 200 application/json
datastring required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/monitors/MONITOR/uptime" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR/uptime', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR/uptime');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/monitors/MONITOR/uptime",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Get response times over a range
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
Response 200 application/json
dataarray of object requiredThe response-time buckets of the requested range, for charting.
idnull requiredregionnull requiredstatusstring, one of "down", "degraded", "maintenance", "up" requiredstatus_codenull requiredresponse_msinteger requiredtiming_dns_msnull requiredtiming_connect_msnull requiredtiming_tls_msnull requiredtiming_ttfb_msnull requiredtiming_download_msnull requiredchecked_atstring, date-time requirederror_messagenull required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/monitors/MONITOR/response-times" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR/response-times', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR/response-times');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/monitors/MONITOR/response-times",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
List anomalies
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
Response 200 application/json
dataarray of string required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/monitors/MONITOR/anomalies" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR/anomalies', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR/anomalies');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/monitors/MONITOR/anomalies",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms
Get the 90-day status history
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
| monitor | path | string | Yes | The monitor ID |
Response 200 application/json
dataarray of object requiredchecked_atstring, date-time requiredstatusstring, one of "down", "degraded", "maintenance", "up" required
Errors
- 401 Unauthenticated
- 403 The key lacks the ability this endpoint requires (required_ability names it), or the action is not allowed for the team.
- 404 Not found
- 429 Rate limited. Each key may make 120 reads (GET) and 30 writes per minute; wait for Retry-After seconds.
Code samples
curl -X GET "https://api.uptizm.com/v1/monitors/MONITOR/status-history" \
-H "Authorization: Bearer $UPTIZM_API_KEY" \
-H "Accept: application/json"
const response = await fetch('https://api.uptizm.com/v1/monitors/MONITOR/status-history', {
method: 'GET',
headers: {
'Authorization': `Bearer ${process.env.UPTIZM_API_KEY}`,
'Accept': 'application/json',
},
});
const data = await response.json();
<?php
$curl = curl_init('https://api.uptizm.com/v1/monitors/MONITOR/status-history');
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer '.getenv('UPTIZM_API_KEY'),
'Accept: application/json',
],
]);
$response = curl_exec($curl);
import os
import requests
response = requests.get(
"https://api.uptizm.com/v1/monitors/MONITOR/status-history",
headers={
"Authorization": "Bearer " + os.environ["UPTIZM_API_KEY"],
"Accept": "application/json",
},
)
print(response.json())
Try it
ms