---
title: "Update FTP Monitor (Change Status)"
description: "Updates an FTP monitor and/or changes its status."
---

`PATCH /api/ftp-monitors/:ftpMonitorPublicId`

## Authentication

`Authorization: Bearer <token>`

## Parameters

- `ftpMonitorPublicId` (Path, required): FTP monitor public UUID.

## Request Body

- `status` (optional): `active`, `maintenance`, `disabled` (also accepts `inactive`/`paused` and normalizes them to `disabled`)
- `customerId` (optional, number): Must belong to the same organization
- `name` (optional, string)
- `hostname` (optional, string): Must be a hostname (no protocol, no path)
- `port` (optional, number | null)
- `checkInterval` (optional, number)
- `timeoutSeconds` (optional, number)
- `allowedCheckCountryCodes` (optional, string[] | null): ISO-3166-1 alpha-2, e.g. `"DE"`, `"ES"`
- `checkMode` (optional, string): `protocol` (default) | `tcp`. Switching to `tcp` clears any stored credentials: the monitor performs a bare TCP port-reachability check and `ftpConfig` is not stored. Switching back to `protocol` re-enables the full FTP login check; supply `ftpConfig`/`config` to set new credentials.
- `ftpConfig` (optional, object): Replaces the stored FTP config JSON
- `config` (optional, object): Alias of `ftpConfig`

Note: Read-only users may only change `status`.

Note: If you omit `ftpConfig`/`config`, the current config remains unchanged.

```json
{ "status": "maintenance" }
```

## Example (cURL)

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

curl -X PATCH \
 "$BASE_URL/api/ftp-monitors/55555555-5555-4555-8555-555555555555" \
 -H "Authorization: Bearer $TOKEN" \
 -H "Content-Type: application/json" \
 -d '{"status":"active","allowedCheckCountryCodes":["DE","ES"],"ftpConfig":{"user":"monitor","password":"<ftp-password>","secure":false}}'
```

## Response

```json
{
 "id": 400,
 "status": "maintenance",
 "config": {},
 "ftpConfig": {}
}
```

## Common Errors

- `400 Invalid status` if `status` is not valid
- `401 Unauthorized` if you are not authenticated
- `403 Forbidden` if you do not have write access (e.g. read-only user tries to change other fields, or global supporter)
- `404 FTP monitor not found` if the monitor does not exist

