MonitorsIcmp monitors
Update ICMP Monitor
Updates an ICMP monitor. This endpoint is also used to change the monitor status.
PATCH /api/icmp-monitors/:icmpMonitorPublicId
Authentication
Requires a valid session.
- Header:
Authorization: Bearer <token>
Parameters
icmpMonitorPublicId(Path, required): ICMP monitor public UUID.
Request Body
All fields are optional.
status(optional)- Allowed:
active,maintenance,disabled,paused,inactive - Note:
paused/inactiveare normalized todisabled.
- Allowed:
name,hostname,checkInterval,timeoutSeconds(optional)port(optional)- Supported by the API, but currently not used by the ICMP worker.
allowedCheckCountryCodes(optional)- Normalized to upper-case and de-duplicated.
icmpConfig(optional)- Alias for the stored
configJSON.
- Alias for the stored
config(optional)- Alternative way to update the same stored
configJSON.
- Alternative way to update the same stored
Note: Read-only users may only change status (and sending any other fields will result in 403).
{
"status": "maintenance",
"allowedCheckCountryCodes": ["DE", "US"]
}Example updating config:
{
"icmpConfig": {
"packetSize": 56,
"count": 3
}
}cURL
curl -X PATCH "https://YOUR_DOMAIN/api/icmp-monitors/22222222-2222-4222-8222-222222222222" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"status": "disabled"
}'Response
{
"id": 123,
"organizationId": 1,
"customerId": 10,
"name": "Core Router",
"hostname": "10.0.0.1",
"port": null,
"status": "maintenance",
"checkInterval": 30,
"timeoutSeconds": 30,
"allowedCheckCountryCodes": ["DE", "US"],
"notificationPhoneNumber": null,
"notificationEmail": null,
"lastCheckedAt": null,
"createdAt": "2026-02-26T12:00:00.000Z",
"updatedAt": "2026-02-26T12:05:00.000Z",
"config": { "packetSize": 56, "count": 3 },
"icmpConfig": { "packetSize": 56, "count": 3 }
}Errors
400Invalid request body, invalid status, or invalid hostname401Unauthorized403Forbidden (e.g.readonlyor global supporter)404ICMP monitor not found