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