DNS Record Types
Every assigned DNS Resource Record type registered with IANA, numbered from 1 (A) through 32769 (DLV). Each entry carries the type mnemonic, its numeric wire-format value, a human-readable description drawn directly from the IANA registry, and the authoritative RFC or document reference. Obsolete and experimental types are included for completeness.
Quick fetch
Stable URL. CORS-enabled. No auth.
curl https://staticdata.dev/v1/dns-record-types.json
Or use as a typed import:
import { dnsRecordTypes } from "https://staticdata.dev/v1/dns-record-types.ts"
Formats
- JSON 12.2 KB
/v1/dns-record-types.json
min: 9.3 KB · /v1/dns-record-types.min.json
- CSV 4.7 KB
/v1/dns-record-types.csv
- TypeScript 12.4 KB
/v1/dns-record-types.ts
export const dnsRecordTypes
type DnsRecordType = (typeof dnsRecordTypes)[number]
Schema
Each record in the dataset has the following shape.
| Field | Type | Description | Example |
|---|---|---|---|
| type | string | RR type mnemonic (e.g. A, AAAA, MX) | A |
| value | number | Numeric wire-format type code | 1 |
| description | string | null | Human-readable meaning from IANA registry | a host address |
| reference | string | null | Defining RFC or document reference | [RFC1035] |
Preview
First 10 records.
| type | value | description | reference |
|---|---|---|---|
| A | 1 | a host address | [RFC1035] |
| NS | 2 | an authoritative name server | [RFC1035] |
| MD | 3 | a mail destination (OBSOLETE - use MX) | [RFC1035] |
| MF | 4 | a mail forwarder (OBSOLETE - use MX) | [RFC1035] |
| CNAME | 5 | the canonical name for an alias | [RFC1035] |
| SOA | 6 | marks the start of a zone of authority | [RFC1035] |
| MB | 7 | a mailbox domain name (EXPERIMENTAL) | [RFC1035] |
| MG | 8 | a mail group member (EXPERIMENTAL) | [RFC1035] |
| MR | 9 | a mail rename domain name (EXPERIMENTAL) | [RFC1035] |
| NULL | 10 | a null RR (EXPERIMENTAL) | [RFC1035] |
Fetch examples
Drop-in snippets in five languages.
curl -sSL https://staticdata.dev/v1/dns-record-types.json | jq '.[0]' import type { DnsRecordType } from "https://staticdata.dev/v1/dns-record-types.ts";
const res = await fetch("https://staticdata.dev/v1/dns-record-types.min.json");
if (!res.ok) throw new Error(`Fetch failed: ${res.status}`);
const dnsRecordTypes: DnsRecordType[] = await res.json();
console.log(dnsRecordTypes[0]); import urllib.request, json
with urllib.request.urlopen("https://staticdata.dev/v1/dns-record-types.min.json") as r:
dnsRecordTypes = json.load(r)
print(dnsRecordTypes[0]) package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://staticdata.dev/v1/dns-record-types.min.json")
if err != nil { panic(err) }
defer resp.Body.Close()
var data []map[string]any
if err := json.NewDecoder(resp.Body).Decode(&data); err != nil {
panic(err)
}
fmt.Println(data[0])
} use serde_json::Value;
fn main() -> Result<(), Box<dyn std::error::Error>> {
let body = ureq::get("https://staticdata.dev/v1/dns-record-types.min.json").call()?.into_string()?;
let data: Vec<Value> = serde_json::from_str(&body)?;
println!("{:?}", data.first());
Ok(())
} Sources and methodology
The dataset contains all 99 assigned DNS Resource Record (RR) TYPE entries from the IANA DNS Parameters registry as of October 2026 (including UNECE and ISO, types 69 and 70, registered in August 2026). Unassigned ranges (e.g., 54, 71–98, 129–248) and the Reserved/Private-use entries at the extremes of the 16-bit space are excluded. The data was parsed directly from the official IANA CSV export, which is the normative source for DNS RR type assignments.
Descriptions and references are reproduced verbatim from the IANA registry. A small number of types (SPF at 99, and the IANA-Reserved types UINFO/UID/GID/UNSPEC at 100–103, and the ILNP types NID/L32/L64/LP at 104–107) have no description in the registry and carry null in the description field. Two entries (ATMA at 34 and TA at 32768) reference informal specifications rather than RFCs; their references have been condensed to the originating document or author identifier.
Several types are marked obsolete or experimental in their descriptions (MD, MF, MB, MG, MR, NULL, NXT, A6, DLV, and MAILA); others such as SIG and KEY are restricted to limited uses by later RFCs. They are retained because resolvers and zone files in the wild may still carry these types, and developers parsing DNS wire format need to handle all assigned values.
Versioning
URLs under /v1/ are stable: field names and types will not change in a way
that breaks consumers. Values can be corrected or records added when the upstream source
changes; schema-incompatible updates ship under a new version path. See the
dns-record-types changelog for this dataset's history.
Related datasets
More Web datasets
- aria-attributes
- aria-roles
- character-encodings
- csp-directives
- credit-card-types
- dom-events
- emoji
- emoji-shortcodes
- html-elements
- html-entities
- html-attributes
- input-types
- http-auth-schemes
- http-cache-directives
- http-content-codings
- http-headers
- http-methods
- http-status-codes
- http-versions
- iframe-sandbox-tokens
- keyboard-event-codes
- link-relations
- media-type-suffixes
- mime-types
- oauth-grant-types
- ports
- referrer-policies
- ip-special-blocks
- svg-elements
- tcp-flags
- tlds
- tls-cipher-suites
- tls-versions
- uri-schemes
- well-known-uris