schemas/dns-capabilities.schema.json
dns-capabilities.schema.json
JSON Schema for the dns_capabilities dataset. Versioned alongside the data.
Overview#overview
Field definitions#fields
| Field | Type | Required | Description |
|---|---|---|---|
| registrar_id | string | required | Foreign key to registrars.id. |
| dnssec | enum | required | supported | unsupported | partial. |
| alias_aname | boolean | optional | ALIAS / ANAME apex records supported. |
| caa | boolean | optional | CAA records supported. |
| api_record_management | boolean | optional | Records editable via API. |
| record_types | array · enum | optional | Supported record types. |
| ttl_min_seconds | integer | optional | Minimum TTL the registrar allows. |
| sources | array · enum | required | Provenance. |
| verification_status | enum | required | See verification statuses. |
| last_checked | string · date-time | required | ISO 8601 timestamp. |
JSON Schema#preview
{
"$id": "https://opendomaindata.org/schemas/dns-capabilities.schema.json",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "DnsCapabilities",
"description": "DNS feature support per registrar.",
"version": "2026.05",
"type": "object",
"required": ["registrar_id", "dnssec", "sources", "verification_status", "last_checked"],
"properties": {
"registrar_id": { "type": "string" },
"dnssec": { "type": "string", "enum": ["supported", "unsupported", "partial"] },
"alias_aname": { "type": "boolean" },
"caa": { "type": "boolean" },
"api_record_management": { "type": "boolean" },
"record_types": { "type": "array", "items": { "type": "string" } },
"ttl_min_seconds": { "type": "integer", "minimum": 0 },
"sources": {
"type": "array",
"items": { "type": "string", "enum": ["iana", "rdap", "registrar_docs", "submission"] }
},
"verification_status": {
"type": "string",
"enum": [
"unknown",
"public_sources",
"independently_tested",
"registrar_submitted",
"registrar_verified",
"deprecated"
]
},
"last_checked": { "type": "string", "format": "date-time" }
},
"additionalProperties": false
}
Validation example#validation
Validate a record locally using any JSON Schema validator. The schema is draft 2020-12; for ajv use the 2020 import.
import Ajv from "ajv/dist/2020";
import schema from "https://opendomaindata.org/schemas/dns-capabilities.schema.json" assert { type: "json" };
const ajv = new Ajv();
const validate = ajv.compile(schema);
const ok = validate(record);
if (!ok) console.error(validate.errors);Changelog#changelog
Schema changes are recorded in the project changelog and follow the dataset release tag.