Skip to main content

HTTP Field Name Registry API

REAL DATA

Complete pinned IANA HTTP field-name registry with status, Structured Field type, references, search and case-insensitive lookup.

Authoritative reference data or standards computation

Base URL
/api/http-fields
Capabilities
2 routes
Last updated
July 29, 2026
Data source

GET /api/http-fields

Live requestRuns against the public API
No key required
GET/api/http-fields?status=deprecated

Request parameters

Filter by normalized IANA registration status; returned spelling stays source-exact.

Filter by RFC 9651 Structured Field type, or 'none' for rows without one.

Case-insensitive substring search across name, reference and comments.

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/http-fields?status=deprecated"
const res = await fetch("https://randomapi.dev/api/http-fields?status=deprecated");
const { data, meta } = await res.json();
import requests

data = requests.get("https://randomapi.dev/api/http-fields?status=deprecated").json()["data"]
$json = json_decode(file_get_contents(
  "https://randomapi.dev/api/http-fields?status=deprecated"
), true);
$data = $json["data"];
Parameters Route-specific request inputs 3
status enum

Filter by normalized IANA registration status; returned spelling stays source-exact.

default: any
allowed: any | permanent | provisional | deprecated | obsoleted
example: status=deprecated
structuredType enum

Filter by RFC 9651 Structured Field type, or 'none' for rows without one.

default: any
allowed: any | dictionary | list | item | token | none
example: structuredType=dictionary
search string

Case-insensitive substring search across name, reference and comments.

allowed: 1 – 128
example: search=digest
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=name,status
exclude list

Return all fields except these (comma-separated).

example: exclude=comments
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 5
name string

HTTP field name exactly as registered by IANA.

example: Accept

status string

IANA registration status, preserving the source CSV's spelling.

example: permanent

structuredType string nullable

RFC 9651 Structured Field type (Dictionary, List, Item or Token), or null when unregistered.

example: List

reference string

Specification reference copied from the pinned IANA registry row.

example: [RFC 9110, Section 12.5.1: HTTP Semantics]

comments string nullable

IANA registry comment, or null when the row has no comment.

example: (reserved)

Documented examples

