DNS Zones

Set record health check

put/dns/zones/{zone_uuid}/records/{record_uuid}/health-check

Add or update the health check on a DNS record. When the target stops responding, the record is automatically removed from DNS answers until it recovers. Billed at $10/month per health check.

Authorization

Authorization
Authorization*string

Bearer YOUR_API_TOKEN with an API token. The X-API-Key: YOUR_API_TOKEN header works too.

Path parameters

zone_uuid*string
record_uuid*string

Request body

Create or update the health check attached to a DNS record (1 per record).

application/jsonRequired
name*string

Friendly name

Rangelength ≤ 128
check_type*DNSHealthCheckType
Value in"http""https""tcp""ping"
target?string | null

Host/IP to probe; defaults to the record's own value

Rangelength ≤ 255
port?integer | null

Port (required for TCP)

Range1 ≤ value ≤ 65535
path?string | null

Path for HTTP/HTTPS checks

Rangelength ≤ 255
expected_status?integer | null

Expected HTTP status code

Range100 ≤ value ≤ 599Default200
interval_secs?integer

Seconds between checks (min 10)

Range10 ≤ value ≤ 3600Default60
timeout_secs?integer

Per-check timeout in seconds

Range1 ≤ value ≤ 60Default5
healthy_threshold?integer

Successes before marking healthy

Range1 ≤ value ≤ 10Default2
unhealthy_threshold?integer

Failures before marking unhealthy

Range1 ≤ value ≤ 10Default3
enabled?boolean

Whether the check is active (billed while enabled)

Defaulttrue

Responses

Successful Response

application/json

uuid*string
record_uuid*string
name*string
check_type*DNSHealthCheckType
Value in"http""https""tcp""ping"
target?string | null
port?integer | null
path?string | null
expected_status?integer | null
interval_secs*integer
timeout_secs*integer
healthy_threshold*integer
unhealthy_threshold*integer
enabled*boolean
last_status*DNSHealthCheckStatus
Value in"healthy""unhealthy""unknown"
last_check_at?string | null
Formatdate-time
created_at*string
Formatdate-time
updated_at*string
Formatdate-time
status_summary?DNSHealthCheckStatusSummary | null

Current status combined across every location; null while unavailable.

Properties (3)
status*string

healthy: every reporting location sees the target up; unhealthy: every one sees it down; degraded: some locations see it down; unknown: no location is reporting yet; paused: the check is disabled or the zone is not active.

Value in"healthy""degraded""unhealthy""unknown""paused"
pops?array<DNSHealthCheckPopStatus>
Properties (2)
pop*string

Location code, e.g. ams01

status*string

unhealthy when the location sees the target down, unknown while it is not reporting yet.

Value in"healthy""unhealthy""unknown""paused"
last_change_at?string | null

Last status change seen by any location (ISO 8601 UTC)

uptime_24h?number | null

Percentage of the last 24 hours the target was seen up; null without data.