Zones
A zone is a domain hosted on the Quathos Monitor authoritative nameservers. You create it, prove you own the domain, point your registrar at the assigned nameservers, and the zone becomes active once delegation is detected.
Lifecycle
- pending: recorded in your organization and waiting. Records you add are stored, not served yet.
- active: ownership is proven and every observed public NS points to Quathos Monitor. The zone is published on the nameservers with its records and is live.
- Delegation is re-checked every 5 minutes. If it is lost, the zone goes back to
pendingand the organization owner is notified by e-mail.
The zone object
| Field | Type | Description |
|---|---|---|
id | integer | Unique identifier of the zone. |
org_id | integer | Organization that owns the zone. |
name | string | Apex domain, normalized to lowercase without trailing dot (e.g. example.com). |
status | enum | initializing · pending · active · moved · deleted. New zones start as pending. |
nameservers | string[] | null | Nameservers assigned to the zone (ns1.monitor.quathos.com, ns2.monitor.quathos.com). |
dnssec_enabled | boolean | Whether the zone is signed with DNSSEC. |
checked_at | datetime | null | Last time delegation was checked (UTC). |
created_at | datetime | Creation timestamp (UTC). |
Create a zone
/orgs/{org_id}/zonesRecords the zone in your organization and returns it in pending with the assigned nameservers. Nothing is published on the nameservers yet: that happens at activation.
Body parameters
| Parameter | Type | Description |
|---|---|---|
name required | string | Apex domain, 3–253 characters. Normalized to lowercase; must be a valid hostname. |
Example
curl -X POST "https://api.monitor.quathos.com/v1/orgs/$ORG_ID/zones" \
-H "Authorization: Bearer $QUATHOS_KEY" \
-H "Content-Type: application/json" \
-d '{ "name": "example.com" }'{
"id": 42,
"org_id": 7,
"name": "example.com",
"status": "pending",
"nameservers": ["ns1.monitor.quathos.com", "ns2.monitor.quathos.com"],
"dnssec_enabled": false,
"checked_at": null,
"created_at": "2026-07-22T14:03:22.418093"
}Requirements
409 zone_exists_in_org), and not at all while another organization has it active (409 zone_active_elsewhere). The zone limit of your plan answers 422.List & retrieve
/orgs/{org_id}/zonesLists the organization's zones, ordered by name.
/orgs/{org_id}/zones/{zone_id}Returns a single zone, or 404 zone_not_found if it doesn't exist in your organization.
Setup instructions
/orgs/{org_id}/zones/{zone_id}/setupActivation helper: the nameservers to configure at your registrar (assigned_ns), the ones the public DNS currently reports (current_ns), whether delegation already points to Quathos Monitor (delegated), the TXT record that proves ownership (ownership_record, with ownership_verified) and a human-readable checklist (instructions).
curl "https://api.monitor.quathos.com/v1/orgs/$ORG_ID/zones/42/setup" \
-H "Authorization: Bearer $QUATHOS_KEY"{
"zone_id": 42,
"name": "example.com",
"status": "pending",
"assigned_ns": ["ns1.monitor.quathos.com", "ns2.monitor.quathos.com"],
"zone_ns": ["ns1.monitor.quathos.com", "ns2.monitor.quathos.com"],
"current_ns": ["ns1.oldprovider.net", "ns2.oldprovider.net"],
"delegated": false,
"ownership_token": "kP3vQ8...",
"ownership_verified": false,
"ownership_record": {
"name": "_quathos-challenge.example.com",
"type": "TXT",
"value": "kP3vQ8..."
},
"instructions": ["…"]
}Verify ownership
/orgs/{org_id}/zones/{zone_id}/verify-ownershipReads the TXT record at _quathos-challenge.<domain> on the domain's current DNS and, when it carries the zone's ownership_token, marks ownership as proven. Publish it at the provider that serves the domain today, before switching nameservers. Once proven, it stays proven. Needs zone:write; up to 12 calls per minute per organization.
curl -X POST "https://api.monitor.quathos.com/v1/orgs/$ORG_ID/zones/42/verify-ownership" \
-H "Authorization: Bearer $QUATHOS_KEY"{
"zone_id": 42,
"name": "example.com",
"ownership_verified": true
}Why a TXT, and not just delegation
pending and is never published.Import records
/orgs/{org_id}/zones/{zone_id}/importBring existing records into the zone. Provide either a BIND zone file or ask for a quick scan of common names at your current provider. Records that fail validation, exceed the plan limit or already exist are skipped, not imported. Up to 10 calls per minute per organization.
Body parameters
| Parameter | Type | Description |
|---|---|---|
bind_file | string | Contents of a BIND zone file to parse and import, up to 1 MB. |
quick_scan | boolean | Alternatively, probe common names (apex, www, mail…) at the current provider and import what is found. |
One of the two is required
bind_file or "quick_scan": true. Omitting both answers 422 zone_import_input_required; an unparseable file, 422 zone_file_invalid.A quick scan is never complete
warnings array describing what may be absent; show it to the user before they repoint their nameservers. A BIND file exported from the current provider is the only complete path.Example
curl -X POST "https://api.monitor.quathos.com/v1/orgs/$ORG_ID/zones/42/import" \
-H "Authorization: Bearer $QUATHOS_KEY" \
-H "Content-Type: application/json" \
-d '{ "bind_file": "$ORIGIN example.com.\nwww 3600 IN A 203.0.113.10\n..." }'curl -X POST "https://api.monitor.quathos.com/v1/orgs/$ORG_ID/zones/42/import" \
-H "Authorization: Bearer $QUATHOS_KEY" \
-H "Content-Type: application/json" \
-d '{ "quick_scan": true }'{
"imported": 12,
"skipped": 3,
"warnings": ["…"]
}Check delegation
/orgs/{org_id}/zones/{zone_id}/check-delegationRe-checks the public NS of the domain on demand and updates the zone status: pending → active when every observed nameserver is ours and ownership is proven (the zone is published at that moment), active → pending if delegation was lost. Returns the updated zone object with a fresh checked_at. Needs only zone:read; up to 12 calls per minute per organization.
curl -X POST "https://api.monitor.quathos.com/v1/orgs/$ORG_ID/zones/42/check-delegation" \
-H "Authorization: Bearer $QUATHOS_KEY"Delete a zone
/orgs/{org_id}/zones/{zone_id}Removes the zone from the authoritative nameservers and deletes it, records included. Returns 204 No Content.
curl -X DELETE "https://api.monitor.quathos.com/v1/orgs/$ORG_ID/zones/42" \
-H "Authorization: Bearer $QUATHOS_KEY"Irreversible