> ## Documentation Index
> Fetch the complete documentation index at: https://docs.happyuptime.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Migrate from UptimeRobot

Re-create your monitors in Happy Uptime via config-as-code.

# Migrate from UptimeRobot

UptimeRobot's API exposes monitors and contacts. Use the data to author a `happyuptime.yml` config-as-code file, then `happy config push` to bring everything over.

## Export from UptimeRobot

```bash
curl -X POST https://api.uptimerobot.com/v2/getMonitors \
  -d "api_key=YOUR_API_KEY&format=json"
```

Save the response. The relevant fields:
- `friendly_name` → `name`
- `url` → `url`
- `type` (1=HTTP, 2=keyword, 3=ping, 4=port) → `type` (`http`, `keyword`, `ping`, `tcp`)
- `interval` → `interval` (seconds)

## Author happyuptime.yml

```yaml
monitors:
  - name: Web App
    url: https://myapp.com
    type: http
    interval: 60
    regions: [us-east, us-west, eu-west]

  - name: API
    url: https://api.myapp.com/health
    type: http
    interval: 60
    expected_status_codes: [200]
```

See [config-as-code](/cli/config-as-code) for the full schema.

## Push

```bash
npm i -g happyuptime-cli
happy login
happy config push happyuptime.yml
```

## What's better in Happy Uptime

- **Multi-region** — UptimeRobot Pro gates this; Happy Uptime free tier includes 3 regions.
- **Heartbeat monitoring** — UptimeRobot has it; ours has zero-config status payload + message in alerts.
- **On-call rotations + escalation** — UptimeRobot has none.
- **Status pages** — both ship them, ours has 3 templates + custom CSS.
- **Slack integration** — bidirectional in Happy Uptime (ack/resolve from Slack); UptimeRobot is one-way.