Build-generated requests and complete responses
3
Deprecated HTTP fields
GET /api/http-fields?status=deprecated
{
  "data": [
    {
      "name": "Accept-Charset",
      "status": "deprecated",
      "structuredType": null,
      "reference": "[RFC 9110, Section 12.5.2: HTTP Semantics]",
      "comments": null
    },
    {
      "name": "C-PEP-Info",
      "status": "deprecated",
      "structuredType": null,
      "reference": "[PEP - an Extension Mechanism for HTTP]",
      "comments": "[Status change of HTTP experiments to Historic]"
    },
    {
      "name": "Content-ID",
      "status": "deprecated",
      "structuredType": null,
      "reference": "[The HTTP Distribution and Replication Protocol]",
      "comments": null
    },
    {
      "name": "Differential-ID",
      "status": "deprecated",
      "structuredType": null,
      "reference": "[The HTTP Distribution and Replication Protocol]",
      "comments": null
    },
    {
      "name": "Expect-CT",
      "status": "deprecated",
      "structuredType": null,
      "reference": "[RFC 9163: Expect-CT Extension for HTTP]",
      "comments": "Obsoleted by [IESG]\n        [HTTPBIS]"
    },
    {
      "name": "Pragma",
      "status": "deprecated",
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
Structured dictionaries
GET /api/http-fields?structuredType=dictionary
{
  "data": [
    {
      "name": "CDN-Cache-Control",
      "status": "permanent",
      "structuredType": "Dictionary",
      "reference": "[RFC 9213: Targeted HTTP Cache Control]",
      "comments": "Cache directives targeted at content delivery networks"
    },
    {
      "name": "Content-Digest",
      "status": "permanent",
      "structuredType": "Dictionary",
      "reference": "[RFC 9530, Section 2: Digest Fields]",
      "comments": null
    },
    {
      "name": "Priority",
      "status": "permanent",
      "structuredType": "Dictionary",
      "reference": "[RFC 9218: Extensible Prioritization Scheme for HTTP]",
      "comments": null
    },
    {
      "name": "Repr-Digest",
      "status": "permanent",
      "structuredType": "Dictionary",
      "reference": "[RFC 9530, Section 3: Digest Fields]",
      "comments": null
    },
    {
      "name": "Signature",
      "status": "permanent",
      "structuredType": "Dictionary",
      "reference": "[RFC 9421, Section 4.2: HTTP Message Signatures]",
      "comments": null
    },
    {
      "name": "Signature-Input",
      "status": "permanent",
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
Search digest-related registrations
GET /api/http-fields?search=digest&count=20
{
  "data": [
    {
      "name": "Content-Digest",
      "status": "permanent",
      "structuredType": "Dictionary",
      "reference": "[RFC 9530, Section 2: Digest Fields]",
      "comments": null
    },
    {
      "name": "Digest",
      "status": "obsoleted",
      "structuredType": null,
      "reference": "[RFC 3230: Instance Digests in HTTP]",
      "comments": "Obsoleted by [RFC 9530, Section 1.3: Digest Fields]"
    },
    {
      "name": "Repr-Digest",
      "status": "permanent",
      "structuredType": "Dictionary",
      "reference": "[RFC 9530, Section 3: Digest Fields]",
      "comments": null
    },
    {
      "name": "Unencoded-Digest",
      "status": "permanent",
      "structuredType": "Dictionary",
      "reference": "[RFC-ietf-httpbis-unencoded-digest-05, Section 3: HTTP Unencoded Digest]",
      "comments": null
    },
    {
      "name": "Want-Content-Digest",
      "status": "permanent",
      "structuredType": "Dictionary",
      "reference": "[RFC 9530, Section 4: Digest Fields]",
      "comments": null
    },
    {
      "name": "Want-Digest",
      "status": "obsoleted",
    …
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}

GET /api/http-fields/lookup

Live requestRuns against the public API
No key required
GET/api/http-fields/lookup?name=content-type

Request parameters

Registered HTTP field name; matching is case-insensitive.

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/http-fields/lookup?name=content-type"
const res = await fetch("https://randomapi.dev/api/http-fields/lookup?name=content-type");
const { data, meta } = await res.json();
import requests

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

Registered HTTP field name; matching is case-insensitive.

allowed: 1 – 128
example: name=Content-Type
Universal parameters Shared response and formatting options 4
fields list

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

example: fields=name,status
exclude list

Return all fields except these (comma-separated).

example: exclude=comments
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 5
name string

HTTP field name exactly as registered by IANA.

example: Accept

status string

IANA registration status, preserving the source CSV's spelling.

example: permanent

structuredType string nullable

RFC 9651 Structured Field type (Dictionary, List, Item or Token), or null when unregistered.

example: List

reference string

Specification reference copied from the pinned IANA registry row.

example: [RFC 9110, Section 12.5.1: HTTP Semantics]

comments string nullable

IANA registry comment, or null when the row has no comment.

example: (reserved)

Documented examples

Build-generated requests and complete responses
2
Look up Content-Type
GET /api/http-fields/lookup?name=content-type
{
  "data": {
    "name": "Content-Type",
    "status": "permanent",
    "structuredType": null,
    "reference": "[RFC 9110, Section 8.3: HTTP Semantics]",
    "comments": null
  },
  "meta": {
    "endpoint": "http-fields",
    "route": "/lookup",
    "params": {
      "name": "Content-Type"
    },
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}
Inspect the reserved wildcard row
GET /api/http-fields/lookup?name=*
{
  "data": {
    "name": "*",
    "status": "permanent",
    "structuredType": null,
    "reference": "[RFC 9110, Section 12.5.5: HTTP Semantics]",
    "comments": "(reserved)"
  },
  "meta": {
    "endpoint": "http-fields",
    "route": "/lookup",
    "params": {
      "name": "*"
    },
    "generatedAt": "2026-07-29T08:13:22.000Z"
  }
}

About this API

Coverage & behavior

A complete, source-preserving snapshot of the IANA Hypertext Transfer Protocol Field Name Registry. Every CSV row is included, including permanent, provisional, deprecated and obsoleted names; the optional Structured Type column follows RFC 9651 and can be Dictionary, List, Item or Token.

The list route composes status, structuredType and free-text search filters. Status filtering is case-insensitive because four Fetch Metadata rows in the pinned IANA CSV spell Permanent with an uppercase P; the returned status deliberately preserves that source spelling instead of silently rewriting registry data. Lookup is case-insensitive because HTTP field names are case-insensitive.

This is a dated, bundled registry snapshot: it performs no request-time fetch. The committed refresh script downloads the IANA CSV and XML metadata, validates every column/status/type, records the CSV SHA-256 and regenerates the typed dataset deterministically.

Use it for

  • Validate field-name registries and documentation tooling against current IANA registrations
  • Find deprecated or obsoleted HTTP fields before modernizing a client or proxy
  • Discover which registered fields have an RFC 9651 Structured Field type

Frequently asked questions

Does this include every IANA HTTP field name?

Yes. The bundled snapshot contains every row in the pinned IANA Field Name CSV, with its source status, Structured Field type, reference and comment.

Are HTTP field-name lookups case-sensitive?

No. /lookup?name=content-type resolves the registered Content-Type row because HTTP field names are case-insensitive.

What does structuredType mean?

It is IANA's optional RFC 9651 classification: Dictionary, List, Item or Token. A null value means the registry has not assigned a Structured Field type.

How is the registry snapshot refreshed?

scripts/refresh-http-fields.mjs fetches the official CSV and XML metadata, validates the complete source and regenerates the typed file with its update date and SHA-256.

Standards & references