Skip to main content

Import Monitors

Migrate your existing monitors, notification channels, and check history from other monitoring services.

Supported Services

ServiceMonitorsChannelsHistoryAuth Method
UptimeRobot✅ Email, Webhook, Slack✅ Response times + downtime logsAPI key
Pingdom✅ Check resultsBearer token
StatusCake✅ Contact groups✅ Uptime historyBearer token
Better Stack✅ Response times + incidentsBearer token
Oh Dear✅ Uptime + downtime periodsBearer token
Uptime KumaJSON backup file

How to Import

  1. Go to your project's Monitors tab
  2. Click Import
  3. Select your monitoring service
  4. Enter your API key (or paste JSON for Uptime Kuma)
  5. Select which monitors to import
  6. Review heartbeat URL mappings (if applicable)
  7. Optionally import notification channels
  8. Optionally import check history (response times and uptime data)

History Import

When you import history, kamustatus fetches response times and downtime events from your previous service and stores them as hourly rollups. This means:

  • Your uptime charts show data from before the migration
  • Uptime percentage calculations include historical data
  • Response time graphs have historical baselines

You can choose how far back to import: 30, 90, 180, or 365 days.

tip

Import history after importing monitors — the history import matches monitors by name.


UptimeRobot

Getting Your API Key

In UptimeRobot: My Settings → API Settings → Read-Only API Key

A read-only key is sufficient for importing.

Supported Monitor Types

UptimeRobot Typekamustatus Type
HTTP (type 1)HTTP
Keyword (type 2)HTTP with body match
Ping (type 3)Ping
Port (type 4)TCP
Heartbeat (type 5)Heartbeat (new URL)

Notification Channels

Email, webhook, and Slack contacts are imported as notification channels.

Heartbeat Monitors

Heartbeat monitors get a new kamustatus ping URL. After import, you'll see a mapping of old → new URLs. Update your services to ping the new URLs.


Pingdom

Getting Your API Token

In Pingdom: My Pingdom → API Tokens → Add API Token

Supported Monitor Types

Pingdom Typekamustatus Type
HTTP / HTTPSHTTP
PingPing
TCPTCP
DNSDNS
SMTP / POP3 / IMAPTCP

History

Pingdom results include response times and up/down status per check. History is imported from the /results API endpoint.


StatusCake

Getting Your API Token

In StatusCake: Account → API Testing → Copy API Key

Supported Monitor Types

StatusCake Typekamustatus Type
HTTPHTTP
HEADHTTP (HEAD)
TCPTCP
DNSDNS
PINGPing
SSH / SMTPTCP
PUSHHeartbeat

Notification Channels

Contact groups with email addresses are imported.


Better Stack (Better Uptime)

Getting Your API Token

In Better Stack: Settings → API Tokens

You can use either a Global API Token or an Uptime API Token (team-scoped).

History

Response times are imported per monitor. Downtime events are imported from the incidents API.


Oh Dear

Getting Your API Token

In Oh Dear: Dashboard → API Access

Tokens can be scoped to specific monitors.

History

Oh Dear provides hourly uptime and response time data, plus downtime period logs.


Uptime Kuma

Uptime Kuma uses Socket.IO instead of REST, so import works via JSON backup file.

How to Export

In Uptime Kuma: Settings → Backup → Export

This downloads a JSON file with all your monitors.

How to Import

  1. Select "Uptime Kuma" as the provider
  2. Paste the contents of the exported JSON file into the text area
  3. Select which monitors to import

Limitations

  • No history import — Uptime Kuma's backup doesn't include check results
  • No notification channels — notification settings are not in the backup format

Supported Monitor Types

Uptime Kuma Typekamustatus Type
HTTP / Keyword / gRPCHTTP
Ping / TailscalePing
TCP / Port / MQTT / Redis / KafkaTCP
DNSDNS
PushHeartbeat
Docker / Steam / SQL databasesTCP

API Import

You can also use the API directly for scripted migrations:

# List available providers
curl -H "Authorization: Bearer km_..." \
https://api.kamustatus.com/api/import/providers

# Preview monitors from a provider
curl -X POST -H "Authorization: Bearer km_..." \
-H "Content-Type: application/json" \
-d '{"apiKey": "ur_...", "provider": "uptimerobot"}' \
https://api.kamustatus.com/api/import/PROJECT_ID/preview

# Import monitors
curl -X POST -H "Authorization: Bearer km_..." \
-H "Content-Type: application/json" \
-d '{"apiKey": "ur_...", "provider": "uptimerobot", "monitorIds": ["123", "456"]}' \
https://api.kamustatus.com/api/import/PROJECT_ID/monitors

# Import history (last 90 days)
curl -X POST -H "Authorization: Bearer km_..." \
-H "Content-Type: application/json" \
-d '{"apiKey": "ur_...", "provider": "uptimerobot", "days": 90}' \
https://api.kamustatus.com/api/import/PROJECT_ID/history