How to use the MIME type lookup
- Type in Filter: an extension (
.webporwebp), a type prefix (video/,font/) or a word from the description (Excel,archive). - You can paste a glob such as
*.mjs; the*is ignored. - Read the Extension, MIME type and Description columns. “Showing” gives the count out of 106.
- Copy the type into your server config, upload code or header, or download the table as
mime-types.csv.
What it does and when to use it
A wrong Content-Type causes quiet failures. A module script served as text/plain will not run, a font with the wrong type can be blocked, and an SVG sent as application/octet-stream downloads instead of showing. This lookup gives the right value quickly when you write an nginx types block, set ContentType on an S3 upload, check an <input accept> list or debug a download that opens in the browser.
The list covers web files (HTML, CSS, JavaScript, JSON, WebAssembly, manifests), images including AVIF, HEIC and JPEG XL, audio, video and streaming playlists, subtitles, fonts, Office and OpenDocument files, archives, installers, certificates and 3D models. For the headers around it, see the HTTP Headers Ref.
How it works
The table is a fixed list in the page, drawn from MDN’s list of common media types and the RFCs named in some descriptions. The filter is split into words and a row is kept when every word appears in one of its cells. A leading *. or . is normalised so *.mjs, .mjs and mjs behave the same. Nothing is sent to a server.
Worked examples
ES modules. Filter *.mjs:
.js .mjs | text/javascript | JavaScript (RFC 9239)
Web fonts. Filter font/ returns Showing: 4 of 106 types: font/woff, font/woff2, font/ttf and font/otf. The older .eot uses application/vnd.ms-fontobject and is not in the font/ family.
JSON flavours. Filter json returns 8 rows, among them application/ld+json for JSON-LD, application/manifest+json for .webmanifest, and:
(problem) | application/problem+json | HTTP API error details (RFC 9457)
Limits and tips
- 106 common types, not the full IANA registry. Some rows are widely used
x-types, such asapplication/x-7z-compressed. - A substring filter can match more than you expect:
.tsalso finds.tsv. - The extension is only a hint. To check what a file really is, look at its first bytes with the Hex Dump Viewer.
- For
multipart/form-datauploads, cURL to Code turnscurl -Fcommands into code.
Frequently asked questions
Is JavaScript application/javascript or text/javascript?
Why does .ts show video/mp2t?
Do I need to add charset to the type?
What should I use for an unknown binary file?
What are the rows without an extension?
How do we know nothing is uploaded? Test it yourself on the privacy proof page.