<!-- BusyBot node reference — https://busybot.net/tools/uptime-robot/ -->

> Node: UptimeRobot (`uptime_robot`) · Action · v1
> Category: Development · Credentials: UptimeRobot API (`uptimeRobotApi`)
> Updated: 2026-08-16

# UptimeRobot

> Manage UptimeRobot monitors, alert contacts, maintenance windows, and status pages.

## Overview

UptimeRobot is a website monitoring service that checks if websites, servers, and services are up and running. This tool provides full CRUD operations for monitors (HTTP, keyword, ping, port, heartbeat), alert contacts, maintenance windows, and public status pages. It also retrieves account details. All API operations use POST with form-encoded bodies and API key authentication.

**Category:** Development  
**Tool Name:** `uptime_robot`  
**Version:** 1

**Appearance:** Icon: `lucide-MonitorCheck` | Color: `#3bd671`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **UptimeRobot API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/uptime-robot-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Account | `account` |
| Alert Contact | `alertContact` |
| Maintenance Window | `maintenanceWindow` |
| Monitor | `monitor` |
| Public Status Page | `publicStatusPage` |

### Operations

Each resource has its own Operation list, and most resources reuse the values `create`, `delete`, `get`, `getAll` and `update`. Pick the resource first, then the operation.

| Resource | Operation | Value | Description |
|----------|-----------|-------|-------------|
| Account | Get | `get` | Get account details |
| Monitor | Create | `create` | Create a monitor |
| Monitor | Delete | `delete` | Delete a monitor |
| Monitor | Get | `get` | Get a monitor |
| Monitor | Get Many | `getAll` | Get many monitors |
| Monitor | Reset | `reset` | Reset a monitor |
| Monitor | Update | `update` | Update a monitor |
| Alert Contact | Create | `create` | Create an alert contact |
| Alert Contact | Delete | `delete` | Delete an alert contact |
| Alert Contact | Get | `get` | Get an alert contact |
| Alert Contact | Get Many | `getAll` | Get many alert contacts |
| Alert Contact | Update | `update` | Update an alert contact |
| Maintenance Window | Create | `create` | Create a maintenance window |
| Maintenance Window | Delete | `delete` | Delete a maintenance window |
| Maintenance Window | Get | `get` | Get a maintenance window |
| Maintenance Window | Get Many | `getAll` | Get many maintenance windows |
| Maintenance Window | Update | `update` | Update a maintenance window |
| Public Status Page | Create | `create` | Create a public status page |
| Public Status Page | Delete | `delete` | Delete a public status page |
| Public Status Page | Get | `get` | Get a public status page |
| Public Status Page | Get Many | `getAll` | Get many public status pages |

### Parameters

`Account: Get` takes no parameters of its own.

UptimeRobot's enumerated values are numbers, not strings — a monitor **Type** of `1` means HTTP(S). Lists of IDs are joined with dashes, e.g. `15830-32696-83920`.

#### Monitor: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Friendly Name (`friendlyName`) | `string` | Yes | — | The friendly name of the monitor. |
| Type | `options` | Yes | `1` | The type of the monitor. |
| | | | | Options: `1` (HTTP(S)), `2` (Keyword), `3` (Ping), `4` (Port), `5` (Heartbeat) |
| URL | `string` | Yes | — | The URL/IP of the monitor. |

#### Monitor: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The ID of the monitor. |

#### Monitor: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The ID of the monitor. |

#### Monitor: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Max number of results to return. Accepts 1–100. _(shown when Return All is `false`)_ |
| Filters (`filters`) | `collection` | No | `{}` | Narrow the monitor list and choose how much detail comes back. |
| — Alert Contacts (`alert_contacts`) | `boolean` | No | `false` | Whether the alert contacts set for the monitor to be returned. |
| — Logs | `boolean` | No | `false` | Whether the logs of each monitor will be returned. |
| — Maintenance Window (`mwindow`) | `boolean` | No | `false` | Whether to return the maintenance windows for the monitors. |
| — Monitor IDs (`monitors`) | `string` | No | — | Monitors IDs separated with dash, e.g. 15830-32696-83920. |
| — Response Times (`response_times`) | `boolean` | No | `false` | Whether the response time data of each monitor will be returned. |
| — Search | `string` | No | — | A keyword to be matched against URL and friendly name. |
| — Statuses | `multiOptions` | No | `[]` | Filter by monitor statuses. |
| | | | | Options: `0` (Paused), `1` (Not Checked Yet), `2` (Up), `8` (Seems Down), `9` (Down) |
| — Types | `multiOptions` | No | `[]` | Filter by monitor types. |
| | | | | Options: `1` (HTTP(S)), `2` (Keyword), `3` (Ping), `4` (Port), `5` (Heartbeat) |

