---
title: "Create Change Request"
description: "Opens a change request against any monitor (all monitor types)."
---

`POST /api/monitors/:monitorType/:monitorId/change-requests`

Read access to the monitor is sufficient. The typical caller is a customer portal user who *lacks* write access to a `managed` monitor.

## Path parameters

| Parameter | Description |
|---|---|
| `monitorType` | One of `website`, `dns`, `icmp`, `smtp`, `ssh`, `ftp`, `imap_pop`, `domain`, `dnsbl` |
| `monitorId` | Numeric ID of the monitor |

## Request Body

| Field | Type | Required | Default | Description |
|-------|------|----------|---------|-------------|
| `kind` | string | No | `change` | `change` (free-text wish) or `request_managed` (ask the org to take the monitor over) |
| `message` | string | Yes | - | The request text (1-2000 chars) |

## Example (cURL)

```bash
BASE_URL="https://uptimeify.io"
TOKEN="<your-api-token>"

curl -X POST "$BASE_URL/api/monitors/website/103/change-requests" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "kind": "change",
    "message": "Please lower the check interval to 1 minute."
  }'
```

## Response

```json
{
  "id": 12,
  "status": "open"
}
```

## Common errors

- `400 Invalid monitor type` (`invalidMonitorType`) when `monitorType` is not one of the supported types
- `400 Invalid monitor identifier` when `monitorId` is not a positive integer
- `401 Unauthorized` when you are not logged in
- `403 Forbidden` / `404 Not found` when the monitor is outside your scope
- `429 Too many open requests` (`tooManyOpenRequests`) when the customer already has 10 open requests
