Update Check
Update an existing monitoring check. Only the fields you include in the request body will be changed.
Required scope: checks:write
Endpoint
PATCH /v1/public/checks/{id}Path Parameters
| Parameter | Type | Description |
|---|---|---|
id | string | The unique check identifier |
Request Body
All fields are optional. Only include the fields you want to change. No Idempotency-Key is needed.
| Field | Type | Description |
|---|---|---|
url | string | The URL, host or domain to monitor. Ignored for domain checks |
name | string | Display name (max 200 characters) |
type | string | Check type: website, rest_endpoint, redirect, ping, tcp, udp, websocket, dns or heartbeat. A check can’t be converted to or from domain, dns or heartbeat; delete and re-create it instead |
checkFrequency | number | Minutes between checks (subject to plan limits) |
checkRegionOverride | string | Region to run the check from: vps-eu-1 or vps-us-1. Only honored on plans with region choice (Nano and Pro). On other plans the check stays on vps-eu-1 |
httpMethod | string | HTTP method: GET, POST, PUT, PATCH, DELETE or HEAD |
expectedStatusCodes | number[] | Status codes that count as up, integers from 100 to 599 |
requestHeaders | object | Custom request headers as string key-value pairs (max 20 entries). Replaces the existing headers. Same restrictions as Create Check |
requestBody | string | Request body (max 65,536 characters). Must be valid JSON for rest_endpoint checks using POST, PUT or PATCH |
responseValidation | object | Response validation rules. Replaces the existing rules |
redirectValidation | object | null | For redirect checks: { "expectedTarget": "...", "matchMode": "contains" }, where matchMode is contains or exact. Send null to clear it |
maxRedirects | integer | null | Maximum redirects to follow (0 to 10). Send null to clear it |
cacheControlNoCache | boolean | Send Cache-Control: no-cache header |
ignoreSslErrors | boolean | Accept invalid certificates and turn off SSL alerts for this check |
immediateRecheckEnabled | boolean | Enable immediate recheck on failure |
responseTimeLimit | number | Max response time in milliseconds (max 30,000) |
downConfirmationAttempts | number | Consecutive failures before the check is marked down (1 to 99) |
pingPackets | number | Number of ping packets for ping checks (1 to 5). Other values are ignored |
timezone | string | IANA timezone for the check. Send an empty string or null to clear it |
Note: When you update fields that affect check behavior (URL, type, frequency, method, status codes, headers, body, validation, redirects, region, cache control or ping packets), the check schedule is reset and the next check runs immediately.
Response
200 OK
{
"data": {
"success": true
}
}The updated check is not returned. Use Get Check to read it.
Error Responses
| Status | Description |
|---|---|
| 400 | Invalid check ID, invalid field value, validation failure, or an attempted conversion to or from domain |
| 403 | API key missing checks:write scope, or the check belongs to another account |
| 404 | Check not found |
| 409 | A check already exists for this URL |
| 429 | Rate limit exceeded |
Code Examples
cURL
curl -X PATCH \
-H "X-Api-Key: ek_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{"name": "Updated Name", "checkFrequency": 10}' \
"https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/checks/CHECK_ID"JavaScript
const checkId = "CHECK_ID";
const response = await fetch(
`https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/checks/${checkId}`,
{
method: "PATCH",
headers: {
"X-Api-Key": process.env.EXIT1_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
name: "Updated Name",
checkFrequency: 10,
}),
}
);
const data = await response.json();
console.log(data);Python
import os, requests
check_id = "CHECK_ID"
response = requests.patch(
f"https://us-central1-exit1-dev.cloudfunctions.net/publicApi/v1/public/checks/{check_id}",
headers={"X-Api-Key": os.environ["EXIT1_API_KEY"]},
json={"name": "Updated Name", "checkFrequency": 10},
)
response.raise_for_status()
print(response.json())Last updated on