How to Import / Export Monitors
Bulk-create uptime monitors from a JSON or CSV file, and export your monitor configuration for backups or migration.
Accessing Import / Export
On the Monitors page, click the Import / Export dropdown button near the top-right. Choose Import or Export.
Exporting Monitors
Use export to back up your monitor configuration or to copy monitors to another Pinguzo account.
Export as JSON
Downloads monitors-export.json — an array of monitor objects:
[
{
"name": "Main Website",
"url": "https://example.com",
"type": "https",
"check_interval": 300,
"keyword": null,
"port": null,
"status": "active",
"created_at": "2026-01-10T08:00:00Z"
},
{
"name": "Payment API",
"url": "https://api.example.com/health",
"type": "https",
"check_interval": 60,
"keyword": null,
"port": null,
"status": "active",
"created_at": "2026-01-10T08:05:00Z"
},
{
"name": "Database Port Check",
"url": "db.internal",
"type": "port",
"check_interval": 300,
"keyword": null,
"port": 5432,
"status": "active",
"created_at": "2026-01-10T08:10:00Z"
}
]
Export as CSV
Downloads monitors-export.csv:
name,url,type,check_interval,keyword,port,status,created_at
Main Website,https://example.com,https,300,,,active,2026-01-10T08:00:00Z
Payment API,https://api.example.com/health,https,60,,,active,2026-01-10T08:05:00Z
Database Port Check,db.internal,port,300,,5432,active,2026-01-10T08:10:00Z
Importing Monitors
Importing lets you create many monitors simultaneously without filling out the form for each one. Imported monitors are synced to the appropriate edge server within 30 seconds and begin checking immediately.
Import via File Upload
- Click Import / Export → Import
- Click Choose File and select a
.jsonor.csvfile - Click Import Monitors to proceed
Import via Paste
Paste JSON or CSV content directly into the textarea in the import modal. Pinguzo auto-detects the format.
Import File Formats
Minimal JSON (required fields only)
[
{"name": "Main Website", "url": "https://example.com", "type": "https"},
{"name": "API Endpoint", "url": "https://api.example.com", "type": "https"},
{"name": "Ping — Gateway","url": "192.168.1.1", "type": "ping"},
{"name": "SSH Port", "url": "server.example.com", "type": "port", "port": 22},
{"name": "Login Keyword", "url": "https://app.example.com/login","type": "keyword","keyword": "Sign in"}
]
Full JSON (all fields)
[
{
"name": "Main Website",
"url": "https://example.com",
"type": "https",
"check_interval": 60,
"keyword": null,
"port": null
}
]
Minimal CSV
name,url,type
Main Website,https://example.com,https
API Endpoint,https://api.example.com,https
Ping Gateway,192.168.1.1,ping
Full CSV (all columns)
name,url,type,check_interval,keyword,port
Main Website,https://example.com,https,60,,
SSH Check,server.example.com,port,300,,22
Login Page,https://app.example.com,keyword,300,"Sign in",
Hello, World), enclose it in double quotes: "Hello, World".
Supported Import Fields
| Field | Required | Valid Values | Default |
|---|---|---|---|
name |
Yes | String, 1–255 characters, unique per account | — |
url |
Yes | Full URL for http/https/keyword; hostname/IP for ping/port/dns | — |
type |
Yes | http, https, ping, port, keyword, dns |
— |
check_interval |
No | 60, 120, 300, 600, 1800, 3600 (seconds) |
300 |
keyword |
Only for keyword type |
Any string to search for in the response body | null |
port |
Only for port type |
Integer 1–65535 | null |
Monitor Type Reference
| Type | URL/Host format | Additional required field |
|---|---|---|
https | https://example.com/path | — |
http | http://example.com/path | — |
ping | example.com or 1.2.3.4 | — |
port | example.com or 1.2.3.4 | port (integer) |
keyword | https://example.com/page | keyword (string) |
dns | api.example.com | — |
Import Results
After import completes, Pinguzo shows a summary dialog:
- Imported: count of monitors successfully created
- Skipped: count of entries that were not imported
- Errors: per-row details of what failed and why (e.g., "Row 4: type 'ftp' is not a valid monitor type")
Imported monitors appear immediately in the Monitors list with a Pending status while the edge server picks them up. Within 30 seconds they will begin checking and flip to Up or Down.
Validation Rules
- name is required, must be 1–255 characters, and must be unique per account. Duplicates are skipped.
- url is required and is validated per monitor type (must be a valid URL for HTTP types, or a hostname/IP for ping/port/dns).
- type must be one of the supported values:
http,https,ping,port,keyword,dns. - check_interval must be one of the allowed values (60, 120, 300, 600, 1800, 3600). Other values are rejected.
- port must be an integer from 1 to 65535 when
typeisport. - keyword is required (and must be non-empty) when
typeiskeyword. - Plan limits are enforced. If the import would exceed your plan's monitor limit, importing stops at the limit.
Common Use Cases
Migrating from another monitoring tool
Export your URLs from the old tool (most support CSV export), map their check type to Pinguzo types, add a name and type column, and import the CSV into Pinguzo.
Monitoring all pages in a sitemap
Use a script to extract URLs from your sitemap.xml and generate a CSV file, then import it. Example (bash):
echo "name,url,type" > monitors.csv
curl -s https://example.com/sitemap.xml \
| grep -oP '(?<=<loc>)[^<]+' \
| awk '{print NR". Page,"$1",https"}' \
>> monitors.csv
Re-importing after account reset
If you export your monitors before deleting your account, you can re-import the JSON file to a new account and restore your monitor configuration instantly (without historical data).
Next Steps
- Add a Monitor — create monitors one at a time using the form
- Configure Alerts — set up alert policies for the imported monitors
- View Monitor Metrics — check the first results after import