Skip to main content

DNS Record Types API

REAL DATA

IANA DNS RR TYPE assignments with numeric value, registry meaning and reference — search the scoped list or look up a mnemonic or number.

Authoritative reference data or standards computation

Base URL
/api/dns-record-types
Capabilities
2 routes
Last updated
July 29, 2026
Data source

GET /api/dns-record-types

With no search, returns every in-scope registry row. Search checks mnemonic, numeric value, meaning and reference; zero matches return an empty list plus a warning.

Live requestRuns against the public API
No key required
GET/api/dns-record-types?search=address

Request parameters

Case-insensitive substring search across type, numeric value, meaning and registry reference.

Advanced response options6 options

Limit the number of returned records (1–100). Defaults to all matches.

Return only these fields (comma-separated). Mutually exclusive with 'exclude'.

Return all fields except these (comma-separated).

Response format: json envelope, ndjson (one record per line) or csv.

Pretty-print the JSON response.

Drop the envelope: return the raw array/object without data/meta wrapper.

Response

Example parameters are ready. Send the request to inspect the live response.

Route reference

Code samples Ready-to-copy requests in 4 languages
Choose a code sample language
curl "https://randomapi.dev/api/dns-record-types?search=address"
const res = await fetch("https://randomapi.dev/api/dns-record-types?search=address");
const { data, meta } = await res.json();
import requests

data = requests.get("https://randomapi.dev/api/dns-record-types?search=address").json()["data"]
$json = json_decode(file_get_contents(
  "https://randomapi.dev/api/dns-record-types?search=address"
), true);
$data = $json["data"];
Parameters Route-specific request inputs 1
search string

Case-insensitive substring search across type, numeric value, meaning and registry reference.

allowed: ≤ 100
example: search=mail
Universal parameters Shared response and formatting options 6
count int

Limit the number of returned records (1–100). Defaults to all matches.

default: all matches
allowed: 1 – 100
example: count=3
fields list

Return only these fields (comma-separated). Mutually exclusive with 'exclude'.

example: fields=type,value
exclude list

Return all fields except these (comma-separated).

example: exclude=reference
format enum

Response format: json envelope, ndjson (one record per line) or csv.

default: json
allowed: json | ndjson | csv
example: format=csv
pretty boolean

Pretty-print the JSON response.

default: false
example: pretty=true
unwrap boolean

Drop the envelope: return the raw array/object without data/meta wrapper.

default: false
example: unwrap=true
Response schema Fields returned in each record 4
type string

IANA RR TYPE mnemonic in canonical registry spelling.

example: AAAA

value integer

Individually assigned numeric RR TYPE value.

example: 28

meaning string

Meaning text from the IANA RR TYPE registry, including obsolete/deprecated labels where present.

example: IP6 Address

reference string

The defining reference cell from IANA, with whitespace normalized to one line.

example: [RFC3596]

Documented examples

