UptimeRobot · Schema

UpdateMonitorDto

Uptime MonitoringStatus PagesIncident ManagementDevOpsMonitoring Integrations

Properties

Name Type Description
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 string
port number Required for Port and UDP monitors
portAlertCondition string Alerting condition for Port monitors. Only valid when type is Port; defaults to CLOSED when omitted.
keywordType string Required for Keyword monitor
keywordCaseType number Required for Keyword monitor
keywordValue stringnull 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 stringnull 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 string 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 string Type of data payload to be sent in the request. Affects what data is accepted by "postValueData" field
assignedAlertContacts array 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
customHttpHeaders object Custom HTTP headers to be sent in the request. Must be sent as JSON object with key-value pairs. The serialized JSON must not exceed 3000 characters
successHttpResponseCodes array 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 array Tags to be assigned to the monitor
maintenanceWindowsIds array 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 string Region for monitoring: na (North America), eu (Europe), as (Asia), oc (Oceania). Note: If both regionalData and regionData are provided, regionData takes priority.
regionData object Regional data for monitoring. Omit it, or send it without REGION, and the region is assigned automatically (currently NA or EU, one region per organization) and never changed on edit.
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. Accepted keys depend on the monitor type - HTTP/Keyword: sslExpirationPeriodDays, ipVersion, applicationErrorRetries. API: apiAssertions, sslExpirationPeriodDays, ipVersio
View JSON Schema on GitHub

JSON Schema

