Bulk import
Adding a whole fleet one form at a time gets old fast. Fill in a spreadsheet instead — Moonitor shows you exactly what it will create before anything is saved.
How it works
Bulk import lives at Monitors → Bulk add. You download a template, fill in one row per monitor, and upload it. Moonitor reads the sheet and shows a preview: which rows will be created, which will be skipped and why, and how many monitors you’ll have afterwards. Nothing is written until you press Import.
Imported monitors are ordinary monitors. They start checking straight away, they inherit your existing alert contacts, and you can edit or pause them like any other.
Import a spreadsheet
Download the template
Take the Excel version if you can. It has drop-downs on every fixed-choice column, a worked example of each monitor type on an Examples sheet, and a Reference sheet describing every column. A CSV version is available if you’d rather build the file from a script or export.
Fill in one row per monitor
Type your monitors into the Monitors sheet, starting at row 2. Every row needs a
Nameand aType; what else is required depends on the type — see what each type needs. Leave a column blank to accept its default.Upload it
Drop the file onto the upload area, or click to browse. Moonitor reads it immediately — this reads the file only, it doesn’t create anything.
Review the preview
Check the rows marked to be created, and read the reason beside any row that will be skipped. Fix anything you want to change in the spreadsheet and upload it again.
Import
Press Import. The monitors are created and begin checking on the schedule you gave them.
What each type needs
Every monitor needs a Name and a Type. Beyond that, each type has its own required column — the thing it’s meant to watch. For what each check actually does, see Monitor types.
| Type | Also required | Notes |
|---|---|---|
HTTP | URL | Full URL incl. https:// |
KEYWORD | URL, Keyword | We fetch the page and check for a keyword |
PING | Host | Hostname or IP address |
PORT | Host, Port | Hostname or IP, plus a port |
CRON | — | Push monitor — ping a URL we give you |
DNS | URL | Hostname to resolve |
SSL | URL | We check certificate expiry |
DOMAIN | URL | Domain registration expiry via RDAP |
Tip
Columns that don’t apply to a row’s type are ignored, so you can copy a row and change its type without clearing out the leftovers. A Keyword sitting on an HTTP row is simply not read.
Every column
The same list is on the Reference sheet of the Excel template, and in the guide on the import page itself.
| Column | Applies to | Accepted values | If left blank |
|---|---|---|---|
Name | All types | text | required |
Type | All types | HTTP, KEYWORD, PING, PORT, CRON, DNS, SSL, DOMAIN | required |
URL | HTTP, KEYWORD, SSL, DOMAIN, DNS | text | required |
Host | PING, PORT | text | required |
Port | PORT | whole number 1–65535 | required |
Check every (seconds) | All types | whole number 30–86400 | 300 (5 minutes) |
Timeout (seconds) | All types | whole number 1–60 | 30 |
HTTP method | HTTP, KEYWORD | GET, HEAD, POST, PUT, PATCH, DELETE | GET |
Accepted status codes | HTTP, KEYWORD | codes separated by commas | the usual 2xx and 3xx codes |
Request headers | HTTP, KEYWORD | "Name: value" per line | none |
Request body | HTTP, KEYWORD | text | none |
Follow redirects | HTTP, KEYWORD | yes / no | yes |
Verify SSL | HTTP, KEYWORD | yes / no | yes |
Keyword | KEYWORD | text | required |
Keyword match | KEYWORD | EXISTS, NOT_EXISTS | EXISTS |
DNS record type | DNS | A, AAAA, CNAME, MX, TXT, NS | A |
DNS expected value | DNS | text | none |
Alert on DNS change | DNS | yes / no | yes |
SSL expiry warning (days) | SSL | whole number 1–365 | 2 |
Expected heartbeat (seconds) | CRON | whole number 60–2592000 | the check interval |
Heartbeat grace (seconds) | CRON | whole number 0–86400 | 60 |
Rules and limits
File formats
Moonitor reads .xlsx and .csv files, up to 2 MB and 1,000 monitors per upload.
Heads up
Old-style .xls files (Excel 97–2003) can’t be read. Open the file and use File → Save As to save it as .xlsx or .csv, then upload that.
Rows that can't be imported
A row with a problem — a missing URL, an unknown type, a value out of range — is listed in the preview with the reason and skipped. The rest of the sheet still imports, so one bad row doesn’t hold up the other forty-nine. Fix it and upload again.
Your plan's limits apply
Import is subject to the same limits as adding monitors by hand — the monitor cap, the monitor types your plan includes, and the fastest check interval it allows. See Plans & billing.
- A row using a type your plan doesn’t include, or an interval faster than it allows, is skipped with an explanation.
- If the sheet as a whole would take you past your monitor cap, the import is refused rather than partly applied — we won’t create the first few rows and quietly drop the rest. Remove some rows or upgrade, then upload again.
Tidier sheets
Headers are matched loosely, so capitalisation, spacing and punctuation don’t matter. Blank rows are ignored, a title row above your headers is fine, and columns Moonitor doesn’t recognise are listed in the preview and skipped rather than treated as an error — handy if your sheet also carries your own notes or owner columns.