Build-generated requests and complete responses
3
Common address records
GET /api/dns-record-types?search=address
{
  "data": [
    {
      "type": "A",
      "value": 1,
      "meaning": "a host address",
      "reference": "[RFC1035]"
    },
    {
      "type": "X25",
      "value": 19,
      "meaning": "for X.25 PSDN address",
      "reference": "[RFC1183]"
    },
    {
      "type": "ISDN",
      "value": 20,
      "meaning": "for ISDN address",
      "reference": "[RFC1183]"
    },
    {
      "type": "NSAP",
      "value": 22,
      "meaning": "for NSAP address, NSAP style A record (DEPRECATED)",
      "reference": "[RFC1706][Moving TPC.INT and NSAP.INT infrastructure domains to historic]"
    },
    {
      "type": "AAAA",
      "value": 28,
      "meaning": "IP6 Address",
      "reference": "[RFC3596]"
    },
    {
      "type": "ATMA",
      "value": 34,
      "meaning": "ATM Address",
      "reference": "[ ATM Forum Technical Committee, \"ATM Name System, V2.0\", Doc ID: AF-DANS-0152.000, July 2000. Available from and held in escrow by IANA.]"
    },
    {
      "type": "EUI48",
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
Find obsolete types
GET /api/dns-record-types?search=obsolete
{
  "data": [
    {
      "type": "MD",
      "value": 3,
      "meaning": "a mail destination (OBSOLETE - use MX)",
      "reference": "[RFC1035]"
    },
    {
      "type": "MF",
      "value": 4,
      "meaning": "a mail forwarder (OBSOLETE - use MX)",
      "reference": "[RFC1035]"
    },
    {
      "type": "NXT",
      "value": 30,
      "meaning": "Next Domain (OBSOLETE)",
      "reference": "[RFC2535][RFC3755]"
    },
    {
      "type": "A6",
      "value": 38,
      "meaning": "A6 (OBSOLETE - use AAAA)",
      "reference": "[RFC2874][RFC3226][RFC6563]"
    },
    {
      "type": "MAILA",
      "value": 254,
      "meaning": "mail agent RRs (OBSOLETE - see MX)",
      "reference": "[RFC1035]"
    },
    {
      "type": "DLV",
      "value": 32769,
      "meaning": "DNSSEC Lookaside Validation (OBSOLETE)",
      "reference": "[RFC8749][RFC4431]"
    }
  ],
  "meta": {
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
A compact first page
GET /api/dns-record-types?count=10&fields=type,value,meaning
{
  "data": [
    {
      "type": "A",
      "value": 1,
      "meaning": "a host address"
    },
    {
      "type": "NS",
      "value": 2,
      "meaning": "an authoritative name server"
    },
    {
      "type": "MD",
      "value": 3,
      "meaning": "a mail destination (OBSOLETE - use MX)"
    },
    {
      "type": "MF",
      "value": 4,
      "meaning": "a mail forwarder (OBSOLETE - use MX)"
    },
    {
      "type": "CNAME",
      "value": 5,
      "meaning": "the canonical name for an alias"
    },
    {
      "type": "SOA",
      "value": 6,
      "meaning": "marks the start of a zone of authority"
    },
    {
      "type": "MB",
      "value": 7,
      "meaning": "a mailbox domain name (EXPERIMENTAL)"
    },
    {
      "type": "MG",
      "value": 8,
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}

GET /api/dns-record-types/lookup

Mnemonic lookup is case-insensitive; decimal numeric strings are accepted. Both forms echo the canonical mnemonic in meta.params. Missing and out-of-scope rows are explicit 404s.

Live requestRuns against the public API
No key required
GET/api/dns-record-types/lookup?type=AAAA

Request parameters

IANA RR TYPE mnemonic or decimal numeric value, for example AAAA, https or 28.

Advanced response options4 options

Return only these fields (comma-separated). Mutually exclusive with 'exclude'.

Return all fields except these (comma-separated).

Pretty-print the JSON response.

Drop the envelope: return the raw array/object without data/meta wrapper.

Response

Example parameters are ready. Send the request to inspect the live response.

Route reference

Code samples Ready-to-copy requests in 4 languages
Choose a code sample language
curl "https://randomapi.dev/api/dns-record-types/lookup?type=AAAA"
const res = await fetch("https://randomapi.dev/api/dns-record-types/lookup?type=AAAA");
const { data, meta } = await res.json();
import requests

data = requests.get("https://randomapi.dev/api/dns-record-types/lookup?type=AAAA").json()["data"]
$json = json_decode(file_get_contents(
  "https://randomapi.dev/api/dns-record-types/lookup?type=AAAA"
), true);
$data = $json["data"];
Parameters Route-specific request inputs 1
type string required

IANA RR TYPE mnemonic or decimal numeric value, for example AAAA, https or 28.

allowed: 1 – 64
example: type=AAAA
Universal parameters Shared response and formatting options 4
fields list

Return only these fields (comma-separated). Mutually exclusive with 'exclude'.

example: fields=type,value
exclude list

Return all fields except these (comma-separated).

example: exclude=reference
pretty boolean

Pretty-print the JSON response.

default: false
example: pretty=true
unwrap boolean

Drop the envelope: return the raw array/object without data/meta wrapper.

default: false
example: unwrap=true
Response schema Fields returned in each record 4
type string

IANA RR TYPE mnemonic in canonical registry spelling.

example: AAAA

value integer

Individually assigned numeric RR TYPE value.

example: 28

meaning string

Meaning text from the IANA RR TYPE registry, including obsolete/deprecated labels where present.

example: IP6 Address

reference string

The defining reference cell from IANA, with whitespace normalized to one line.

example: [RFC3596]

Documented examples

Build-generated requests and complete responses
2
IPv6 address type
GET /api/dns-record-types/lookup?type=AAAA
{
  "data": {
    "type": "AAAA",
    "value": 28,
    "meaning": "IP6 Address",
    "reference": "[RFC3596]"
  },
  "meta": {
    "endpoint": "dns-record-types",
    "route": "/lookup",
    "params": {
      "type": "AAAA"
    },
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
Numeric lookup for HTTPS
GET /api/dns-record-types/lookup?type=65&fields=type,value,meaning,reference
{
  "data": {
    "type": "HTTPS",
    "value": 65,
    "meaning": "SVCB-compatible type for use with HTTP",
    "reference": "[RFC9460]"
  },
  "meta": {
    "endpoint": "dns-record-types",
    "route": "/lookup",
    "params": {
      "type": "HTTPS"
    },
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}

About this API

Coverage & behavior

A pinned, network-free view of 88 IANA DNS Resource Record TYPE rows that have all four useful registry fields: an individual numeric value, a mnemonic type, a non-empty meaning, and a reference.

That scope is deliberately exact. Reserved, unassigned and private-use ranges are omitted. So are individually named rows whose current IANA Meaning cell is blank (including SPF 99 and NID/L32/L64/LP 104–107); this API does not invent descriptions for them. Conversely, obsolete, deprecated and experimental types remain present whenever IANA supplies a meaning, and that status stays visible in the meaning text.

  • /api/dns-record-types searches mnemonic, number, meaning and reference.
  • /api/dns-record-types/lookup?type=AAAA and ?type=28 resolve the same canonical row. Unknown or out-of-scope values return a 404 rather than a substitute.

The bundled registry snapshot is dated 2026-07-06; no DNS query or upstream fetch occurs at request time.

Use it for

  • Build a DNS record-type picker with real numeric assignments
  • Resolve a wire-format TYPE number to its IANA mnemonic and reference
  • Identify obsolete and experimental record types without maintaining a table

Frequently asked questions

Can I look up a DNS type by number?

Yes. /lookup?type=28 and /lookup?type=AAAA return the same canonical AAAA record, while unknown numbers return 404.

Does this include obsolete DNS record types?

Yes when IANA supplies a mnemonic, numeric value, meaning and reference. The registry's obsolete or deprecated wording is preserved rather than silently removing historical assignments.

Why is SPF type 99 not returned?

The current IANA row assigns SPF the number 99 but leaves its Meaning cell empty. This endpoint's explicit four-field scope excludes it instead of inventing a meaning; TXT records used for SPF remain available as type 16.

Standards & references