Migrate · RealUptime Monitor
Migrate from Uptime Kuma
Uptime Kuma is a self-hosted monitor, and a good one. People move when they want checks that run from outside their own network, from several regions, with an API and a Terraform provider behind them. You do not have to retype anything: upload what Kuma can export and the importer recreates your monitors, marking anything it cannot bring across rather than dropping it. You can also keep Kuma and only use RealUptime to watch it from outside.
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.
Export from Uptime Kuma
On Uptime Kuma 1.x, open Settings, Backup and use Export. You get a JSON file with your monitor list. Kuma warns that it also holds notification tokens; the importer reads only the monitor list and ignores the rest, but store the file carefully all the same.
Uptime Kuma 2.0 dropped the backup and restore feature, so on 2.x there is no JSON file to export. What 2.x does publish is a Prometheus page at /metrics, and every monitor appears there with its name, type, URL, hostname and port. Create a key under Settings, API Keys, open /metrics with any username and the key as the password, and save the page as a text file. It does not include check intervals, so those start at every minute and you adjust them afterwards.
Upload it and review the preview
In your dashboard, open Import from another service and upload the file under Import from Uptime Kuma. The preview shows every monitor in the file: what it becomes here, its target and its interval. Monitors that cannot come across are listed with their Kuma type and a reason. Pick the ones you want and choose Import selected. Imports count against your plan's monitors, 10 on Free, and the preview says how many more fit.
Point push jobs at their new ping URLs
A Kuma push monitor becomes a heartbeat here. Kuma's push token is Kuma's credential, so the importer never reads it, and each heartbeat gets a new ping URL, listed once on the result screen. Change each job's push line to its new URL. A heartbeat that has never been pinged waits for its first ping and alerts nobody, so you can roll the URLs out at your own pace.
Know what cannot be checked from outside
RealUptime checks from public regions, so a monitor pointed at a private or LAN address (a router, a NAS, a container on an internal network) is refused at import and named on the result screen. For machines inside your network, install the server agent, which reports outward and needs no open port. Or keep Kuma for the inside of the network and use RealUptime only for the thing Kuma cannot do for itself, which is notice when Kuma or its host goes down: see watching Uptime Kuma from outside.
Feature mapping
Uptime Kuma monitor types, mapped to RealUptime Monitor
What the importer creates from each Kuma monitor type, and what you rebuild by hand. Kuma's type names are from its own source.
HTTP(s)
http check, imported · Have
Name, URL and, from a 1.x backup, interval carry over.
HTTP(s) - Keyword
http check with a body assertion, imported · Have
From a 1.x backup the keyword comes across as a case-sensitive body assertion, inverted when Kuma's was. The /metrics page does not carry the keyword, so add it after import.
HTTP(s) - Json Query
http check, imported; JSON assertion added by hand · Partial
The URL comes across. Kuma's query language differs from ours, so the importer does not translate it.
TCP Port
tcp check, imported · Have
Host and port carry over, for public addresses.
DNS
dns check, imported from a 1.x backup · Partial
A, AAAA, CNAME, MX, TXT and NS records come across. Other record types are listed as skipped. The /metrics page does not carry the record type, so DNS monitors from 2.x import as A records.
Push
heartbeat check with a new ping URL, imported · Have
The ping URL necessarily changes; the new one is shown once after the import.
Ping
ping check, rebuilt by hand · Partial
Listed as skipped in the preview with its Kuma type.
Docker container, databases, game servers, MQTT and the rest
No equivalent; the server agent covers host health · Don’t have
Listed as skipped. RealUptime does not log in to databases or brokers to check them.
Group
Tags · Partial
Groups are listed as skipped; add tags to the imported monitors to group them.
What comes with the account is all four products. RealUptime Monitor runs the imported checks, free for 10 monitors and 5 servers, with a REST API, Terraform provider and CLI on every plan. RealUptime Status is the public page those checks feed, with subscribers and scheduled maintenance. 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. One signup provisions the free tier of each, with no card.
Verified November 1, 2026. Sources: Uptime Kuma 2.0.0-beta.0 release notes: drop backup and restore feature (#3892), Uptime Kuma 1.23.16 source: Settings, Backup export, Uptime Kuma 2.5.9 source: /metrics labels.
Ready to move your checks over?
For the full, sourced pricing and feature comparison against Uptime Kuma, see Full Uptime Kuma 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.