---
title: "Update a monitor"
method: PATCH
path: "/monitors/{id}"
tags: ["Monitors"]
---

# Update a monitor

`PATCH /monitors/{id}`

## Path parameters

- `id` number, required

## Request body

- UpdateMonitorDto
  - `friendlyName` string — Friendly name of the monitor
  - `url` string — URL of the monitor. For DNS monitors: DNS server IP or hostname. Not required for Heartbeat monitor
  - `type` 'HTTP' | 'KEYWORD' | 'PING' | 'PORT' | 'HEARTBEAT' | 'DNS' | 'API' | 'UDP' | 'VISUAL_COMPARISON'
  - `port` number — Required for Port and UDP monitors
  - `keywordType` 'ALERT_EXISTS' | 'ALERT_NOT_EXISTS' — Required for Keyword monitor
  - `keywordCaseType` 0 | 1 — Required for Keyword monitor
  - `keywordValue` string, nullable — Required for Keyword monitor
  - `interval` number — Interval of check in seconds. Heartbeat monitors support at most 2678400 seconds (31 days).
  - `timeout` number — Timeout of check in seconds. Only for Http, Keyword and Port monitors
  - `gracePeriod` number — Grace period of check in seconds. Only for Heartbeat monitor
  - `httpUsername` string — Username for HTTP Basic authentication
  - `httpPassword` string — Password for HTTP Basic authentication
  - `httpMethodType` 'HEAD' | 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'QUERY', nullable — HTTP method to use for the request. For HTTP and Keyword monitors it defaults to HEAD if omitted; API monitors default to GET and do not allow HEAD
  - `authType` 'NONE' | 'HTTP_BASIC' | 'DIGEST' | 'BEARER' — Authentication method to use for the request. Only applicable for HTTP and Keyword monitors
  - `postValueData` object — Data to be sent in the request. Not applicable for HTTP method type = HEAD. Can be JSON string or string
  - `postValueType` 'KEY_VALUE' | 'RAW_JSON' — Type of data payload to be sent in the request. Affects what data is accepted by "postValueData" field
  - `assignedAlertContacts` AlertContactSettings[] — Alert contacts to be assigned to the monitor. Threshold and recurrence are only available in the paid plans, they are always 0 in the Free Plan
    - `alertContactId` number, required — ID of the alert contact to notify
    - `threshold` number, required — Delay of notification in minutes, after the monitor is down
    - `recurrence` number, required — Repeat notifications every X minutes
  - `customHttpHeaders` object — Custom HTTP headers to be sent in the request. Must be sent as JSON object with key-value pairs
  - `successHttpResponseCodes` string[] — Success HTTP response codes. Can contain specific codes or ranges like 2xx. Default is [2xx, 3xx]
  - `checkSSLErrors` boolean — Whether to check for SSL and domain expiration errors
  - `tagNames` string[] — Tags to be assigned to the monitor
  - `maintenanceWindowsIds` number[] — Maintenance windows to be assigned to the monitor
  - `domainExpirationReminder` boolean — Whether to send a notification when the domain is about to expire
  - `sslExpirationReminder` boolean — Whether to send a notification when the SSL certificate is about to expire
  - `followRedirections` boolean — Whether to follow redirections
  - `responseTimeThreshold` number — Response time threshold in milliseconds. When provided, the value is applied to all active regions as regionData.THRESHOLD. Always returns 0 — use regionData.THRESHOLD for per-region control.
  - `regionalData` 'na' | 'eu' | 'as' | 'oc' — Region for monitoring: na (North America), eu (Europe), as (Asia), oc (Oceania). Note: If both regionalData and regionData are provided, regionData takes priority.
  - `regionData` RegionalDataDto
    - `REGION` string[], required
    - `THRESHOLD` object — Regional threshold values in milliseconds mapped by region code
      - `na` number
      - `eu` number
      - `as` number
      - `oc` number
    - `MANUAL_SELECTED` boolean
  - `groupId` number — Monitor group ID to assign the monitor to. Use 0 for the default group.
  - `customFields` object — Custom key-value metadata for the monitor. Max 20 keys. Keys: alphanumeric + underscore + hyphen, max 64 chars. Values: max 255 chars. Paid plans only.
  - `config` object — Monitor configuration patch. Top-level shallow merge with existing config: omit keys to leave unchanged, set a key to null to remove it, or send `config: null` to clear all config.

## Response `200`

