---
title: "Update ICMP Monitor"
description: "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` / `inactive` are normalized to `disabled`.
- `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 `config` JSON.
- `config` (optional)
  - Alternative way to update the same stored `config` JSON.

Note: Read-only users may only change `status` (and sending any other fields will result in `403`).

```json
{
  "status": "maintenance",
  "allowedCheckCountryCodes": ["DE", "ES"]
}
```

Example updating config:

```json
{
  "icmpConfig": {
    "packetSize": 56,
    "count": 3
  }
}
```

## cURL

```bash
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

```json
{
  "id": 123,
  "organizationId": 1,
  "customerId": 10,
  "name": "Core Router",
  "hostname": "10.0.0.1",
  "port": null,
  "status": "maintenance",
  "checkInterval": 30,
  "timeoutSeconds": 30,
  "allowedCheckCountryCodes": ["DE", "ES"],
  "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

- `400` Invalid request body, invalid status, or invalid hostname
- `401` Unauthorized
- `403` Forbidden (e.g. `readonly` or global supporter)
- `404` ICMP monitor not found

