MIME Type Reference
100% LocalSearchable reference of 60+ MIME types with file extensions and categories.
text/html
HTML document
text/css
Cascading Style Sheets
text/javascript
JavaScript
text/plain
Plain text
text/csv
Comma-Separated Values
text/xml
XML document
text/markdown
Markdown document
text/calendar
iCalendar format
application/json
JSON data
application/ld+json
JSON-LD linked data
application/pdf
PDF document
application/zip
ZIP archive
application/gzip
Gzip compressed
application/x-tar
TAR archive
application/x-7z-compressed
7-Zip archive
application/vnd.rar
RAR archive
application/wasm
WebAssembly binary
application/x-shockwave-flash
Adobe Flash
application/octet-stream
Binary data
application/yaml
YAML document
application/toml
TOML document
application/sql
SQL file
application/rtf
Rich Text Format
application/vnd.ms-excel
Excel spreadsheet
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
Excel Open XML spreadsheet
application/msword
MS Word document
application/vnd.openxmlformats-officedocument.wordprocessingml.document
Word Open XML document
application/vnd.ms-powerpoint
PowerPoint presentation
application/vnd.openxmlformats-officedocument.presentationml.presentation
PowerPoint Open XML
image/png
PNG image
image/jpeg
JPEG image
image/gif
GIF image
image/webp
WebP image
image/svg+xml
SVG vector image
image/x-icon
Icon image
image/avif
AVIF image
image/bmp
Bitmap image
image/tiff
TIFF image
image/heic
HEIC image (Apple)
audio/mpeg
MP3 audio
audio/wav
WAV audio
audio/ogg
OGG audio
audio/flac
FLAC lossless audio
audio/aac
AAC audio
audio/webm
WebM audio
audio/mp4
MP4 audio
video/mp4
MP4 video
video/webm
WebM video
video/ogg
OGG video
video/x-msvideo
AVI video
video/quicktime
QuickTime video
video/x-matroska
Matroska video
video/mp2t
MPEG transport stream
font/ttf
TrueType font
font/otf
OpenType font
font/woff
Web Open Font Format
font/woff2
Web Open Font Format 2
application/vnd.ms-fontobject
Embedded OpenType font
58 of 58 MIME types shown
Search by file extension or MIME type. Results show the full type name, category, and common usage.
Learn More
What is MIME Type Reference?
Frequently Asked Questions
Technical Deep Dive
MIME Type Reference
A complete searchable and filterable reference of 60+ MIME types organized by category (Text, Application, Image, Audio, Video, Font). Each entry shows file extensions, MIME type string, and description. Filter by category or search by extension or MIME type. Copy any MIME type with one click.
Built for Devs
Designed by people who use these tools in production every day.
Smart Defaults
Reasonable assumptions out of the box, every assumption overridable when you need it.
Workflow-Friendly
Pairs with your IDE, CI, and code review, output drops into commits and PRs cleanly.
01 Major Media Category Matrix
| Type Category | Canonical Example | Primary Use Case |
|---|---|---|
text/ | text/html | Markup and scripts |
application/ | application/json | Structured data / Binary |
image/ | image/webp | Raster/Vector visuals |
font/ | font/woff2 | Web typography |
multipart/ | multipart/form-data | File upload streams |
02 Content Negotiation Workflow
Accept header (e.g., Accept: application/json).
Content-Type header is injected into the response, instructing the browser's rendering engine on how to parse the byte stream.
03 Real-World Use Cases
MIME types matter most when they're wrong. These are the security and UX scenarios where the right Content-Type is load-bearing.
-
Content-Type for downloads Returning
application/octet-streamwithContent-Disposition: attachment; filename="..."forces a "Save As" dialog instead of inline render. The right combination is the difference between "downloads my report.csv" and "opens an unreadable wall of text in a new tab." -
X-Content-Type-Options: nosniff Without nosniff, browsers may sniff content and render an attacker-uploaded "image" as HTML, classic XSS vector. Set
X-Content-Type-Options: nosniffalongside an honest Content-Type, always. -
Uploaded-file validation Never trust the MIME type the client claims in
multipart/form-data, anyone can putimage/jpegon a .php file. Read the magic bytes server-side, then re-derive the type. -
application/octet-stream as last resort RFC 6838 calls this the "generic binary" type. Servers fall back to it when extension lookup fails. It's safe, browsers refuse to execute it as a script, but UX-hostile (no preview, always downloads).
-
Vendor-tree types (application/vnd.*) IANA registers vendor-prefixed types per RFC 6838 ยง3.2, Office docs (
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet) and proprietary formats live here. They're the long, ugly ones; they're also the canonical ones.
04 Worked Examples
image/jpeg โ registered (RFC 2046, RFC 3745)
image/jpg โ NOT registered, but tolerated by every browser
Browsers: accept both (Chrome, Firefox, Safari, Edge)
Strict validators (JSON-Schema "image/*" allowlists,
email gateways, S3 ContentType policies):
may reject "image/jpg" as unknown.
Always emit "image/jpeg".The .jpg file extension is fine and ubiquitous, it's only the MIME string that has a canonical form. RFC 3745 also covers image/jp2 (JPEG 2000), often confused with this pair.
text/csv โ IANA-registered (RFC 7111)
renders inline if browser can
application/csv โ unregistered, widely tolerated
tends to trigger download
application/vnd.ms-excel โ Excel claims it
opens directly in Excel on Windows"export.csv" with text/csv โ may render in browser
"export.csv" with application/csv โ reliably downloads
"export.csv" with application/vnd.ms-excel โ opens in Excel
(Outlook attachments do this)Pair with Content-Disposition: attachment if you always want a download. text/csv is the spec-correct choice; the others are pragmatic UX hacks.
PNG: 89 50 4E 47 0D 0A 1A 0A
JPEG: FF D8 FF (then E0/E1/DB for variant)
GIF: 47 49 46 38 39 61 ("GIF89a")
PDF: 25 50 44 46 2D ("%PDF-")
ZIP: 50 4B 03 04 ("PK")
WebP: 52 49 46 46 ?? ?? ?? ?? 57 45 42 50 ("RIFF....WEBP")const head = await readBytes(file, 0, 12);
if (head.slice(0,8).equals(Buffer.from([0x89,0x50,0x4E,0x47,
0x0D,0x0A,0x1A,0x0A])))
type = "image/png";
// ...
// NEVER: type = req.file.mimetype (attacker-controlled)The file(1) Unix command uses the same magic-byte database. Libraries like file-type (npm) and python-magic wrap this for you. Always re-derive type server-side before storing or serving.
05 Related Tools
Content-Type lives next to other HTTP semantics, status codes, header inspection, and the CORS preflight that the browser fires when a request's Content-Type triggers it.
HTTP Header Checker
Verify Content-Type, Content-Disposition, X-Content-Type-Options as a server actually sends them, not what you think you configured.
HTTP Methods Reference
A Content-Type beyond application/x-www-form-urlencoded, multipart/form-data, or text/plain triggers a CORS preflight, methods and types are entangled.
CORS Checker
Diagnose preflight failures caused by a "non-simple" Content-Type on a cross-origin fetch, most common cause of mysterious browser 0-status errors.