#### Monitor: Reset

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The ID of the monitor. |

#### Monitor: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The ID of the monitor. |
| Update Fields (`updateFields`) | `collection` | No | `{}` | Monitor fields to change. Only the fields you add are sent. |
| — Friendly Name (`friendly_name`) | `string` | No | — | The friendly name of the monitor. |
| — HTTP Auth Type (`http_auth_type`) | `options` | No | — | The authentication type for password-protected web pages. |
| | | | | Options: `1` (HTTP Basic), `2` (Digest) |
| — HTTP Method (`http_method`) | `options` | No | — | The HTTP method to be used. |
| | | | | Options: `1` (HEAD), `2` (GET), `3` (POST), `4` (PUT), `5` (PATCH), `6` (DELETE), `7` (OPTIONS) |
| — HTTP Password (`http_password`) | `string` | No | — | The password used for password-protected web pages. |
| — HTTP Username (`http_username`) | `string` | No | — | The username used for password-protected web pages. |
| — Interval | `number` | No | — | The interval for the monitoring check (in seconds). |
| — Port | `number` | No | — | The monitored port. |
| — Status | `options` | No | — | Pause or resume the monitor. |
| | | | | Options: `0` (Pause), `1` (Resume) |
| — Sub Type (`sub_type`) | `options` | No | — | Specify which pre-defined port/service or custom port is monitored. |
| | | | | Options: `1` (HTTP — port 80), `2` (HTTPS — port 443), `3` (FTP — port 21), `4` (SMTP — port 25), `5` (POP3 — port 110), `6` (IMAP — port 143), `99` (Custom Port) |
| — URL | `string` | No | — | The URL/IP of the monitor. |

#### Alert Contact: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Friendly Name (`friendlyName`) | `string` | Yes | — | The friendly name of the alert contact. |
| Type | `options` | Yes | `2` | The type of the alert contact. |
| | | | | Options: `1` (SMS), `2` (E-Mail), `3` (Twitter DM), `4` (Boxcar), `5` (Webhook), `6` (Pushbullet), `9` (Pushover) |
| Value | `string` | Yes | — | The correspondent value for the alert contact type (e.g. email address, phone number, webhook URL). |

#### Alert Contact: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The ID of the alert contact. |

#### Alert Contact: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The ID of the alert contact. |

#### Alert Contact: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Max number of results to return. Accepts 1–100. _(shown when Return All is `false`)_ |
| Filters (`filters`) | `collection` | No | `{}` | Narrow the alert contact list. |
| — Alert Contact IDs (`alert_contacts`) | `string` | No | — | Alert contact IDs separated with dash, e.g. 236-1782-4790. |

#### Alert Contact: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The ID of the alert contact. |
| Update Fields (`updateFields`) | `collection` | No | `{}` | Alert contact fields to change. Only the fields you add are sent. |
| — Friendly Name (`friendly_name`) | `string` | No | — | The friendly name of the alert contact. |
| — Value | `string` | No | — | The correspondent value for the alert contact type (can only be used if it is a Webhook alert contact). |

#### Maintenance Window: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Duration (Minutes) (`duration`) | `number` | Yes | `1` | The maintenance window activation period (minutes). |
| Friendly Name (`friendlyName`) | `string` | Yes | — | The friendly name of the maintenance window. |
| Type | `options` | Yes | `1` | The type of the maintenance window. |
| | | | | Options: `1` (Once), `2` (Daily), `3` (Weekly), `4` (Monthly) |
| Week Day (`weekDay`) | `options` | No | `1` | The day of the week for weekly maintenance windows. _(shown when Type is `3`)_ |
| | | | | Options: `1` (Monday), `2` (Tuesday), `3` (Wednesday), `4` (Thursday), `5` (Friday), `6` (Saturday), `7` (Sunday) |
| Month Day (`monthDay`) | `number` | No | `1` | The day of the month for monthly maintenance windows. Accepts 1–30. _(shown when Type is `4`)_ |
| Start Time (`start_time`) | `dateTime` | Yes | — | The maintenance window start datetime. For one-time windows, the full datetime is used as a Unix timestamp. For recurring windows (daily/weekly/monthly), only the time portion (HH:mm) is used. |

