Import monitors from UptimeRobot, Pingdom, StatusCake or Better Stack with an API key for that tool. HTTP, keyword, TCP port, ping, heartbeat and DNS monitors come across with their settings; paused ones stay paused. Intervals the plan does not allow are slowed, and each row says what changed. Monitors already here are skipped, so running the import again is safe. A long list takes several calls: repeat the request with `next_offset` until it is null. `dry_run` reports without creating anything.
const url = 'https://api.siteqwality.com/monitors/import';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"source":"uptimerobot","api_key":"example","dry_run":true,"offset":1,"previewed":1}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.siteqwality.com/monitors/import \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "source": "uptimerobot", "api_key": "example", "dry_run": true, "offset": 1, "previewed": 1 }'Authorizations
Section titled “Authorizations ”Request Body required
Section titled “Request Body required ”object
The tool to import from.
An API key or token for that tool; a read-only one is enough. It is used for this request only and never stored.
Check every monitor and report what would happen without creating anything.
Continue from this place in the tool’s list: the previous answer’s next_offset.
For a dry run continued with offset: how many monitors other than DNS monitors the
earlier answers would create, so the preview counts them against the plan’s limit.
Responses
Section titled “ Responses ”Each monitor’s outcome
object
Rows left when time ran out; importing the same file again adds them.
line N: reason for each failed row.
object
The row’s line in the file.
http, tcp, ping, heartbeat or dns; null when the row did not parse.
The url, the heartbeat’s name or the DNS zone.
The new monitor’s id.
Why the row was skipped, failed or not attempted.
The other tool’s id for the monitor; null for a CSV row.
What changes on the way in, such as a slower interval on your plan.
The tool to import from.
Monitors the tool listed.
Where in the tool’s list this answer starts.
More remain: send the same request with this offset. Null when every monitor
has been through.
The tool is rate limiting the key: wait this many seconds before continuing.
Example
{ "rows": [ { "status": "created" } ], "source": "uptimerobot"}No API key
Missing or invalid authentication
The tool refused the API key; the message has its reason
The tool could not be reached or sent an unreadable answer