Docs

Type a word or a question. Esc closes the search.

Sign in Start free

Import monitors

Imports multiple monitors in one request.

POST https://app.upfour.io/v1/monitors/batch
POST https://app.upfour.io/v1/monitors/batch

A real request. What it creates runs in your up4 account and uses credit, like anything you add in the app.

Authorization
AuthorizationA pls_ key. It stays in this browser tab. Needs monitor.write.
Body
More fields5
create_paused
default_alert_plan

3 more fields are only available in JSON.

Headers

Sent directly from your browser to https://app.upfour.io/v1. Mutating calls get an automatic Idempotency-Key when the field is empty.

Request
Responsenot sent yet
Fill in a key and press Send request (⌘↵).
The answer appears here.
scope monitor.write stable Idempotency-Key required returns 201

Body

application/json required 8 fields

rowsBatchMonitorRowInput[]required
Nested fields 19 fields
FieldTypeDescription
allow_duplicate optional boolean
client_id optional uuid · nullable
confirmation_period optional integer
dns_expected optional string
dns_query optional string
dns_type optional string one ofAAAAAMXCNAMETXTNS
expected_status_code optional integer · nullable
fields optional map of any Per-row overrides of monitor fields by name. Any other key of the row object is read as an entry of fields, too.
interval_seconds optional integer
keyword optional string
line optional integer
monitor_type optional string one ofhttptcppingdns
name optional string
raw optional string
recovery_period optional integer
regions optional string[] one ofeuusasiaaudefault
tcp_host optional string
tcp_port optional integer · nullable
url optional string
All other fields65 fields
create_pausedboolean
default_alert_planboolean · nullable
defaultsCreateMonitorInput
Nested fields 58 fields
FieldTypeDescription
alert_channel_names optional string[]
alert_plan_name optional string
alert_type optional string one of""statuskeywordkeyword_absenceexpected_status_code
auth_password optional string Basic-auth password. Write-only: responses carry has_auth_password instead.
auth_password_action optional string one of""keepreplaceclear
auth_username optional string
capture_on_incident_open optional boolean · nullable
client_id optional uuid · nullable
client_name optional string
confirmation_period optional integer
creation_key optional uuid · nullable
default_alert_plan optional boolean
degraded_alert_enabled optional boolean
degraded_threshold_ms optional integer · nullable
dns_expected optional string
dns_query optional string
dns_server optional string
dns_type optional string one of""AAAAAMXCNAMETXTNS
domain_expiry_alert_days optional integer · nullable
escalation_policy_id optional uuid · nullable
expected_status_code optional integer · nullable
follow_redirects optional boolean · nullable
http_method optional string
interval_seconds optional integer
ip_version optional string one of""46
keep_cookies optional boolean
keyword optional string
keyword_case_insensitive optional boolean · nullable
maintenance_from optional string · nullable
maintenance_timezone optional string
maintenance_to optional string · nullable
maintenance_weekdays optional string[] one ofmontuewedthufrisatsun
metadata optional map of string max 100 keyseach value max length 4096 On update, omitted or null leaves the stored metadata unchanged, {} removes all keys and any other object replaces them.
monitor_group_id optional uuid · nullable
monitor_group_name optional string
monitor_type optional string one ofhttptcppingdns
name optional string
notification_channel_ids optional uuid[]
notification_mode optional string one ofquietimmediate
notify_recovery optional boolean · nullable
pronounceable_name optional string
proxy_host optional string
proxy_port optional integer · nullable
public_name optional string · nullable
recovery_period optional integer
regions optional string[] one ofeuusasiaaudefault
request_body optional string
request_headers optional RequestHeader[] Custom request headers, at most 20 and 8 KB in total. On update they are kept unless request_headers_action is replace or clear.
Each item · 2 fields
FieldTypeDescription
name optional string
value optional string
request_headers_action optional string one ofkeepreplaceclear
request_timeout_s optional integer
ssl_expiry_alert_days optional integer · nullable
ssl_verification optional boolean · nullable
state optional string one of""UPDOWNPAUSED UP, DOWN or PAUSED (any case); empty creates the monitor running.
tcp_host optional string
tcp_port optional integer · nullable
url optional string
dry_run_idstring
escalation_policy_iduuid · nullable
notification_channel_idsuuid[]
sourcestring

Returns

A successful request returns 201 with application/json.

