---
title: "Update IMAP/POP Monitor"
description: "Updates an IMAP/POP monitor and/or changes its status."
---

`PATCH /api/imap-pop-monitors/:imapPopMonitorPublicId`

## Authentication

Requires a valid session.

- Header: `Authorization: Bearer <token>`

## Parameters

- `imapPopMonitorPublicId` (Path, required): IMAP/POP monitor public UUID.

## Request Body

- `status` (optional)
 - Allowed: `active`, `maintenance`, `disabled`, `paused`, `inactive`
 - Note: `paused` / `inactive` are normalized to `disabled`.
- `name`, `hostname`, `port`, `checkInterval`, `timeoutSeconds` (optional)
- `allowedCheckCountryCodes` (optional)
 - Normalized to upper-case and de-duplicated.
- `checkMode` (optional)
 - Allowed: `protocol` | `tcp`. Must be one of these two values or the request fails with `400` / `data.code: "invalidCheckMode"`.
 - Switching to `tcp` clears any stored credentials: the monitor performs a bare TCP port-reachability check and `imapPopConfig` is not stored. Switching back to `protocol` re-enables the full IMAP/POP login check; supply `imapPopConfig`/`config` to set new credentials.
 - **`port` is required when the resulting `checkMode` is `tcp`** (either just set on this request, or already stored on the monitor). If no port is available, the request fails with `400` / `data.code: "portRequiredForTcp"`.
- `imapPopConfig` (optional)
 - Alias for the stored `config` JSON.
- `config` (optional)
 - Alternative way to update the same stored `config` JSON.

Note: Read-only users may only change `status` (and sending any other fields will result in `403`).

```json
{ "status": "active" }
```

Example updating config:

```json
{
 "imapPopConfig": {
  "protocol": "pop3",
  "tls": true,
  "user": "monitor@deinkunde.com",
  "password": "password"
 }
}
```

## Response

```json
{
 "id": 500,
 "organizationId": 1,
 "customerId": 10,
 "name": "Mailbox Access",
 "hostname": "mail.deinkunde.com",
 "port": 993,
 "checkInterval": 30,
 "timeoutSeconds": 30,
 "status": "active",
 "notificationPhoneNumber": null,
 "notificationEmail": null,
 "lastCheckedAt": null,
 "createdAt": "2026-02-26T12:00:00.000Z",
 "updatedAt": "2026-02-26T12:05:00.000Z",
 "config": { "protocol": "pop3", "tls": true, "user": "monitor@deinkunde.com", "password": "password" },
 "imapPopConfig": { "protocol": "pop3", "tls": true, "user": "monitor@deinkunde.com", "password": "password" }
}
```

## Errors

- `400` Invalid request body, invalid status, or invalid hostname
- `401` Unauthorized
- `403` Forbidden (e.g. `readonly` or global supporter)
- `404` IMAP/POP monitor not found

