Media Type Structured Syntax Suffixes
Structured syntax suffixes allow media type subtype names to convey both the specific format and the underlying generic structure. For example, +json indicates a payload that conforms to JSON syntax, while +xml indicates XML. This registry is maintained by IANA under the Expert Review procedure defined in RFC 6838.
Quick fetch
Stable URL. CORS-enabled. No auth.
curl https://staticdata.dev/v1/media-type-suffixes.json
Or use as a typed import:
import { mediaTypeSuffixes } from "https://staticdata.dev/v1/media-type-suffixes.ts"
Formats
- JSON 6.4 KB
/v1/media-type-suffixes.json
min: 5.0 KB · /v1/media-type-suffixes.min.json
- CSV 2.8 KB
/v1/media-type-suffixes.csv
- TypeScript 6.6 KB
/v1/media-type-suffixes.ts
export const mediaTypeSuffixes
type MediaTypeSuffix = (typeof mediaTypeSuffixes)[number]
Schema
Each record in the dataset has the following shape.
| Field | Type | Description | Example |
|---|---|---|---|
| suffix | string | The structured syntax suffix, including the leading plus sign | +json |
| name | string | Human-readable name of the underlying format | JavaScript Object Notation (JSON) |
| references | string[] | List of reference identifiers (RFCs, ITU specs, etc.) | ["RFC8259","RFC6839"] |
| reference | string | null | URL to the primary RFC or specification | https://www.iana.org/go/rfc8259 |
| registrationDate | string | null | ISO date when the suffix was registered with IANA | 2012-11-27 |
| modificationDate | string | null | ISO date of the most recent modification, if any | 2020-10-16 |
Preview
First 10 records.
| suffix | name | reference | registrationDate | modificationDate |
|---|---|---|---|---|
| +ber | Basic Encoding Rules (BER) message transfer syntax | https://www.iana.org/go/rfc6839 | 2012-11-27 | |
| +cbor | Concise Binary Object Representation (CBOR) | https://www.iana.org/go/rfc8949 | 2013-09-19 | 2020-10-16 |
| +cbor-seq | CBOR Sequence | https://www.iana.org/go/rfc8742 | 2019-10-10 | |
| +cose | CBOR Object Signing and Encryption (COSE) object | https://www.iana.org/go/rfc9052 | 2024-02-12 | |
| +csv | Comma-Separated Values (CSV) | https://www.iana.org/go/rfc4180 | 2025-07-24 | |
| +cwt | CBOR Web Token (CWT) | https://www.iana.org/go/rfc8392 | 2024-11-26 | |
| +der | Distinguished Encoding Rules (DER) message transfer syntax | https://www.iana.org/go/rfc6839 | 2012-11-27 | |
| +fastinfoset | Fast Infoset document format | https://www.iana.org/go/rfc6839 | 2012-11-27 | |
| +gzip | gzip file storage and transfer format | https://www.iana.org/go/rfc1952 | 2018-06-14 | |
| +jer | ASN.1 JSON Encoding Rules | 2025-09-22 |
Fetch examples
Drop-in snippets in five languages.
curl -sSL https://staticdata.dev/v1/media-type-suffixes.json | jq '.[0]' import type { MediaTypeSuffix } from "https://staticdata.dev/v1/media-type-suffixes.ts";
const res = await fetch("https://staticdata.dev/v1/media-type-suffixes.min.json");
if (!res.ok) throw new Error(`Fetch failed: ${res.status}`);
const mediaTypeSuffixes: MediaTypeSuffix[] = await res.json();
console.log(mediaTypeSuffixes[0]); import urllib.request, json
with urllib.request.urlopen("https://staticdata.dev/v1/media-type-suffixes.min.json") as r:
mediaTypeSuffixes = json.load(r)
print(mediaTypeSuffixes[0]) package main
import (
"encoding/json"
"fmt"
"net/http"
)
func main() {
resp, err := http.Get("https://staticdata.dev/v1/media-type-suffixes.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/media-type-suffixes.min.json").call()?.into_string()?;
let data: Vec<Value> = serde_json::from_str(&body)?;
println!("{:?}", data.first());
Ok(())
} Sources and methodology
This dataset contains all structured syntax suffixes registered with the Internet Assigned Numbers Authority (IANA). These suffixes appear at the end of media type subtype names to indicate that the content conforms to a well-known underlying syntax — for example, application/ld+json uses the +json suffix to signal that the payload is valid JSON.
The data was sourced directly from the IANA Structured Syntax Suffixes registry CSV export at https://www.iana.org/assignments/media-type-structured-suffix/structured-syntax-suffix.csv and contains all 24 suffixes registered as of October 2026. Each record includes the suffix token, the full format name, associated RFC or specification references, and the original registration and modification dates.
Note that the references field preserves all citation identifiers from the IANA source (including ITU and draft IETF references), while the reference field provides a direct URL to the primary RFC where one is available. For suffixes backed only by non-RFC standards (e.g., +tlv, +jer, +uper), the reference field will be null.
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
media-type-suffixes changelog for this dataset's history.
More Web datasets
- aria-attributes
- aria-roles
- character-encodings
- csp-directives
- credit-card-types
- dns-record-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
- ip-protocol-numbers
- keyboard-event-codes
- link-relations
- 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