Records
Records live inside a zone. Every create, update and delete is pushed to the authoritative nameservers as part of the request — when the API answers, the change is already being served.
The record object
| Field | Type | Description |
|---|---|---|
id | integer | Unique identifier of the record. |
zone_id | integer | Zone the record belongs to. |
name | string | Always stored and returned as the FQDN (e.g. www.example.com). |
type | enum | A · AAAA · CNAME · MX · TXT · SRV · CAA · NS · PTR · ALIAS. |
content | string | The record value — an IP, hostname, text, etc., depending on the type. |
ttl | integer | Time to live in seconds, 60–86400. |
priority | integer | null | Priority (0–65535). Required for MX and SRV. |
disabled | boolean | A disabled record stays stored but is not served by the nameservers. |
created_at | datetime | Creation timestamp (UTC). |
Supported types
A, AAAA, CNAME, MX, TXT, SRV, CAA, NS, PTR and ALIAS. ALIAS behaves like a CNAME but is allowed at the zone apex.
Validation rules
Content is validated per type before anything is stored or published:
- A requires a valid IPv4 address; AAAA a valid IPv6 (each rejects the other family).
- CNAME, NS, PTR, ALIAS, MX require a valid hostname — an IP address is rejected.
- MX and SRV require
priority. - TTL must be between 60 and 86400 seconds (default 3600).
- CNAME coexistence: a CNAME cannot share its name with any other record —
in either direction. A CNAME at the apex is rejected; use
ALIASinstead. - Plan limit: the Free plan allows 500 records per organization across all
zones. Exceeding it returns
422.
Violations return 422 with the reason in detail — see Errors.
Create a record
/orgs/{org_id}/zones/{zone_id}/recordsThe name may be relative (www), @ for the apex, or a
full FQDN — the response always carries the FQDN. Returns 201 with the record.
Body parameters
| Parameter | Type | Description |
|---|---|---|
name required | string | Relative name ('www'), '@' or empty for the apex, or the full FQDN. |
type required | enum | One of the supported types (case-insensitive, normalized to uppercase). |
content required | string | The record value. Validated per type — see validation rules. |
ttl | integer | 60–86400 seconds. Defaults to 3600. |
priority | integer | 0–65535. Required for MX and SRV; ignored by other types. |
Example
curl -X POST \
'https://api.qflaryx.com/v1/orgs/$ORG_ID/zones/42/records' \
-H 'Authorization: Bearer $QFLARYX_KEY' \
-H 'Content-Type: application/json' \
-d '{
"name": "www",
"type": "A",
"content": "203.0.113.10",
"ttl": 3600
}'An MX record with its required priority:
curl -X POST \
'https://api.qflaryx.com/v1/orgs/$ORG_ID/zones/42/records' \
-H 'Authorization: Bearer $QFLARYX_KEY' \
-H 'Content-Type: application/json' \
-d '{
"name": "@",
"type": "MX",
"content": "mail.example.com",
"priority": 10
}'List records
/orgs/{org_id}/zones/{zone_id}/recordsLists all records of the zone, ordered by name and type.
Update a record
/orgs/{org_id}/zones/{zone_id}/records/{record_id}Partial update: send only the fields you want to change. name and type are immutable — delete and recreate to change them. New content is re-validated against the record's type.
Body parameters
| Parameter | Type | Description |
|---|---|---|
content | string | New value, re-validated against the record type. |
ttl | integer | 60–86400 seconds. |
priority | integer | 0–65535. |
disabled | boolean | Set true to stop serving the record without deleting it. |
Example
curl -X PUT \
'https://api.qflaryx.com/v1/orgs/$ORG_ID/zones/42/records/1001' \
-H 'Authorization: Bearer $QFLARYX_KEY' \
-H 'Content-Type: application/json' \
-d '{ "content": "203.0.113.20", "ttl": 300 }'Pause instead of delete
"disabled": true to stop serving a record while keeping it stored — handy
for maintenance windows or staged cutovers. Set it back to false to resume.Delete a record
/orgs/{org_id}/zones/{zone_id}/records/{record_id}Removes the record and updates the nameservers in the same request. Returns 204 No Content.
curl -X DELETE \
'https://api.qflaryx.com/v1/orgs/$ORG_ID/zones/42/records/1001' \
-H 'Authorization: Bearer $QFLARYX_KEY'