Migrating from UptimeRobot to Miterl: A Complete Guide
Considering a Move Away from UptimeRobot?
UptimeRobot has been the go-to uptime monitoring tool for years, largely because of its generous free plan. That changed in December 2024: the free plan is now restricted to personal, non-commercial use only. Agencies monitoring client sites, freelancers managing production deployments, and any commercial use case now require a paid plan.
This guide covers why agencies are switching, how Miterl compares to UptimeRobot on the features that matter most, and the exact steps to migrate your monitors with no monitoring gaps.
Why Agencies Are Leaving UptimeRobot
The Commercial Use Restriction
The rule change announced in October 2024 (effective December 1, 2024) means that using UptimeRobot's free tier for agency work violates their Terms of Service. Any monitoring of client sites, SaaS products, or revenue-generating projects requires a paid subscription. For agencies that had been relying on the free plan to manage dozens of client sites, this created an unexpected cost.
English-Only Interface and Missing Japanese Chat Integrations
UptimeRobot's dashboard is English-only. It does not support Chatwork or LINE notifications — two tools that dominate team and client communication in Japan. Agencies serving Japanese clients end up bridging the gap manually, which adds friction to incident response workflows.
No Client-Level Workspace Separation
Managing 30 client sites in a single UptimeRobot account means everything lives in one flat list, distinguished only by tags. There is no native way to give a client PM view-only access to their monitors, or to generate a clean per-client uptime report without manual filtering.
UptimeRobot vs. Miterl: Feature Comparison
| Feature | UptimeRobot | Miterl |
|---|---|---|
| Free plan for commercial use | Not allowed (since Dec 2024) | Trial use available |
| Shortest check interval | 60s (paid) | 60s |
| SSL certificate monitoring | Yes | Yes |
| Domain expiry (WHOIS) monitoring | Yes | Yes |
| Slack alerts | Yes | Yes |
| Chatwork alerts | No | Yes |
| LINE alerts | No | Yes |
| Japanese UI | No | Yes |
| Per-client workspace isolation | No | Yes |
| Automated monthly uptime reports | Limited | Yes |
| Status page with custom domain | Paid plan | Paid plan |
| White-label (remove branding) | No | Yes (Standard+) |
| Incident investigation support | No | Yes (Pro) |
The four areas where Miterl most clearly differentiates from UptimeRobot are: Japanese-language UI, Chatwork/LINE notification support, workspace-level client separation, and incident investigation on the Pro plan.
Migration Steps: Moving Your Monitors to Miterl
Step 1: Export Your UptimeRobot Monitor List
Open the UptimeRobot dashboard and use the CSV export feature to download your current monitor list. You need the following details for each monitor:
- URL (e.g.,
https://client-site.example.com) - Monitor type (HTTP, SSL, keyword, etc.)
- Check interval
- Alert destinations (email addresses, Slack webhook URLs)
Step 2: Sign Up for Miterl and Create Alert Contacts
Sign up for Miterl and head to Alert Contacts in the dashboard. Alert contacts are created through the dashboard UI. Once created, you can fetch their IDs via the API and wire them into monitors.
# List your alert contacts and their IDs
curl -s https://miterl.com/api/v1/alert-contacts \
-H "Authorization: Bearer YOUR_API_KEY"
Use the returned id values as alert_contact_ids when creating monitors in the next steps.
Step 3: Create Workspaces per Client
In the dashboard, click your workspace name in the top-left and select "Create new workspace." Create one workspace per client to keep their monitors and reports isolated.
# Create a workspace via the API
curl -X POST https://miterl.com/api/v1/workspaces \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"name": "Acme Corp"}'
Use the returned workspace id as workspace_id when adding monitors for that client.
Step 4: Recreate Your Monitors in Miterl
In Miterl, each check type (HTTP, SSL, domain expiry via WHOIS) is its own monitor with a distinct type value. HTTP monitors do not have an inline SSL check flag — SSL monitoring is a separate monitor.
# HTTP uptime monitor
curl -X POST https://miterl.com/api/v1/monitors \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corp - Corporate Site",
"url": "https://acme-client.example.com",
"type": "http",
"interval_seconds": 60,
"workspace_id": 1,
"alert_contact_ids": [1, 2]
}'
# SSL certificate expiry monitor (separate type: "ssl")
curl -X POST https://miterl.com/api/v1/monitors \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corp - SSL Certificate",
"url": "https://acme-client.example.com",
"type": "ssl",
"interval_seconds": 86400,
"ssl_expiry_alert_days": 30,
"workspace_id": 1,
"alert_contact_ids": [2]
}'
# Domain expiry monitor (separate type: "whois")
curl -X POST https://miterl.com/api/v1/monitors \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "Acme Corp - Domain Expiry",
"url": "https://acme-client.example.com",
"type": "whois",
"interval_seconds": 86400,
"whois_expiry_alert_days": 30,
"workspace_id": 1,
"alert_contact_ids": [1]
}'
For a complete walkthrough of the initial setup, see the Miterl Setup Guide for Agencies.
Step 5: Set Up Your Status Page
From the dashboard, go to Status Pages, choose which monitors to display, and publish. On Standard and above, you can point a custom domain (e.g., status.acme-client.com) using a CNAME record and remove Miterl branding entirely.
Step 6: Verify and Decommission UptimeRobot
Run both tools in parallel until you have confirmed that:
- All Miterl monitors show "UP"
- A test alert arrives in the correct channels (Slack, Chatwork, email, etc.)
- The status page renders correctly
Once verified, pause or delete your UptimeRobot monitors. Cancel the UptimeRobot subscription after confirming Miterl is fully operational to avoid double-billing.
Bulk Migration Script for Multiple Client Sites
For agencies migrating more than 10 sites, a shell script is the most practical approach:
#!/bin/bash
API_KEY="YOUR_API_KEY"
WORKSPACE_ID=1
ALERT_IDS="[1,2]"
# Add all client site URLs here
SITES=(
"https://client-a.example.com"
"https://client-b.example.com"
"https://client-c.example.com"
)
for URL in "${SITES[@]}"; do
NAME=$(echo $URL | sed 's/https:\/\///' | sed 's/\/.*//')
# HTTP monitor
curl -s -X POST https://miterl.com/api/v1/monitors \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"name\": \"$NAME - HTTP\",
\"url\": \"$URL\",
\"type\": \"http\",
\"interval_seconds\": 60,
\"workspace_id\": $WORKSPACE_ID,
\"alert_contact_ids\": $ALERT_IDS
}"
echo "Added HTTP monitor for $URL"
# SSL monitor
curl -s -X POST https://miterl.com/api/v1/monitors \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d "{
\"name\": \"$NAME - SSL\",
\"url\": \"$URL\",
\"type\": \"ssl\",
\"interval_seconds\": 86400,
\"ssl_expiry_alert_days\": 30,
\"workspace_id\": $WORKSPACE_ID,
\"alert_contact_ids\": $ALERT_IDS
}"
echo "Added SSL monitor for $URL"
done
Frequently Asked Questions
Will there be any monitoring gaps during migration?
No, if you run both tools in parallel. Add your monitors to Miterl, confirm they are working correctly, then stop UptimeRobot. You do not need to cancel UptimeRobot first.
Can I import my UptimeRobot uptime history into Miterl?
Historical uptime data cannot be imported from UptimeRobot. Export your UptimeRobot reports as CSV or save screenshots before migrating. Miterl will start accumulating your uptime history from the day you create each monitor.
Can I test Miterl before committing to a paid plan?
Yes. Miterl's free plan lets you create a small number of monitors to validate the setup, alert channels, and status page before migrating production client sites.
How do I set up Chatwork notifications?
In the dashboard, go to Alert Contacts, choose Chatwork, and enter your Chatwork Bot API token and room ID. Once created, attach the contact to any monitor you want to notify via Chatwork.
How does Miterl's pricing compare to UptimeRobot's paid plans?
UptimeRobot's Solo plan starts at $9/month (annually) and the Team plan at $38/month (annually). Miterl's pricing is listed on the dashboard pricing page. When evaluating cost for agency use, factor in automated monthly reports, white-label, and incident investigation support — capabilities that would require additional tools or manual work on UptimeRobot.
Summary
Migrating from UptimeRobot to Miterl is a straightforward process. With the API-based approach above, most agencies complete the migration in one to two hours. The three most common drivers for agencies making this switch are:
- Avoiding commercial use violations — Miterl supports agency and commercial use at every tier
- Native Chatwork and LINE support — Eliminating the gap in Japan-first communication workflows
- Per-client workspace management — Clean separation of monitors, reports, and permissions by client
Start for free to test the migration workflow before committing to a plan.
For a detailed side-by-side of UptimeRobot, Better Stack, and Miterl, see the Uptime Monitoring Comparison 2026. To see how agencies bundle monitoring into maintenance contracts, read Why Agencies Should Include Monitoring in Contracts. Full API documentation is at /en/docs, and common pre-migration questions are answered in the FAQ.