#### Maintenance Window: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The ID of the maintenance window. |

#### Maintenance Window: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The ID of the maintenance window. |

#### Maintenance Window: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Max number of results to return. Accepts 1–100. _(shown when Return All is `false`)_ |
| Filters (`filters`) | `collection` | No | `{}` | Narrow the maintenance window list. |
| — Maintenance Window IDs (`mwindow`) | `string` | No | — | Maintenance windows IDs separated with dash, e.g. 236-1782-4790. |

#### Maintenance Window: Update

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The ID of the maintenance window. |
| Duration (Minutes) (`duration`) | `number` | Yes | `1` | The maintenance window activation period (minutes). |
| Update Fields (`updateFields`) | `collection` | No | `{}` | Maintenance window fields to change. Only the fields you add are sent. |
| — Friendly Name (`friendly_name`) | `string` | No | — | The friendly name of the maintenance window. |
| — Start Time (`start_time`) | `dateTime` | No | — | The maintenance window start datetime. |
| — Type | `options` | No | `1` | The type of the maintenance window. |
| | | | | Options: `1` (Once), `2` (Daily), `3` (Weekly), `4` (Monthly) |
| — Week Day (`weekDay`) | `options` | No | `1` | The day of the week for weekly maintenance windows. _(shown when Type is `3`)_ |
| | | | | Options: `1` (Monday), `2` (Tuesday), `3` (Wednesday), `4` (Thursday), `5` (Friday), `6` (Saturday), `7` (Sunday) |
| — Month Day (`monthDay`) | `number` | No | `1` | The day of the month for monthly maintenance windows. Accepts 1–30. _(shown when Type is `4`)_ |

#### Public Status Page: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Friendly Name (`friendlyName`) | `string` | Yes | — | The friendly name of the status page. |
| Monitor IDs (`monitors`) | `string` | Yes | — | Monitor IDs to be displayed in status page (the values are separated with a dash (-) or 0 for all monitors). |
| Additional Fields (`additionalFields`) | `collection` | No | `{}` | Optional properties to set on the status page. |
| — Custom Domain (`custom_domain`) | `string` | No | — | The domain or subdomain that the status page will run on. |
| — Password | `string` | No | — | The password for the status page. |
| — Sort | `options` | No | `1` | The sorting of the status page. |
| | | | | Options: `1` (Friendly Name A-Z), `2` (Friendly Name Z-A), `3` (Status Up-Down-Paused), `4` (Status Down-Up-Paused) |

#### Public Status Page: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The ID of the public status page. |

#### Public Status Page: Get

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| ID | `string` | Yes | — | The ID of the public status page. |

#### Public Status Page: Get Many

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `50` | Max number of results to return. Accepts 1–100. _(shown when Return All is `false`)_ |
| Filters (`filters`) | `collection` | No | `{}` | Narrow the status page list. |
| — Public Status Page IDs (`psps`) | `string` | No | — | Public status pages IDs separated with dash, e.g. 236-1782-4790. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently. Accepts 1–100. |

## Output Data

The UptimeRobot record is **merged onto the input item's JSON** at the top level — the returned fields sit alongside the fields the item already carried, so downstream nodes address them directly (`{{ $json.id }}`). A response field with the same name as an existing item field overwrites it. The API's envelope is unwrapped for you, so you read `friendly_name` rather than `monitor.friendly_name`.

**Binary data is not forwarded.** Unlike most nodes, this one builds its output items from JSON only, so any binary property on the input item is dropped. Branch binary around this node if a later step needs it.

**Both Get and Get Many fan out**, because UptimeRobot answers a single-record lookup with a filtered list. Each record becomes its own output item, still merged onto the same input JSON — a Get normally yields one, a Get Many yields as many as matched.

