---
title: "Bulk Update Monitors"
method: PATCH
path: "/v1/monitors/bulk"
tags: ["Monitors"]
---

# Bulk Update Monitors

`PATCH /v1/monitors/bulk`

## Request

- Base URL: `https://api.fettle.sh` (the document declares no server; this is the origin it was published from)
- URL: `https://api.fettle.sh/v1/monitors/bulk`
- Auth: API key in header `Authorization`

Change the interval, timeout, regions, notification channels, confirmation
threshold or notification cooldown of up to 100 monitors at once.

The same values go to every listed monitor; omitted fields stay unchanged
and `null` is refused. All of them change or none does: an unknown
monitor or channel, a value your plan does not allow, or a value one
monitor's type does not accept rejects the whole request. A problem with
one monitor names it, for example `monitors[3] ("API"): `.

## Headers

- `X-Organization-Id` string, uuid, nullable

## Request body

- BulkMonitorUpdateRequest: Set the same fields on several monitors in one all-or-nothing request.
  - `monitor_ids` string[], required: Monitors to act on. Every id must belong to the active organization.
  - `changes` MonitorBulkChanges, required: The fields a bulk update may set; the same value goes to every monitor. Only fields that mean the same thing for every monitor type. ``config`` is type-specific, ``name`` is per monitor and ``tags`` has its own bulk endpoint. Omit a field to leave it unchanged; ``null`` is a 422.
    - `interval_seconds` integer
    - `timeout_seconds` integer
    - `regions` string[]
    - `channel_ids` string[]
    - `confirmation_threshold` integer
    - `notification_cooldown_seconds` integer

## Response `200`

Successful Response

- BulkMonitorStateResponse: The affected monitors after the change, in request order.
  - `monitors` MonitorCompactRead[], required
    - `id` string, uuid, required
    - `name` string, required
    - `type` 'HTTP' | 'PING' | 'SSL' | 'TCP' | 'DNS', required: Type of probe a worker must run for a :class:`CheckJob`.
    - `target` string, required
    - `status` 'PENDING' | 'UP' | 'DEGRADED' | 'DOWN' | 'PAUSED', required: Aggregated state of a monitor as derived by the results state machine.
    - `is_active` boolean, required
    - `tags` string[]
    - `interval_seconds` integer, required
    - `ssl_expires_at` string, date-time, nullable, required
    - `last_checked_at` string, date-time, nullable, required

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/fettle/apis/fettle-sh.md) · [All operations](https://skmtc.dev/fettle/apis/fettle-sh/llms.txt) · [OpenAPI document](https://skmtc.dev/fettle/apis/fettle-sh/revisions/f32c8a18606f?raw)
