Migrate · RealUptime Monitor
Migrate from Upptime
Upptime is a clever free setup: a repository whose scheduled GitHub Actions workflow checks your sites, opens issues when one is down, and publishes a status page. The catch is the schedule. Its workflow runs every five minutes at best, scheduled runs can start late or be dropped when the runners are busy, and the checks run from shared runner addresses that some sites block, which shows up as false alarms. The site list is one YAML file, so moving it takes one upload.
Already have a RealUptime account? Open Import from another service and bring your monitors across with the CSV import.
Rather send us the list? Email it to support@realuptime.io and we will import it within 48 hours.
Upload your .upptimerc.yml
In your dashboard, open Import from another service and upload the .upptimerc.yml from your Upptime repository under Import from Upptime. The importer reads the sites list and nothing else: a token, notification settings or request headers in the file are ignored and never kept. A site whose URL is a repository secret (written as $SECRET_SITE) has no address in the file, so it is listed for you to add by hand.
Review what each site becomes
The preview lists every site with what it becomes. HTTP sites become HTTP checks; tcp-ping sites become TCP checks on the same port. A __dangerous__body_down_if_text_missing rule becomes a body assertion that the text is present, and __dangerous__body_down one that it is absent. Checks start at five minutes, the interval Upptime ran at, and you can shorten them afterwards: Free checks every minute from four regions (US-East, US-West, Europe, and Asia-Pacific). Imports count against your plan's monitors, 10 on Free.
Replace the GitHub-hosted status page
The imported checks land on your RealUptime Status page as components, so the status page comes with them. Move the custom domain you used for Upptime's site to the new page (Pro and Business), then disable the Upptime workflows in the repository so the two do not both alert. Upptime's response time and uptime history stays in the repository's history/ and api/ folders; RealUptime's figures start from its own first check, because it only reports what it measured.
Feature mapping
Upptime site settings, mapped to RealUptime Monitor
What the importer creates from each kind of Upptime site, by the setting names in Upptime's own configuration types.
check: http (the default)
http check, imported · Have
Name and URL carry over. Non-GET methods come across as GET, and the preview says so.
check: tcp-ping or tcp
tcp check, imported · Have
Host and port carry over, for public addresses.
__dangerous__body_down_if_text_missing and __dangerous__body_down
Body assertion, imported · Have
Case-sensitive contains or does-not-contain.
expectedStatusCodes, maxResponseTime, headers
Status and latency assertions, request headers, set by hand · Partial
Not read from the file, so headers holding secrets never leave your repository.
check: ws and ssl
No WebSocket check; certificate expiry is read daily for every HTTPS check · Partial
Listed as skipped in the preview.
Five-minute GitHub Actions schedule
Fixed probe regions, every minute on Free · Have
Checks run from four regions on Free, eight on Pro, all ten on Business, and a failure has to persist before it alerts.
Issues opened on downtime, status site on GitHub Pages
Incidents on a hosted status page with subscribers · Have
The account comes with all four products. RealUptime Monitor runs the imported checks, with a REST API, Terraform provider and CLI on every plan, and RealUptime Status publishes them. RealUptime Errors catches the exceptions an uptime check cannot see, free for 10,000 events a month. RealUptime Outages tracks the vendors you depend on and needs no account. If you keep any GitHub Actions schedules of your own, see catching missed scheduled runs.
Verified November 1, 2026. Sources: Upptime workflow template: schedule */5 * * * *, Upptime configuration types (uptime-monitor src/interfaces.ts), Upptime issue 1083: frequent false positive downtime alerts despite service being up, GitHub Docs: the schedule event can be delayed during periods of high load.
Ready to move your checks over?
For the full, sourced pricing and feature comparison against Upptime, see Every RealUptime comparison. For why a check should run from more than one region at all, see why a status page can show all green during a real outage.