Skip to content

Create an uptime monitor (HTTP, TCP port or ping).

POST
/http/job
curl --request POST \
--url https://api.siteqwality.com/http/job \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "service_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "check_regions": [ "example" ], "min_healthy_regions": 1, "friendly_name": "example", "follow_redirects": true, "final_uri": "example", "check_type": "http", "method": "example", "keyword_search": "example", "keyword_search_inverted": true, "keyword_search_case_sensitive": true, "keyword_search_regex": true, "timeout_ms": 1, "uri": "example", "tcp_send": "example", "tcp_expect": "example", "tcp_tls": true, "ping_count": 1, "ping_loss_threshold": 1, "recheck_on_failure": "off", "web_bot_auth": true, "request_body": "example", "content_type": "json", "auth_type": "basic", "auth_username": "example", "auth_password": "example", "auth_bearer_token": "example", "success_http_codes": [ 1 ], "failure_http_codes": [ 1 ], "custom_http_headers": "example", "run_interval_seconds": 1, "run_interval_thirty_seconds": true, "group_notification_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "monitor_tls": true, "monitor_dns": true, "monitor_page_speed": true, "tags": [ "example" ], "http_version": "auto", "confirmation_threshold": 1, "json_path": "example", "json_path_expected": "example", "tls_port": 1, "alert_on_invalid_certificate": true, "recovery_period_runs": 1, "flap_hold": true, "flap_hold_override": true, "trace_propagation": true }'

Creates a new check that runs on the specified schedule. check_type picks HTTP (the default), a TCP port or ping (ICMP). An HTTP monitor can also provision paired TLS, domain-expiry and page-speed monitors for the same URL; TCP and ping monitors can pair the domain-expiry monitor when the host is a domain name.

Media type application/json
object
service_id

Assign the new monitor to a service in the same account.

string | null format: uuid
check_regions

Location ids. Left out or empty: GET /check-locations/default, one location, or two on different providers on an uptime plan with room in its quota.

array | null
min_healthy_regions
integer | null format: int32
friendly_name
string | null
follow_redirects
boolean | null
final_uri
string | null
check_type
One of:

What the monitor checks: http (the default), tcp or ping. Fixed once created.

string
Allowed values: http tcp ping
method

The HTTP method; required for http. TCP and ping monitors store TCP and PING.

string | null
keyword_search
string | null
keyword_search_inverted
boolean | null
keyword_search_case_sensitive
boolean | null
keyword_search_regex
boolean | null
timeout_ms
required

Milliseconds. http up to 60000, tcp 1000 to 60000, ping 1000 to 10000.

integer format: int32
uri
required

http: the URL. tcp: tcp://host:port or host:port. ping: ping://host or the host alone. IPv6 addresses go in brackets.

string
tcp_send

tcp only: sent once connected, with \r \n \t \0 \\ \xHH escapes. At most 1024 bytes after unescaping.

string | null
tcp_expect

tcp only: the response must contain this (same escapes, case-sensitive), 1 to 256 bytes after unescaping. Left out, connecting is enough.

string | null
tcp_tls

tcp only: complete a verified TLS handshake first. Defaults to false.

boolean | null
ping_count

ping only: echo requests per check, 1 to 10. Defaults to 3.

integer | null format: int32
ping_loss_threshold

ping only: fail when at least this percent of packets are lost, 1 to 100. Defaults to 100, so only total loss fails.

integer | null format: int32
recheck_on_failure
One of:

Check a failed run once more before it counts: off, same_location, or another_cloud (paid plans). Omitted takes the plan’s default: another_cloud on a paid plan, same_location on the free plan.

string
Allowed values: off same_location another_cloud
web_bot_auth

http only. Sign check requests with Web Bot Auth so bot protection such as Cloudflare recognizes SiteQwality Monitor, a verified bot. Defaults to off.

boolean | null
request_body
string | null
content_type
One of:
string
Allowed values: json xml form_url_encoded text
auth_type
One of:
string
Allowed values: basic digest bearer
auth_username
string | null
auth_password
string | null
auth_bearer_token
string | null
success_http_codes
array | null
failure_http_codes
array | null
custom_http_headers
object | null
run_interval_seconds
required
integer format: int32
run_interval_thirty_seconds
boolean | null
group_notification_ids

Notification groups to alert. Left out or null: the account’s default group. []: notify no one.

array | null
monitor_tls
boolean | null
monitor_dns

Pair a domain-expiry monitor. Defaults to true for http and false for tcp and ping, which allow it only when the host is a domain name.

boolean | null
monitor_page_speed
boolean | null
tags
array | null
http_version
One of:

Preferred HTTP version. Defaults to auto when omitted.

string
Allowed values: auto http1_1 http2 http2_with_fallback
confirmation_threshold

Number of consecutive failed checks (1-10) required before the monitor is considered down and notifications are sent. Defaults to 1 (alert on the first failed check).

integer | null format: int32
json_path

Optional JSONPath assertion on the response body.

string | null
json_path_expected

When set, the JSONPath result must stringify to this value.

string | null
tls_port

Port the TLS check connects to, 1 to 65535. Omitted keeps the stored port (443 for a new TLS check). Needs monitor_tls.

integer | null format: int32
alert_on_invalid_certificate

Alert when the certificate is one a browser would reject: expired, not yet valid, self-signed, an untrusted chain or a hostname mismatch. Defaults to true. Ignored without monitor_tls.

boolean | null
recovery_period_runs

Healthy runs in a row (1-10) before a recovery is notified. Defaults to 2.

integer | null format: int32
flap_hold

Deprecated: sets flap_hold_override when that is absent.

boolean | null
flap_hold_override

Hold alerts while the monitor flaps. Absent or null follows the account’s notification setting.

boolean | null
trace_propagation
boolean | null

HTTP monitor created

Invalid request body or feature not available on plan

Missing or invalid authentication

Monitor limit reached for the account’s plan

Feature requires a paid plan

Service not found in the account

Internal server error