> ## 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.

# Resume Monitor

> Restart checking a paused monitor

## Overview

Resume a paused monitor. The first check is scheduled straight away rather than waiting for the next interval, and checks then continue at the monitor's normal interval.

```
POST https://api.uptimeio.com/api/monitors/{id}/resume
```

## Authentication

| Header | Required | Description |
| - | - | - |
| `X-API-Key` | Yes (or a Bearer token) | Your API key with **read and write** access. Read-only keys receive `READ_ONLY_API_KEY` (403). See [Authentication](/api-reference/authentication). |
| `X-Project-ID` | No | Project that contains the monitor. Defaults to your organization's default project. |

The request has no body.

## Path parameters

| Parameter | Type | Required | Description |
| - | - | - | - |
| `id` | UUID | Yes | Monitor ID. |

## Plan limit

Only active monitors count toward resuming. If your organization already has as many active monitors as its plan allows (Free 50, Pro 100, Scale 500), the request fails with `MONITOR_LIMIT_REACHED` (403). Pause or delete another monitor, or upgrade, and try again.

## Response

### 200 OK

Returns the updated monitor (same shape as [Get Monitor](/api-reference/monitors/get)). `status` and `configState` are `active`; `runtimeStatus` becomes `up`, `down` or `degraded` after the first check completes.

```json theme={null}
{
  "success": true,
  "data": {
    "monitor": {
      "id": "b7a2c1de-3f54-4c21-9d0a-6e1f2a3b4c5d",
      "name": "Production API",
      "type": "HTTP",
      "target": "https://api.example.com/health",
      "interval_seconds": 60,
      "status": "active",
      "configState": "active",
      "runtimeStatus": "unknown"
    }
  }
}
```

The example shows a subset of the fields that are returned.

## Errors

| Code | Status | Meaning |
| - | - | - |
| `AUTHENTICATION_REQUIRED` / `MISSING_AUTH` / `INVALID_API_KEY` | 401 | Missing or invalid credentials. |
| `READ_ONLY_API_KEY` | 403 | The key has read-only access. |
| `MONITOR_LIMIT_REACHED` | 403 | Your plan's active-monitor limit is reached. |
| `MONITOR_NOT_FOUND` | 404 | No monitor with this ID in the project. |
| `MONITOR_RESUME_FAILED` | 500 | The monitor could not be resumed. |

## Examples

<CodeGroup>
  ```bash cURL theme={null}
  curl -X POST https://api.uptimeio.com/api/monitors/MONITOR_ID/resume \
    -H "X-API-Key: YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const res = await fetch('https://api.uptimeio.com/api/monitors/MONITOR_ID/resume', {
    method: 'POST',
    headers: { 'X-API-Key': process.env.UPTIMEIO_API_KEY },
  });
  const { data } = await res.json();
  console.log(data.monitor.status); // "active"
  ```

  ```python Python theme={null}
  import os
  import requests

  res = requests.post(
      "https://api.uptimeio.com/api/monitors/MONITOR_ID/resume",
      headers={"X-API-Key": os.environ["UPTIMEIO_API_KEY"]},
  )
  print(res.json()["data"]["monitor"]["status"])
  ```
</CodeGroup>


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