Quickstart
From an API key to a record resolving on the public internet. You will create a zone, prove you own the domain, delegate it to the Quathos Monitor nameservers and publish an A record.
1. Create your account and organization
Sign up in the dashboard and verify your e-mail. Every account gets an organization: all zones, records and API keys belong to it, and its numeric id appears in every API path as {org_id}.
E-mail verification required
403 verify_email_first_api_keys otherwise).2. Create an API key
In the dashboard, go to API Keys (/painel/tokens) and create a key. The full secret starts with qfx_ and is shown only once: copy it now. See Authentication for scopes and details.
export QUATHOS_KEY="qfx_1a2b3c4d_..."
export ORG_ID="7"
export BASE="https://api.monitor.quathos.com/v1"3. Create the zone
Register your apex domain. The zone starts as pending: it is recorded in your organization, but nothing is published on the nameservers until ownership and delegation are both confirmed.
curl -s -X POST "$BASE/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"
}4. Get the setup instructions
The setup endpoint returns the nameservers to configure at your registrar (assigned_ns), what the public DNS reports today (current_ns) and the TXT record that proves you own the domain (ownership_record).
curl -s "$BASE/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": ["…"]
}5. Prove you own the domain
Publish ownership_record as a TXT record at your current DNS provider, before switching nameservers, then ask the API to read it:
_quathos-challenge.example.com. 3600 IN TXT "kP3vQ8..."curl -s -X POST "$BASE/orgs/$ORG_ID/zones/42/verify-ownership" \
-H "Authorization: Bearer $QUATHOS_KEY"{
"zone_id": 42,
"name": "example.com",
"ownership_verified": true
}Delegation alone is not proof
pending even after the nameservers point at us. Once proven, it stays proven.6. Switch nameservers at your registrar
At your domain registrar, replace the current NS entries with the assigned ones:
- Review the records first (create them, or import them) so nothing goes dark during the switch.
- If DNSSEC is enabled at your old provider, disable it at the registrar before switching.
- Replace the nameservers with
ns1.monitor.quathos.comandns2.monitor.quathos.com. - Wait for propagation, from minutes up to 24h. Quathos Monitor re-checks every 5 minutes.
7. Check the delegation
Don't want to wait for the automatic check? Trigger one on demand. When every observed NS is ours and ownership is proven, the zone is published on the nameservers with its records and flips to active (and the organization owner gets an e-mail).
curl -s -X POST "$BASE/orgs/$ORG_ID/zones/42/check-delegation" \
-H "Authorization: Bearer $QUATHOS_KEY"{
"id": 42,
"org_id": 7,
"name": "example.com",
"status": "active",
"nameservers": ["ns1.monitor.quathos.com", "ns2.monitor.quathos.com"],
"dnssec_enabled": false,
"checked_at": "2026-07-22T15:10:05.207731",
"created_at": "2026-07-22T14:03:22.418093"
}8. Create a record
Use a relative name (www), @ for the apex, or the full FQDN. On an active zone the change is pushed to the nameservers as part of the request; on a pending zone it is stored and published at activation.
curl -s -X POST "$BASE/orgs/$ORG_ID/zones/42/records" \
-H "Authorization: Bearer $QUATHOS_KEY" \
-H "Content-Type: application/json" \
-d '{
"name": "www",
"type": "A",
"content": "203.0.113.10",
"ttl": 3600
}'{
"id": 1001,
"zone_id": 42,
"name": "www.example.com",
"type": "A",
"content": "203.0.113.10",
"ttl": 3600,
"priority": null,
"disabled": false,
"created_at": "2026-07-22T15:12:40.660215"
}9. Verify with dig
Ask the Quathos Monitor nameserver directly for the answer it serves:
dig +short www.example.com A @ns1.monitor.quathos.com
# 203.0.113.10Next steps
- Bring your existing records over with the zone import endpoint (BIND file or quick scan).
- Explore every record type and validation rule in the Records reference.
- Watch any domain you own, hosted here or elsewhere, with watched domains.
- Handle failures with the error reference.