UptimeRobot is a solid starting point for teams getting started with uptime monitoring. But as your infrastructure grows, you often hit its limits: a 5-minute minimum check interval on the free tier, no multi-region consensus, and limited status page customization. This guide walks you through migrating your UptimeRobot monitors to StackEye — step by step.
Why migrate?
- Faster check intervals — UptimeRobot free plan checks every 5 minutes. StackEye Starter ($5/mo) checks every 2 minutes, and Team ($29/mo) checks every 30 seconds.
- Multi-region consensus — UptimeRobot checks from a single location. StackEye probes from 3 regions simultaneously and only alerts when a majority of regions report failure, eliminating false positives from regional blips.
- Scoped API keys — UptimeRobot has no per-key permission scoping. StackEye API keys carry granular permissions (
probes:read,probes:write, etc.) — ideal for CI/CD pipelines and read-only dashboards. - Notification channel grouping — Route alerts per monitor or team, not just globally.
- Brandable status pages — Custom domain, logo, and color scheme on all paid plans.
Feature mapping
| UptimeRobot | StackEye equivalent |
|---|---|
| Monitor | Probe |
| Alert Contact | Notification Channel |
| Status Page | Status Page |
| HTTP(S) Monitor | HTTP Probe |
| Keyword Monitor | HTTP Probe with content assertion |
| Port Monitor | TCP Probe (Phase 2) |
| Ping Monitor | Ping Probe (Phase 2) |
| API key | API Key (se_<64-hex-chars>) |
| Response time graphs | Reliability & latency dashboard |
Check interval comparison
| Plan | UptimeRobot | StackEye |
|---|---|---|
| Free | 5 min | 5 min (10 monitors) |
| Entry paid | 1 min | 2 min — $5/mo (25 monitors) |
| Pro | 30 sec | 1 min — $12/mo (100 monitors) |
| Team | — | 30 sec — $29/mo (500 monitors) |
Step 1: Export your monitors from UptimeRobot
Log in to UptimeRobot, go to My Monitors, click the bulk action dropdown, and select Export as CSV. The CSV includes monitor name, URL, check interval, and alert contacts.
Step 2: Sign up for StackEye
Visit stackeye.io/signup and start your 14-day free trial — all paid features included, no credit card required. Complete the onboarding wizard to create your organization.
Step 3: Set up notification channels
Before importing probes, configure where alerts go. Navigate to Channels in the sidebar and add each alert destination: Email, Slack (OAuth integration), or Webhook. Use the Send Test button to confirm each channel is working before proceeding.
Step 4: Import probes via CLI
The StackEye CLI imports probes from a YAML or JSON file. Convert your UptimeRobot CSV export to StackEye YAML format:
# Install CLI
brew install stackeye-io/tap/stackeye # macOS
# or: curl -sSfL https://stackeye.io/install.sh | sh
# Authenticate
stackeye auth loginCreate a YAML file (probes.yaml) with your monitor list:
# probes.yaml — one entry per UptimeRobot monitor
- name: "My Website"
url: "https://example.com"
check_type: "http"
method: "GET"
interval_seconds: 60
regions:
- nyc3
- sfo3
- chi1
expected_status_codes: [200]
ssl_check_enabled: true
follow_redirects: trueThen preview and import:
# Preview without creating
stackeye probe import --file probes.yaml --dry-run
# Import all probes
stackeye probe import --file probes.yamlNote: Labels are not applied during import. If your YAML file includes labels, they appear in --dry-run output but are silently dropped when the actual import runs. Apply labels after import using stackeye probe label:
# Get the probe IDs of newly imported probes
stackeye probe list
# Apply labels to each probe (--no-input skips confirmation prompts)
stackeye probe label PROBE_ID env=prod tier=web --no-inputStep 5: Import via API (programmatic)
For large monitor lists, use the REST API directly:
API_KEY="se_..."
curl -X POST https://api.stackeye.io/v1/probes \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "My Website",
"url": "https://example.com",
"interval": 60,
"regions": ["nyc3", "sfo3", "chi1"],
"channels": ["channel-id-here"]
}'Step 6: Verify configuration
After importing, go to the Dashboard — all probes should show their initial status within 5 minutes. Check the Regions column to confirm each probe shows green for all configured regions.
Step 7: Set up your status page
Navigate to Status Pages → New Status Page. Name it, assign your imported probes, set your custom domain (CNAME status.yourdomain.com → pages.stackeye.io), and publish.
Step 8: Cutover checklist
Before canceling UptimeRobot, verify:
- All probes imported and showing correct status
- All notification channels tested and confirmed
- Team members invited (Settings → Team)
- Status page live and accessible
- API integrations updated to use StackEye API key (
se_...) - At least 48 hours of clean operation observed in StackEye
Troubleshooting
Probe shows DOWN immediately after import: Your URL may resolve to a private IP address. StackEye probes run from regional cloud clusters and cannot reach private networks. Use a StackEye Private Relay agent for internal services.
Alerts not firing: Verify the notification channel is attached to the probe. Go to the probe → Edit → Channels tab.
Check interval not matching: Free tier is capped at 5-minute intervals. Upgrade to Starter ($5/mo) for 2-minute intervals.
Start your 14-day free trial →
← Back to Blog