openstatus logoPricingDashboard

How to Migrate from Checkly to openstatus

Jul 11, 2026 | by openstatus | [alternative]

Openstatus provides a built-in importer that migrates your Checkly checks, status page, components, incidents, and maintenance windows in a single operation. The entire process takes under two minutes.

This guide covers what gets imported, how Checkly fields map to openstatus, and the steps to run the import from the openstatus dashboard.

For the announcement and background on why openstatus built cross-provider import, see the blog post.

What gets imported

The Checkly importer reads from the Checkly public API (api.checklyhq.com) and maps resources to their openstatus equivalents. Below is a breakdown of every resource type, the fields that carry over, and known caveats.

Monitors

Openstatus imports your Checkly checks as monitors. Each check type is mapped to an openstatus job type; check types with no HTTP-family equivalent are skipped and listed in the preview with a reason.

Checkly check typeopenstatus job typeNotes
API, URLhttpFull request is carried over (URL, method, headers, body)
TCPtcpImported when a target host is available
ICMPicmpImported when a target host is available
DNSdnsImported when a target host is available
SSLsslImported when a target host is available
BROWSER, PLAYWRIGHT, MULTI_STEP, HEARTBEAT, GRPC, TRACEROUTE, AGENTICSkipped — no openstatus monitor equivalent

For each imported check, the following fields carry over:

Checkly fieldopenstatus fieldNotes
request.urlurlThe target endpoint
namenameDisplay name for the monitor
request.methodmethodUppercased (e.g., get becomes GET)
request.headersheadersArray of {key, value} stored as JSON
request.bodybodyCopied as-is
maxResponseTimetimeoutThe hard timeout in milliseconds (defaults to 45s)
frequencyperiodicitySnapped to nearest supported value (see below)
locationsregionsMapped to openstatus probe locations (see below)
activated / mutedactiveA check is active when it is activated and not muted

Region mapping

Checkly runs checks from AWS regions. Openstatus maps each to the nearest probe location:

Checkly locationopenstatus regionLocation
us-east-1, us-east-2iadVirginia, US
us-west-1sjcSan Jose, US
us-west-2seaSeattle, US
ca-central-1yulMontreal, CA
eu-west-1, eu-west-2lhrLondon, UK
eu-west-3cdgParis, FR
eu-central-1fraFrankfurt, DE
eu-north-1arnStockholm, SE
ap-south-1bomMumbai, IN
ap-southeast-1sinSingapore
ap-southeast-2sydSydney, AU
ap-northeast-1, ap-northeast-2nrtTokyo, JP
sa-east-1gruSão Paulo, BR
af-south-1jnbJohannesburg, ZA

If no locations match, the importer defaults to iad.

Frequency mapping

Checkly frequencies are expressed in minutes. Openstatus supports a fixed set of intervals, and each Checkly frequency is snapped to the nearest one:

Checkly frequencyopenstatus periodicity
sub-minute (0)30s
1–2 min1m
5 min5m
10–15 min10m
30 min30m
60 min or longer1h

Openstatus schedules at most once per hour, so longer Checkly frequencies (120 min and up) snap down to 1h.

Status page

The importer reads your Checkly status pages and imports the first one it finds. If you have multiple status pages, pass a specific status page ID to target the one you want.

Checkly fieldopenstatus field
nametitle
urlslug
customDomaincustomDomain
descriptiondescription
logoicon
isPrivatepublished (inverted)

Component groups

Each card on your Checkly status page becomes a component group in openstatus, preserving its name. Component groups are deduplicated on subsequent imports.

Components

The services inside each card become openstatus components. Checkly services are abstract status-page entities that do not reference a specific check through the API, so they import as static components (manual status management, no linked monitor). Their name and ordering are preserved, and each component is placed under the group for its card.

After import, you can open any component and link it to one of your imported monitors to drive its status automatically.

Incidents

Incidents are read from the Checkly status-page incidents API and converted into openstatus status reports. Each incident's incidentUpdates become individual update entries on the report, and the incident's affected services are linked to the corresponding components.

Checkly statusopenstatus status
INVESTIGATINGinvestigating
IDENTIFIEDidentified
MONITORINGmonitoring
RESOLVEDresolved

Incidents and their updates are always created as new entries. Re-running the import will produce duplicates.

Maintenances

Checkly maintenance windows are imported as openstatus maintenances. The startsAt and endsAt fields define the maintenance window, and the description carries over as the message. Checkly ties maintenance windows to checks by tag rather than to status-page services, so imported maintenances are not linked to specific components.

Maintenances are always created as new entries. Re-running the import will produce duplicates.

Subscribers

Checkly does not expose status-page subscribers through its API. Subscriber import is not available. After completing the import, re-invite subscribers from the openstatus dashboard.

Step-by-step walkthrough

Step 1: Get your Checkly API key and account ID

Log into Checkly and open User Settings > API keys. Create a key and copy it. Then open Account Settings > General and copy your account ID. Checkly sends the account ID on every API request, so both values are required.

Step 2: Open the importer and preview

In the openstatus dashboard, go to Status Pages and select a status page (or create one first). Open the Components tab and scroll down to the Import section. Select Checkly as the provider.

Paste your Checkly API key and account ID. If you have multiple Checkly status pages, enter the status page ID to target a specific one. Otherwise, the importer will use the first status page it finds.

Click Preview. The importer validates your credentials and fetches a summary of all resources that will be imported. The preview displays counts for monitors, components, component groups, incidents, and maintenances — and lists any checks that were skipped because their type has no openstatus equivalent. Toggle individual resource types on or off as needed.

Click Import to start the migration. The import typically completes in under a minute.

After the import

Once the import finishes, there are a few things to verify:

  • Skipped checks. Review the preview's skipped list — Browser, Playwright, and multi-step checks are not imported. Recreate any critical ones as HTTP monitors or synthetic checks.
  • Monitor regions and frequency. Confirm the mapped regions and periodicities match your expectations, and adjust any that were snapped to a different value than intended.
  • Component links. Imported status-page components are static. Link each one to the corresponding imported monitor so its status updates automatically.
  • Incidents and maintenances. Review a sample of imported incidents to ensure the update timelines look correct.
  • DNS and custom domain. If your Checkly status page used a custom domain, update your DNS records to point to openstatus. See the docs guide for instructions on configuring custom domains.
  • Subscribers. Re-invite your subscribers from the openstatus dashboard. Checkly does not expose subscriber data via its API, so this step must be done manually.

Further reading