| Operations | Output |
|------------|--------|
| Monitor, Alert Contact, Maintenance Window and Public Status Page — Get and Get Many | **One output item per record returned.** Turn Return All on to page through everything; leave it off and Limit caps the page. |
| Account Get; Monitor Create, Delete, Reset and Update; Alert Contact Create, Delete and Update; Maintenance Window Create and Update; Public Status Page Create and Delete | One output item carrying the returned record. |
| Maintenance Window Delete | One output item carrying `status`, set to the message the API returned. |

If a call returns nothing at all, one output item is still emitted carrying the input item's JSON unchanged.

## Usage Examples

- Create an HTTP monitor to check website uptime every 5 minutes
- List all monitors that are currently down
- Create an email alert contact for downtime notifications
- Set up a maintenance window for scheduled server updates
- Create a public status page showing monitor statuses
- Reset a monitor to clear its statistics
- Get account details including monitor limits

## Example Configuration

Read the account's plan and monitor limits:

```json
{
  "type": "uptime_robot",
  "parameters": {
    "resource": "account",
    "operation": "get"
  }
}
```

Create an HTTP(S) monitor:

```json
{
  "type": "uptime_robot",
  "parameters": {
    "resource": "monitor",
    "operation": "create",
    "friendlyName": "My Website Monitor",
    "type": 1,
    "url": "https://example.com"
  }
}
```

List monitors that are down or look down, with their logs and response times:

```json
{
  "type": "uptime_robot",
  "parameters": {
    "resource": "monitor",
    "operation": "getAll",
    "returnAll": false,
    "limit": 10,
    "filters": {
      "logs": true,
      "response_times": true,
      "statuses": [8, 9],
      "search": "example"
    }
  }
}
```

Rename a monitor and slow its check interval to ten minutes:

```json
{
  "type": "uptime_robot",
  "parameters": {
    "resource": "monitor",
    "operation": "update",
    "id": "{{ $json.id }}",
    "updateFields": {
      "friendly_name": "Updated Monitor Name",
      "interval": 600,
      "url": "https://newexample.com"
    }
  }
}
```

Pause a monitor:

```json
{
  "type": "uptime_robot",
  "parameters": {
    "resource": "monitor",
    "operation": "update",
    "id": "{{ $json.id }}",
    "updateFields": {
      "status": 0
    }
  }
}
```

Add an email alert contact:

```json
{
  "type": "uptime_robot",
  "parameters": {
    "resource": "alertContact",
    "operation": "create",
    "friendlyName": "Admin Email",
    "type": 2,
    "value": "admin@example.com"
  }
}
```

Schedule a one-hour maintenance window every Monday:

```json
{
  "type": "uptime_robot",
  "parameters": {
    "resource": "maintenanceWindow",
    "operation": "create",
    "friendlyName": "Weekly Maintenance",
    "type": 3,
    "weekDay": 1,
    "duration": 60,
    "start_time": "2026-01-05T02:00:00Z"
  }
}
```

Publish a password-protected status page on your own domain:

```json
{
  "type": "uptime_robot",
  "parameters": {
    "resource": "publicStatusPage",
    "operation": "create",
    "friendlyName": "Public Status",
    "monitors": "123-456-789",
    "additionalFields": {
      "custom_domain": "status.mysite.com",
      "password": "{{ $json.statusPagePassword }}",
      "sort": 3
    }
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Manage UptimeRobot monitors, alert contacts, maintenance windows, and public status pages for website uptime monitoring.

### Monitor Management Workflow

1. **Create** the monitor with its type and URL.
2. **Get** it by ID to read current status, or **Get Many** with **Statuses** to sweep for anything down.
3. **Update** settings through **Update Fields** — the same operation pauses (`status` `0`) and resumes (`status` `1`) a monitor.
4. **Reset** clears a monitor's accumulated statistics without deleting it.

### Maintenance Window Scheduling

- One-time windows use Type `1` and consume the full **Start Time** datetime.
- Recurring windows use Type `2` (daily), `3` (weekly, with **Week Day**) or `4` (monthly, with **Month Day**), and only the time portion of **Start Time** is used.
- **Duration (Minutes)** is required on both Create and Update, even when you are only changing the name.

### Batch Operations

Use **Return All** for a complete sweep, or leave it off and set **Limit** for a predictable page. **Filters** narrows by ID list, keyword, status or type, and the boolean filters on monitors control how much extra detail (logs, response times, alert contacts, maintenance windows) each record carries.
</content>