Create Monitor
createMonitorCreate a new monitor in Uptime Kuma with type-specific settings (URL, hostname, port, etc.) to start tracking uptime.
Instructions
Creates a new monitor in Uptime Kuma. Requires at minimum a name and type. Use listMonitorTypes to see supported types. For HTTP monitors include url; for TCP/port monitors include hostname and port; for json-query include url, jsonPath, jsonPathOperator and expectedValue. A push monitor is given a generated push token (Uptime Kuma only generates one in its own web UI) and the resulting ping URL is returned. timeout defaults to 0.8 x interval seconds for polled types.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | No | URL to monitor (required for http/keyword/json-query types) | |
| body | No | HTTP request body | |
| name | Yes | Display name for the monitor | |
| port | No | Port number (required for port/tcp types) | |
| tags | No | Tags to assign to the monitor | |
| type | Yes | Monitor type (e.g. http, port, ping, dns, push, keyword). Use listMonitorTypes for all options. | |
| active | No | Whether the monitor starts checking immediately (default: true). Pass false to create it paused. | |
| method | No | HTTP method (GET, POST, etc.) for http type | |
| parent | No | Parent group monitor ID | |
| headers | No | HTTP headers as JSON string | |
| keyword | No | Keyword to search for (keyword monitor type) | |
| timeout | No | Request timeout in SECONDS. Omit for 0.8 x interval. Avoid 0: Uptime Kuma's runtime fallback for a stored 0 computes interval * 1000 * 0.8 and then multiplies by 1000 again, yielding a ~13 hour timeout, so the monitor can never report DOWN against a host that accepts the connection and never answers. | |
| hostname | No | Hostname to monitor (required for port/ping/dns types) | |
| interval | No | Check interval in seconds (default: 60) | |
| jsonPath | No | JSONata expression for json-query monitors. Must resolve to a primitive. | |
| ignoreTls | No | Ignore TLS/SSL errors | |
| json_path | No | Alias for jsonPath (the database column name). Prefer jsonPath. | |
| pushToken | No | Push token for push monitors — the secret in the ping URL. Omit and one is generated and returned. | |
| maxretries | No | Max retries before marking as down (default: 0) | |
| push_token | No | Alias for pushToken (the database column name). Prefer pushToken. | |
| upsideDown | No | Invert status — treat up as down | |
| description | No | Free-text description shown on the monitor page | |
| docker_host | No | Docker host ID (required for docker type). Use listDockerHosts to find available IDs. | |
| maxredirects | No | Max HTTP redirects (default: 10) | |
| expectedValue | No | Threshold the json-query result is compared against. Stored as a string. | |
| invertKeyword | No | Invert keyword match | |
| retryInterval | No | Retry interval in seconds when monitor is down (default: 60) | |
| expected_value | No | Alias for expectedValue. Prefer expectedValue. | |
| resendInterval | No | Resend notification every N checks while down (0 = disabled, the default) | |
| dns_resolve_type | No | DNS record type to query (required for dns type, default: A) | |
| docker_container | No | Docker container name (required for docker type) | |
| jsonPathOperator | No | Comparison operator for json-query monitors. UP while value <operator> expectedValue. | |
| dns_resolve_server | No | DNS server to use for resolution (required for dns type, default: 1.1.1.1) | |
| json_path_operator | No | Alias for jsonPathOperator. Prefer jsonPathOperator. | |
| notificationIDList | No | Map of notification IDs to enable (e.g. {"1": true, "3": true}) | |
| accepted_statuscodes | No | Accepted HTTP status codes (e.g. ["200-299"]) |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | ||
| msg | No | ||
| pushURL | No | Push monitors only. The URL the sender should GET. | |
| timeout | No | The timeout in seconds actually stored, including the default applied when omitted. | |
| monitorID | No | ||
| pushToken | No | Push monitors only. The token, so the sender can be wired up without a second, wider read. |