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 |
JSON Schema
{
"$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.
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.