uptimerobot-update-monitor-dto-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/uptimerobot/main/json-schema/uptimerobot-update-monitor-dto-schema.json",
  "title": "UpdateMonitorDto",
  "x-generated": "2026-10-13",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/uptimerobot-openapi.yaml#/components/schemas/UpdateMonitorDto",
  "type": "object",
  "properties": {
    "friendlyName": {
      "type": "string",
      "maxLength": 250,
      "description": "Friendly name of the monitor"
    },
    "url": {
      "type": "string",
      "maxLength": 10000,
      "description": "URL of the monitor. For DNS monitors: DNS server IP or hostname. Not required for Heartbeat monitor"
    },
    "type": {
      "enum": [
        "HTTP",
        "KEYWORD",
        "PING",
        "PORT",
        "HEARTBEAT",
        "DNS",
        "API",
        "UDP",
        "VISUAL_COMPARISON",
        "DEPENDENCY"
      ],
      "type": "string"
    },
    "port": {
      "type": "number",
      "minimum": 1,
      "maximum": 65535,
      "description": "Required for Port and UDP monitors"
    },
    "portAlertCondition": {
      "enum": [
        "CLOSED",
        "OPEN"
      ],
      "type": "string",
      "description": "Alerting condition for Port monitors. Only valid when type is Port; defaults to CLOSED when omitted."
    },
    "keywordType": {
      "enum": [
        "ALERT_EXISTS",
        "ALERT_NOT_EXISTS"
      ],
      "type": "string",
      "description": "Required for Keyword monitor"
    },
    "keywordCaseType": {
      "enum": [
        0,
        1
      ],
      "type": "number",
      "description": "Required for Keyword monitor"
    },
    "keywordValue": {
      "type": [
        "string",
        "null"
      ],
      "maxLength": 500,
      "description": "Required for Keyword monitor"
    },
    "interval": {
      "type": "number",
      "minimum": 15,
      "description": "Interval of check in seconds. Heartbeat monitors support at most 2678400 seconds (31 days)."
    },
    "timeout": {
      "type": "number",
      "minimum": 0,
      "maximum": 60,
      "description": "Timeout of check in seconds. Only for Http, Keyword and Port monitors"
    },
    "gracePeriod": {
      "type": "number",
      "minimum": 0,
      "maximum": 86400,
      "description": "Grace period of check in seconds. Only for Heartbeat monitor"
    },
    "httpUsername": {
      "type": "string",
      "maxLength": 255,
      "description": "Username for HTTP Basic authentication"
    },
    "httpPassword": {
      "type": "string",
      "maxLength": 255,
      "description": "Password for HTTP Basic authentication"
    },
    "httpMethodType": {
      "enum": [
        "HEAD",
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE",
        "OPTIONS",
        "QUERY"
      ],
      "type": [
        "string",
        "null"
      ],
      "description": "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": {
      "enum": [
        "NONE",
        "HTTP_BASIC",
        "DIGEST",
        "BEARER"
      ],
      "type": "string",
      "description": "Authentication method to use for the request. Only applicable for HTTP and Keyword monitors"
    },
    "postValueData": {
      "type": "object",
      "description": "Data to be sent in the request. Not applicable for HTTP method type = HEAD. Can be JSON string or string"
    },
    "postValueType": {
      "enum": [
        "KEY_VALUE",
        "RAW_JSON"
      ],
      "type": "string",
      "description": "Type of data payload to be sent in the request. Affects what data is accepted by \"postValueData\" field"
    },
    "assignedAlertContacts": {
      "description": "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",
      "type": "array",
      "items": {
        "$ref": "#/$defs/AlertContactSettings"
      }
    },
    "customHttpHeaders": {
      "type": "object",
      "description": "Custom HTTP headers to be sent in the request. Must be sent as JSON object with key-value pairs. The serialized JSON must not exceed 3000 characters"
    },
    "successHttpResponseCodes": {
      "default": [],
      "description": "Success HTTP response codes. Can contain specific codes or ranges like 2xx. Default is [2xx, 3xx]",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "checkSSLErrors": {
      "type": "boolean",
      "description": "Whether to check for SSL and domain expiration errors"
    },
    "tagNames": {
      "description": "Tags to be assigned to the monitor",
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "maintenanceWindowsIds": {
      "description": "Maintenance windows to be assigned to the monitor",
      "type": "array",
      "items": {
        "type": "number"
      }
    },
    "domainExpirationReminder": {
      "type": "boolean",
      "description": "Whether to send a notification when the domain is about to expire"
    },
    "sslExpirationReminder": {
      "type": "boolean",
      "description": "Whether to send a notification when the SSL certificate is about to expire"
    },
    "followRedirections": {
      "type": "boolean",
      "description": "Whether to follow redirections"
    },
    "responseTimeThreshold": {
      "type": "number",
      "minimum": 0,
      "maximum": 60000,
      "description": "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": {
      "type": "string",
      "description": "Region for monitoring: na (North America), eu (Europe), as (Asia), oc (Oceania). Note: If both regionalData and regionData are provided, regionData takes priority.",
      "enum": [
        "na",
        "eu",
        "as",
        "oc"
      ],
      "deprecated": true
    },
    "regionData": {
      "description": "Regional data for monitoring. Omit it, or send it without REGION, and the region is assigned automatically (currently NA or EU, one region per organization) and never changed on edit.",
      "allOf": [
        {
          "$ref": "#/$defs/RegionalDataDto"
        }
      ]
    },
    "groupId": {
      "type": "number",
      "minimum": 0,
      "description": "Monitor group ID to assign the monitor to. Use 0 for the default group."
    },
    "customFields": {
      "type": "object",
      "description": "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": {
      "nullable": true,
      "description": "Monitor configuration patch. Accepted keys depend on the monitor type - HTTP/Keyword: sslExpirationPeriodDays, ipVersion, applicationErrorRetries. API: apiAssertions, sslExpirationPeriodDays, ipVersion, applicationErrorRetries. DNS: dnsRecords. UDP: udp, ipVersion. PING/PORT: ipVersion. Visual Comparison: visualComparison. Dependency: dependency. Heartbeat: none. 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.",
      "allOf": [
        {
          "$ref": "#/$defs/PermissiveMonitorConfigDto"
        }
      ]
    }
  },
  "$defs": {
    "AlertContactSettings": {
      "type": "object",
      "properties": {
        "alertContactId": {
          "type": "number",
          "description": "ID of the alert contact to notify"
        },
        "threshold": {
          "type": "number",
          "description": "Delay of notification in minutes, after the monitor is down"
        },
        "recurrence": {
          "type": "number",
          "description": "Repeat notifications every X minutes"
        }
      },
      "required": [
        "alertContactId",
        "threshold",
        "recurrence"
      ]
    },
    "DependencyConfigFieldsDto": {
      "type": "object",
      "properties": {
        "providerUrlname": {
          "type": "string",
          "description": "isdown provider catalog slug. Required to create a dependency monitor — resolved authoritatively against the isdown catalog, so the friendly name and status page URL always reflect the real provider rather than caller-supplied values. Not sent on a scope-only update."
        },
        "trackedComponentIds": {
          "description": "Component ids to scope tracking to (isdown components.id, not external_id). Omit or set to null to track every component.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "number"
          }
        }
      }
    },
    "DnsRecordsDto": {
      "type": "object",
      "properties": {
        "CNAME": {
          "description": "CNAME DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "MX": {
          "description": "MX DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "NS": {
          "description": "NS DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "A": {
          "description": "A DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "AAAA": {
          "description": "AAAA DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "TXT": {
          "description": "TXT DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "SRV": {
          "description": "SRV DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "PTR": {
          "description": "PTR DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "SOA": {
          "description": "SOA DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "SPF": {
          "description": "SPF DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "DNSKEY": {
          "description": "DNSKEY DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "DS": {
          "description": "DS DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "NSEC": {
          "description": "NSEC DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "NSEC3": {
          "description": "NSEC3 DNS records",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "PermissiveMonitorConfigDto": {
      "type": "object",
      "properties": {
        "dnsRecords": {
          "description": "DNS records configuration. DNS monitors only. Send null to remove.",
          "nullable": true,
          "allOf": [
            {
              "$ref": "#/$defs/DnsRecordsDto"
            }
          ]
        },
        "sslExpirationPeriodDays": {
          "maxItems": 10,
          "description": "Days before certificate expiry to send SSL expiration reminders (0-365, max 10 items). Requires the top-level `sslExpirationReminder` flag to be enabled. HTTP, Keyword and API monitors only. Send null to remove.",
          "type": [
            "array",
            "null"
          ],
          "items": {
            "type": "number",
            "maximum": 365,
            "minimum": 0
          }
        },
        "apiAssertions": {
          "nullable": true,
          "description": "API monitor assertions configuration. Required for API monitors — the merged config must still contain it. Send null to remove.",
          "allOf": [
            {
              "$ref": "#/$defs/PublicApiAssertionsDto"
            }
          ]
        },
        "udp": {
          "description": "UDP monitor configuration. UDP monitors only. Send null to remove.",
          "nullable": true,
          "allOf": [
            {
              "$ref": "#/$defs/UdpConfigFieldsDto"
            }
          ]
        },
        "ipVersion": {
          "type": [
            "string",
            "null"
          ],
          "enum": [
            "ipv4Only",
            "ipv6Only"
          ],
          "description": "IP version preference. Omit for default behavior (IPv4 priority, falls back to IPv6). Not supported by DNS, Heartbeat, Visual Comparison or Dependency monitors. Send null to remove."
        },
        "applicationErrorRetries": {
          "type": [
            "number",
            "null"
          ],
          "minimum": 0,
          "maximum": 3,
          "description": "Number of retries on application errors (HTTP 4xx/5xx). 0-3. Connection errors always retry 3 times regardless of this setting. HTTP, Keyword and API monitors only. Send null to remove."
        },
        "visualComparison": {
          "description": "Visual comparison configuration. Visual Comparison monitors only. Send null to remove.",
          "nullable": true,
          "allOf": [
            {
              "$ref": "#/$defs/PermissiveVisualComparisonFieldsDto"
            }
          ]
        },
        "dependency": {
          "description": "Dependency monitor configuration - the isdown provider to track and, optionally, which of its components to scope tracking to. Dependency monitors only. Send null to remove.",
          "nullable": true,
          "allOf": [
            {
              "$ref": "#/$defs/DependencyConfigFieldsDto"
            }
          ]
        }
      }
    },
    "PermissiveVisualComparisonFieldsDto": {
      "type": "object",
      "properties": {
        "sensitivityThreshold": {
          "type": "number",
          "minimum": 0,
          "maximum": 100
        },
        "viewport": {
          "type": "string",
          "enum": [
            "desktop",
            "mobile"
          ]
        },
        "areaCoordinates": {
          "$ref": "#/$defs/VisualComparisonAreaCoordinatesDto"
        }
      }
    },
    "PublicApiAssertionCheckDto": {
      "type": "object",
      "properties": {
        "property": {
          "type": "string",
          "maxLength": 500,
          "description": "Assertion source: safe JSONPath, headers.<name>, status_code, or body"
        },
        "comparison": {
          "enum": [
            "equals",
            "not_equals",
            "contains",
            "not_contains",
            "greater_than",
            "less_than",
            "is_null",
            "is_not_null",
            "is_string",
            "is_number",
            "is_boolean",
            "is_array",
            "is_object",
            "is_empty",
            "is_not_empty",
            "length_equals",
            "length_not_equals",
            "length_greater_than",
            "length_less_than",
            "exists",
            "not_exists"
          ],
          "type": "string",
          "description": "Comparison operator"
        },
        "target": {
          "description": "Expected native JSON value. Arrays and objects are supported for body-JSON equality and containment; omit target for null, type, existence, and empty comparisons.",
          "oneOf": [
            {
              "type": [
                "string",
                "null"
              ]
            },
            {
              "type": "number"
            },
            {
              "type": "boolean"
            },
            {
              "type": "array",
              "items": {}
            },
            {
              "type": "object",
              "additionalProperties": true
            }
          ]
        }
      },
      "required": [
        "property",
        "comparison"
      ]
    },
    "PublicApiAssertionsDto": {
      "type": "object",
      "properties": {
        "logic": {
          "type": "string",
          "enum": [
            "AND",
            "OR"
          ],
          "description": "Logic for combining assertions"
        },
        "checks": {
          "description": "Array of assertion checks (1-5)",
          "type": "array",
          "items": {
            "$ref": "#/$defs/PublicApiAssertionCheckDto"
          }
        }
      },
      "required": [
        "logic",
        "checks"
      ]
    },
    "RegionalDataDto": {
      "type": "object",
      "properties": {
        "REGION": {
          "minItems": 1,
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "na",
              "eu",
              "as",
              "oc"
            ]
          }
        },
        "MANUAL_SELECTED": {
          "type": "boolean",
          "description": "Whether the customer chose REGION explicitly. On update, false means the region was not customer-chosen, so REGION is ignored and the monitor keeps the region it already runs from. Send true to change the region, or omit this field."
        },
        "THRESHOLD": {
          "type": "object",
          "additionalProperties": false,
          "properties": {
            "na": {
              "type": "number"
            },
            "eu": {
              "type": "number"
            },
            "as": {
              "type": "number"
            },
            "oc": {
              "type": "number"
            }
          },
          "description": "Regional threshold values in milliseconds mapped by region code"
        }
      },
      "required": [
        "REGION"
      ]
    },
    "UdpConfigFieldsDto": {
      "type": "object",
      "properties": {
        "payload": {
          "type": "string",
          "description": "UDP payload to send"
        },
        "packetLossThreshold": {
          "type": "number",
          "description": "Packet loss threshold percentage"
        }
      },
      "required": [
        "packetLossThreshold"
      ]
    },
    "VisualComparisonAreaCoordinatesDto": {
      "type": "object",
      "properties": {
        "percentX": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "Left edge (percent)"
        },
        "percentY": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "Top edge (percent)"
        },
        "percentWidth": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "Width (percent)"
        },
        "percentHeight": {
          "type": "number",
          "minimum": 0,
          "maximum": 100,
          "description": "Height (percent)"
        }
      },
      "required": [
        "percentX",
        "percentY",
        "percentWidth",
        "percentHeight"
      ]
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/uptimerobot-update-monitor-dto"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.