- MonitorDto
  - `type` unknown, required
  - `interval` number, required
  - `sslBrand` string, nullable, required
  - `sslExpiryDateTime` union, required
    - unknown
    - string
  - `domainExpireDate` union, required
    - unknown
    - string
  - `checkSSLErrors` boolean, required
  - `sslExpirationReminder` boolean, nullable, required
  - `domainExpirationReminder` boolean, nullable, required
  - `followRedirections` boolean, required
  - `authType` unknown, required
  - `httpUsername` string
  - `httpPassword` string
  - `customHttpHeaders` object, nullable, required
  - `httpMethodType` unknown, required
  - `successHttpResponseCodes` string[], required
  - `timeout` number, nullable, required
  - `postValueData` union, required
    - string
    - number
    - object
    - unknown[]
      - unknown
  - `postValueType` 'KEY_VALUE' | 'RAW_JSON', nullable, required
  - `port` number, nullable, required
  - `gracePeriod` number, nullable, required
  - `keywordValue` string, nullable, required
  - `keywordCaseType` union, required
    - number
    - number
  - `keywordType` unknown, required
  - `responseTimeThreshold` number, required
  - `config` object, nullable, required
    - `dnsRecords` object
      - `CNAME` string[]
      - `MX` string[]
      - `NS` string[]
      - `A` string[]
      - `AAAA` string[]
      - `TXT` string[]
      - `SRV` string[]
      - `PTR` string[]
      - `SOA` string[]
      - `SPF` string[]
      - `DNSKEY` string[]
      - `DS` string[]
      - `NSEC` string[]
      - `NSEC3` string[]
    - `apiAssertions` object
      - `logic` 'AND' | 'OR', required
      - `checks` object[], required
        - `property` string, required
        - `comparison` 'equals' | 'not_equals' | 'contains' | 'not_contains' | 'greater_than' | 'less_than' | 'is_null' | 'is_not_null', required
        - `target` union
          - string
          - number
          - boolean
          - unknown
    - `sslExpirationPeriodDays` integer[]
    - `udp` object
      - `payload` string
      - `packetLossThreshold` number, required
    - `ipVersion` 'ipv4Only' | 'ipv6Only'
    - `applicationErrorRetries` integer
    - `visualComparison` object
      - `sensitivityThreshold` integer, required
      - `viewport` 'desktop' | 'mobile', required
      - `areaCoordinates` object
        - `percentX` number, required
        - `percentY` number, required
        - `percentWidth` number, required
        - `percentHeight` number, required
      - `refreshBaseline` boolean
      - `userBaselinePath` string
      - `lastCheckBaselinePath` string
  - `regionalData` object, required
    - `REGION` string[], required
    - `MANUAL_SELECTED` boolean
    - `INFRASTRUCTURE` 'Legacy' | 'New'
    - `THRESHOLD` object
  - `maintenanceWindows` object[], required
    - `id` number, required
    - `userId` number, required
    - `name` string, required
    - `interval` 'once' | 'daily' | 'weekly' | 'monthly', required
    - `date` string, nullable, required
    - `time` string, required
    - `duration` number, required
    - `autoAddMonitors` boolean, required
    - `monitorIds` number[], required
    - `days` number[], required
    - `status` 'active' | 'paused', required
    - `created` union, required
      - unknown
      - string
  - `psps` object[], required
    - `id` integer, required
    - `friendlyName` string, required
    - `customDomain` string, nullable, required
    - `isPasswordSet` boolean, required
    - `monitorIds` number[], nullable, required
    - `tagIds` number[], required
    - `monitorsCount` number, nullable, required
    - `status` unknown, required
    - `urlKey` string, required
    - `homepageLink` string, nullable, required
    - `gaCode` string, nullable, required
    - `shareAnalyticsConsent` boolean, required
    - `useSmallCookieConsentModal` boolean, required
    - `icon` string, nullable, required
    - `noIndex` boolean, required
    - `logo` string, nullable, required
    - `hideUrlLinks` boolean, required
    - `subscription` boolean, required
    - `showCookieBar` boolean, required
    - `pinnedAnnouncementId` integer, nullable, required
    - `customSettings` object, nullable, required
      - `font` object, nullable
        - `family` string, nullable, required
      - `page` object
        - `layout` string
        - `theme` 'light' | 'dark'
        - `density` 'normal' | 'compact'
      - `colors` object
        - `main` string, nullable, required
        - `text` string, nullable, required
        - `link` string, nullable, required
      - `features` object
        - `showBars` 'true' | 'false', nullable
        - `showUptimePercentage` 'true' | 'false', nullable, required
        - `enableFloatingStatus` 'true' | 'false', nullable
        - `showOverallUptime` 'true' | 'false', nullable
        - `showOutageUpdates` 'true' | 'false', nullable
        - `showOutageDetails` 'true' | 'false', nullable
        - `enableDetailsPage` 'true' | 'false', nullable
        - `showMonitorURL` 'true' | 'false', nullable
        - `hidePausedMonitors` 'true' | 'false', nullable
  - `id` number, required
  - `friendlyName` string, required
  - `status` unknown, required
  - `url` string, required
  - `currentStateDuration` number, required
  - `lastIncidentId` string, nullable, required
  - `userId` number, required
  - `tags` object[], required
    - `id` number, required
    - `name` string, required
    - `color` string, required
    - `monitors` object[]
      - `id` number, required
      - `friendlyName` string, nullable, required
      - `status` unknown, required
      - `url` string, required
  - `assignedAlertContacts` object[], required
    - `alertContactId` number, required
    - `threshold` number, required
    - `recurrence` number, required
  - `lastIncident` object, nullable
    - `id` string, required
    - `status` unknown, required
    - `cause` number, required
    - `reason` string, required
    - `startedAt` union, required
      - unknown
      - string
    - `duration` number, nullable, required
  - `lastDayUptimes` object, required
    - `bucketSize` number, required
    - `totalChanges` integer
    - `histogram` object[], required
      - `timestamp` number, required
      - `uptime` number, required
      - `changes` integer
  - `createDateTime` union, required
    - unknown
    - string
  - `apiKey` string, nullable, required
  - `groupId` number, nullable
  - `customFields` object, nullable

---

[API](https://skmtc.net/uptimerobot/apis/uptimerobot-api.md) · [All operations](https://skmtc.net/uptimerobot/apis/uptimerobot-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/uptimerobot/uptimerobot-api/revisions/2b6fa8c427ba/schema)
