staticdata.dev
Menu
Datasets About Contact

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.

v1.0.0 MIT 99 records Updated 2026-10-05 stable Source:  IANA DNS Parameters (Resource Record (RR) TYPEs)

Quick fetch

Stable URL. CORS-enabled. No auth.

bash
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

    Open

    min: 9.3 KB · /v1/dns-record-types.min.json

  • CSV 4.7 KB

    /v1/dns-record-types.csv

    Open
  • TypeScript 12.4 KB

    /v1/dns-record-types.ts

    export const dnsRecordTypes

    type DnsRecordType = (typeof dnsRecordTypes)[number]

    Open

Schema

Each record in the dataset has the following shape.

Schema
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.

Data preview
typevaluedescriptionreference
A1a host address[RFC1035]
NS2an authoritative name server[RFC1035]
MD3a mail destination (OBSOLETE - use MX)[RFC1035]
MF4a mail forwarder (OBSOLETE - use MX)[RFC1035]
CNAME5the canonical name for an alias[RFC1035]
SOA6marks the start of a zone of authority[RFC1035]
MB7a mailbox domain name (EXPERIMENTAL)[RFC1035]
MG8a mail group member (EXPERIMENTAL)[RFC1035]
MR9a mail rename domain name (EXPERIMENTAL)[RFC1035]
NULL10a null RR (EXPERIMENTAL)[RFC1035]

Showing 10 of 99. View full data:  JSON · CSV

Fetch examples

Drop-in snippets in five languages.

curl
curl -sSL https://staticdata.dev/v1/dns-record-types.json | jq '.[0]'
JavaScript
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]);
Python
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])
Go
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])
}
Rust
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