Response fields 1 top-level fields
FieldTypeDescription
data BatchMonitorResponse
BatchMonitorResponse · 160 fields
FieldTypeDescription
dry_run_id string
rows BatchMonitorRowResult[] · nullable
Each item · 148 fields
FieldTypeDescription
errors BatchMonitorRowIssue[] · nullable
Each item · 3 fields
FieldTypeDescription
code string
message string
details object free-form keys
index integer
line integer
normalized_input ResolvedMonitorInput
ResolvedMonitorInput · 58 fields
FieldTypeDescription
alert_type string one of""statuskeywordkeyword_absenceexpected_status_code
auth_password string Basic-auth password. Write-only: responses carry has_auth_password instead.
auth_password_action string one of""keepreplaceclear
auth_username string
confirmation_period integer
degraded_alert_enabled boolean
degraded_threshold_ms integer · nullable
dns_expected string
dns_query string
dns_server string
dns_type string one of""AAAAAMXCNAMETXTNS
domain_expiry_alert_days integer · nullable
expected_status_code integer · nullable
follow_redirects boolean · nullable
http_method string
interval_seconds integer
ip_version string one of""46
keep_cookies boolean
keyword string
keyword_case_insensitive boolean · nullable
maintenance_from string · nullable
maintenance_timezone string
maintenance_to string · nullable
maintenance_weekdays string[] · nullable one ofmontuewedthufrisatsun
monitor_type string one ofhttptcppingdns
name string
pronounceable_name string
proxy_host string
proxy_port integer · nullable
recovery_period integer
regions string[] · nullable one ofeuusasiaaudefault
request_body string
request_headers ResolvedRequestHeader[] · nullable Custom request headers, at most 20 and 8 KB in total. On update they are kept unless request_headers_action is replace or clear.
Each item · 2 fields
FieldTypeDescription
name string
value string
request_timeout_s integer
ssl_expiry_alert_days integer · nullable
ssl_verification boolean · nullable
state string one of""UPDOWNPAUSED UP, DOWN or PAUSED (any case); empty creates the monitor running.
tcp_host string
tcp_port integer · nullable
url string
alert_channel_names string[]
alert_plan_name string
capture_on_incident_open boolean
client_id uuid
client_name string
creation_key uuid
default_alert_plan boolean
escalation_policy_id uuid
metadata map of string max 100 keyseach value max length 4096 On update, omitted or null leaves the stored metadata unchanged, {} removes all keys and any other object replaces them.
monitor_group_id uuid
monitor_group_name string
notification_channel_ids uuid[]
notification_mode string one ofquietimmediate
notify_recovery boolean
public_name string
request_headers_action string one ofkeepreplaceclear
raw string
status string one ofreadyduplicateerrorcreated
warnings BatchMonitorRowIssue[] · nullable
Each item · 3 fields
FieldTypeDescription
code string
message string
details object free-form keys
created_monitor Monitor
Monitor · 70 fields
FieldTypeDescription
alert_type string one ofstatuskeywordkeyword_absenceexpected_status_code
auth_username string
capture_on_incident_open boolean
confirmation_period integer
created_at string (date-time)
degraded_alert_enabled boolean
degraded_threshold_ms integer · nullable
domain_expiry_alert_days integer · nullable
escalation_policy_id uuid · nullable
expected_status_code integer · nullable
feature_pause_reasons string[] · nullable
follow_redirects boolean
has_auth_password boolean
has_request_headers boolean
http_method string
id uuid
interval_seconds integer
ip_version string one of""46
is_degraded boolean
is_pending boolean
keep_cookies boolean
keyword string
keyword_case_insensitive boolean
maintenance_from string · nullable
maintenance_timezone string
maintenance_to string · nullable
maintenance_weekdays string[] · nullable one ofmontuewedthufrisatsun
monitor_type string one ofhttptcppingdns
name string
next_check_at string (date-time) · nullable
notification_mode string one ofquietimmediate
notify_recovery boolean
pronounceable_name string
proxy_host string
proxy_port integer · nullable
public_name string
recovery_period integer
regions string[] · nullable one ofeuusasiaaudefault
request_body string
request_headers any[] · nullable Always empty: header values are never returned. has_request_headers says whether the monitor sends any.
request_timeout_s integer
ssl_expiry_alert_days integer · nullable
ssl_verification boolean
state string one ofUPDOWNPAUSED
url string
user_id uuid
badge_token string
client_id uuid
dns_expected string
dns_query string
dns_server string
dns_type string one ofAAAAAMXCNAMETXTNS
freshness_timeout_seconds integer
last_checked_at string (date-time)
last_result_at string (date-time)
last_state_change_at string (date-time)
latency_p50_ms integer
latency_p95_ms integer
latency_samples_24h integer
latest_result_successful boolean
monitor_group_id uuid
paused_until string (date-time)
recent_incidents MonitorRecentIncident[]
Each item · 5 fields
FieldTypeDescription
id uuid
resolved_at string (date-time) · nullable
started_at string (date-time)
status string
resolved_by_type string
tcp_host string
tcp_port integer
duplicate_match MonitorBatchMatch
MonitorBatchMatch · 5 fields
FieldTypeDescription
id uuid
monitor_type string
name string
url string
client_id uuid
summary BatchMonitorSummary
BatchMonitorSummary · 5 fields
FieldTypeDescription
duplicates integer
errors integer
ready integer
total integer
warnings integer
capacity MonitorCapacity
MonitorCapacity · 2 fields
FieldTypeDescription
current integer
limit integer
import_id uuid

Errors

Only the errors this operation can return. Every error uses the same envelope.

Status Code Meaning
400 bad_request The request is malformed or fails validation.
409 conflict The request conflicts with the current state.
400 import_invalid The import body is not valid. When: A batch monitor import whose body cannot be parsed; the message names the problem. Fix: Correct the body and send it again. Stable codes next to the English message: import_invalid (the body is not a valid import), import_rows_out_of_range (error.details.min_rows and max_rows: 1 to 500 rows per import). Notes on single rows carry a code and, where the sentence names something, details (field, option or line).
400 import_rows_out_of_range The import has too few or too many rows. When: A batch monitor import with fewer than min_rows or more than max_rows rows, both in details. Fix: Send between min_rows and max_rows rows per request.
413 import_too_large The import body is over the size limit. When: A batch monitor import larger than details.max_bytes. Fix: Split the import into several requests. import_too_large: the import body is larger than 2 MiB (error.details.max_bytes). Nothing is imported.
403 permission_denied The credentials do not permit this action.
503 service_unavailable The service or a required dependency is temporarily unavailable.
403 documented response check_capacity_exceeded (subscriptions only): the change would raise the projected 30-day list usage of all active monitors above the included check budget. error.details carries projected_cents, included_cents and change_cents; a longer interval, fewer regions or fewer monitors fit. Running monitors and changes that lower the load are never refused.

Every call can also return unauthorized (401), rate_limit_exceeded (429) or internal_error (500 / 502). See Responses and errors.