UptimeRobot · Schema

CreateApiMonitorDto

Uptime MonitoringStatus PagesIncident ManagementDevOpsMonitoring Integrations

Properties

Name Type Description
friendlyName string Friendly name of the monitor
interval number Interval of check in seconds
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
tagNames array Tags to be assigned to the monitor
maintenanceWindowsIds array Maintenance windows to be assigned to the monitor
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.
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.
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.
groupId number Monitor group ID to assign the monitor to. Default is 0 (no 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.
httpMethodType string HTTP method to use for the request. Defaults to GET. HEAD is not allowed for API monitors because assertions need a response body
authType string Authentication method to use for the request
httpUsername string Username for HTTP Basic authentication
httpPassword string Password for HTTP Basic authentication
postValueData object Data to be sent in the request. Not applicable for HTTP method type = HEAD. Can be a JSON object or string
postValueType string Type of data payload to be sent in the request. Affects what data is accepted by "postValueData" field
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
sslExpirationReminder boolean Whether to send a notification when the SSL certificate is about to expire
domainExpirationReminder boolean Whether to send a notification when the domain is about to expire
followRedirections boolean Whether to follow redirections
type string
url string URL of the API endpoint to monitor
timeout number Timeout of check in seconds
config object API monitor configuration. `apiAssertions` is required — at least one check must be provided
View JSON Schema on GitHub

JSON Schema

uptimerobot-create-api-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-create-api-monitor-dto-schema.json",
  "title": "CreateApiMonitorDto",
  "x-generated": "2026-10-13",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/uptimerobot-openapi.yaml#/components/schemas/CreateApiMonitorDto",
  "type": "object",
  "properties": {
    "friendlyName": {
      "type": "string",
      "description": "Friendly name of the monitor",
      "maxLength": 250
    },
    "interval": {
      "type": "number",
      "minimum": 30,
      "description": "Interval of check in seconds"
    },
    "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"
      }
    },
    "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"
      }
    },
    "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"
        }
      ]
    },
    "regionalData": {
      "enum": [
        "na",
        "eu",
        "as",
        "oc"
      ],
      "type": "string",
      "deprecated": true,
      "description": "Region for monitoring: na (North America), eu (Europe), as (Asia), oc (Oceania). Note: If both regionalData and regionData are provided, regionData takes priority."
    },
    "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."
    },
    "groupId": {
      "type": "number",
      "minimum": 0,
      "description": "Monitor group ID to assign the monitor to. Default is 0 (no group)."
    },
    "customFields": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "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."
    },
    "httpMethodType": {
      "type": "string",
      "enum": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE",
        "OPTIONS",
        "QUERY"
      ],
      "description": "HTTP method to use for the request. Defaults to GET. HEAD is not allowed for API monitors because assertions need a response body"
    },
    "authType": {
      "type": "string",
      "enum": [
        "NONE",
        "HTTP_BASIC",
        "DIGEST",
        "BEARER"
      ],
      "description": "Authentication method to use for the request"
    },
    "httpUsername": {
      "type": "string",
      "maxLength": 255,
      "description": "Username for HTTP Basic authentication"
    },
    "httpPassword": {
      "type": "string",
      "maxLength": 255,
      "description": "Password for HTTP Basic authentication"
    },
    "postValueData": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "object"
        }
      ],
      "description": "Data to be sent in the request. Not applicable for HTTP method type = HEAD. Can be a JSON object 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"
    },
    "customHttpHeaders": {
      "type": "object",
      "additionalProperties": {
        "type": "string"
      },
      "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": {
      "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"
    },
    "sslExpirationReminder": {
      "type": "boolean",
      "description": "Whether to send a notification when the SSL certificate is about to expire"
    },
    "domainExpirationReminder": {
      "type": "boolean",
      "description": "Whether to send a notification when the domain is about to expire"
    },
    "followRedirections": {
      "type": "boolean",
      "description": "Whether to follow redirections"
    },
    "type": {
      "type": "string",
      "enum": [
        "API"
      ]
    },
    "url": {
      "type": "string",
      "maxLength": 10000,
      "description": "URL of the API endpoint to monitor"
    },
    "timeout": {
      "type": "number",
      "minimum": 0,
      "maximum": 60,
      "description": "Timeout of check in seconds"
    },
    "config": {
      "description": "API monitor configuration. `apiAssertions` is required — at least one check must be provided",
      "allOf": [
        {
          "$ref": "#/$defs/ApiMonitorConfigDto"
        }
      ]
    }
  },
  "required": [
    "friendlyName",
    "interval",
    "type",
    "url",
    "timeout",
    "config"
  ],
  "$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"
      ]
    },
    "ApiMonitorConfigDto": {
      "type": "object",
      "properties": {
        "apiAssertions": {
          "description": "API monitor assertions configuration",
          "allOf": [
            {
              "$ref": "#/$defs/PublicApiAssertionsDto"
            }
          ]
        },
        "sslExpirationPeriodDays": {
          "maxItems": 10,
          "description": "SSL expiration period in days (0-365, max 10 items)",
          "type": "array",
          "items": {
            "type": "number",
            "maximum": 365,
            "minimum": 0
          }
        },
        "ipVersion": {
          "type": "string",
          "enum": [
            "ipv4Only",
            "ipv6Only"
          ],
          "description": "IP version preference. Omit for default behavior (IPv4 priority, falls back to IPv6)"
        },
        "applicationErrorRetries": {
          "type": "number",
          "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."
        }
      },
      "required": [
        "apiAssertions"
      ]
    },
    "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"
      ]
    }
  }
}

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-create-api-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.