> ## Documentation Index
> Fetch the complete documentation index at: https://docs.uptimeio.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Bulk Group Operations

> Pause, resume, move or delete every monitor in a group with one call

## Overview

Four endpoints act on all non-deleted monitors in a group at once.

<Note>
  Bulk operations are for session (JWT) authentication only: send `Authorization: Bearer YOUR_JWT`. Requests made with an API key are rejected.
</Note>

All four return the same result object:

```json theme={null}
{
  "success": true,
  "data": {
    "operation": "pause",
    "affected_checks": 3,
    "success_count": 3,
    "failed_count": 0,
    "paused_count": 3,
    "operation_id": "pause_2f0c6d2e-8c0a-4f9e-9a55-0c3b1d7e6a11"
  }
}
```

| Field | Type | Description |
| - | - | - |
| `operation` | string | `pause`, `resume`, `delete` or `move`. |
| `target_group_id` | UUID | Present for `move`. |
| `affected_checks` | number | Monitors the operation applied to. |
| `success_count` / `failed_count` | number | Outcome counts. |
| `paused_count`, `resumed_count`, `deleted_count`, `moved_count` | number | Legacy copy of `success_count`, present for the matching operation. |
| `operation_id` | string | Returned for `pause` only. |

## Pause all monitors

`POST /api/groups/{groupId}/bulk-pause` (no body)

```bash theme={null}
curl -X POST https://api.uptimeio.com/api/groups/GROUP_ID/bulk-pause \
  -H "Authorization: Bearer YOUR_JWT"
```

Pauses the active monitors in the group.

## Resume all monitors

`POST /api/groups/{groupId}/bulk-resume` (no body)

Resumes the paused monitors in the group.

## Move all monitors

`POST /api/groups/{groupId}/bulk-move`

| Field | Type | Required | Description |
| - | - | - | - |
| `target_group_id` | UUID | Yes | Destination group. |

```bash theme={null}
curl -X POST https://api.uptimeio.com/api/groups/GROUP_ID/bulk-move \
  -H "Authorization: Bearer YOUR_JWT" \
  -H "Content-Type: application/json" \
  -d '{ "target_group_id": "660e8400-e29b-41d4-a716-446655440001" }'
```

A missing `target_group_id` returns `400 VALIDATION_ERROR` (`Target group ID is required`).

## Delete all monitors

`POST /api/groups/{groupId}/bulk-delete`

| Field | Type | Required | Description |
| - | - | - | - |
| `confirm` | boolean | Yes | Must be `true`. |

```bash theme={null}
curl -X POST https://api.uptimeio.com/api/groups/GROUP_ID/bulk-delete \
  -H "Authorization: Bearer YOUR_JWT" \
  -H "Content-Type: application/json" \
  -d '{ "confirm": true }'
```

Without confirmation the call returns `400 CONFIRMATION_REQUIRED` (`Confirmation required for bulk delete operation`). Deleted monitors are soft-deleted, and the group itself is kept.

## Errors

| Status | Code | When |
| - | - | - |
| `400` | `VALIDATION_ERROR` | `bulk-move` without `target_group_id`. |
| `400` | `CONFIRMATION_REQUIRED` | `bulk-delete` without `confirm: true`. |
| `401` | `MISSING_AUTH` / `INVALID_TOKEN` | Missing or invalid session token. |
| `404` | `RESOURCE_NOT_FOUND` | `Group not found`, or for `bulk-move` `Source group not found` / `Target group not found`. |
| `500` | `INTERNAL_ERROR` | `Failed to pause checks`, `Failed to resume checks`, `Failed to move checks` or `Failed to delete checks`. |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.