MIME Type Lookup
Find the MIME type for a file extension (or the other way around) and learn what each type is for.
| Extension | MIME type | Description | |
|---|---|---|---|
| .json | application/json | JSON data interchange format (RFC 8259). | |
| .xml | application/xml | XML data — use text/xml for human-readable, application/xml for machine-only. | |
| application/pdf | Portable Document Format. | ||
| .zip | application/zip | PKZIP archive. | |
| .gz | application/gzip | Gzip-compressed file. | |
| .tar | application/x-tar | Tape archive (Unix). | |
| .7z | application/x-7z-compressed | 7-Zip archive. | |
| .rar | application/vnd.rar | RAR archive. | |
| .js | application/javascript | JavaScript source — text/javascript is preferred in HTTP per the WHATWG. | |
| .wasm | application/wasm | WebAssembly binary module. | |
| .bin | application/octet-stream | Arbitrary binary data — the default for unknown types. | |
| .doc | application/msword | Microsoft Word 97-2003. | |
| .docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document | Microsoft Word (Office Open XML). | |
| .xls | application/vnd.ms-excel | Microsoft Excel 97-2003. | |
| .xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | Microsoft Excel (Office Open XML). | |
| .ppt | application/vnd.ms-powerpoint | Microsoft PowerPoint 97-2003. | |
| .pptx | application/vnd.openxmlformats-officedocument.presentationml.presentation | Microsoft PowerPoint (Office Open XML). | |
| .odt | application/vnd.oasis.opendocument.text | OpenDocument Text (LibreOffice / OpenOffice). | |
| .mp3 | audio/mpeg | MPEG-1 Audio Layer 3. | |
| .wav | audio/wav | Waveform Audio File Format. | |
| .ogg | audio/ogg | Ogg container with Vorbis/Opus. | |
| .flac | audio/flac | Free Lossless Audio Codec. | |
| .aac | audio/aac | Advanced Audio Coding. | |
| .m4a | audio/mp4 | AAC inside an MP4 container. | |
| .webm | audio/webm | WebM audio (Vorbis/Opus). | |
| .ttf | font/ttf | TrueType font. | |
| .otf | font/otf | OpenType font. | |
| .woff | font/woff | Web Open Font Format. | |
| .woff2 | font/woff2 | Web Open Font Format 2 — better compression than woff. | |
| .jpg | image/jpeg | JPEG image — use this for .jpg and .jpeg. | |
| .png | image/png | Portable Network Graphics. | |
| .gif | image/gif | Graphics Interchange Format — supports animation. | |
| .webp | image/webp | WebP — smaller than JPEG/PNG, supports transparency and animation. | |
| .avif | image/avif | AV1 Image File Format — even smaller than WebP. | |
| .svg | image/svg+xml | Scalable Vector Graphics — XML-based vector format. | |
| .ico | image/vnd.microsoft.icon | Windows icon — also commonly served as image/x-icon. | |
| .bmp | image/bmp | Windows Bitmap. | |
| .tiff | image/tiff | Tagged Image File Format. | |
| .heic | image/heic | High Efficiency Image Format (iOS default). | |
| .txt | text/plain | Plain text — the default for unknown text. | |
| .html | text/html | HyperText Markup Language. | |
| .css | text/css | Cascading Style Sheets. | |
| .csv | text/csv | Comma-Separated Values. | |
| .tsv | text/tab-separated-values | Tab-Separated Values. | |
| .md | text/markdown | Markdown source. | |
| .yaml | application/yaml | YAML document — older text/x-yaml is still seen in the wild. | |
| .ics | text/calendar | iCalendar event/calendar data (RFC 5545). | |
| .vcf | text/vcard | vCard contact data. | |
| .mp4 | video/mp4 | MPEG-4 video (H.264/H.265 + AAC). | |
| .webm | video/webm | WebM video (VP8/VP9 + Vorbis/Opus). | |
| .mov | video/quicktime | QuickTime Movie. | |
| .avi | video/x-msvideo | Audio Video Interleave. | |
| .mkv | video/x-matroska | Matroska Multimedia Container. | |
| .mpeg | video/mpeg | MPEG-1/2 video. | |
| — | multipart/form-data | HTML form upload with files — used by <form enctype="…">. | |
| — | multipart/byteranges | Multiple ranges from a single resource — Range request responses. | |
| — | multipart/mixed | Several body parts of different content types. |
How to use
- Type a file extension (
.zip), MIME type (application/json), or keyword (compressed) into the search box. - Pick a category chip to narrow down — e.g. just image types when you're configuring uploads.
- Click the copy button next to any row to copy the MIME string.
About this tool
ShowHide
Look up the MIME type for a file extension or the extension behind a MIME type, filtered by category or searched across extension, type string and description at once. The reason to get this right is that browsers go by the Content-Type header, not by the name: serve a PDF as application/octet-stream and it downloads instead of opening, serve a stylesheet as text/plain and the page loads unstyled with no visible error. The mapping is not one to one in either direction — .jpg and .jpeg are the same type, and a single type can have several accepted extensions — so match on the type when you validate an upload, and send X-Content-Type-Options: nosniff so the browser does not try to guess a different one.
Frequently asked questions
Is text/javascript or application/javascript correct for JS files?
Both work, but the WHATWG HTML spec officially recommends text/javascript when serving JavaScript over HTTP. application/javascript is widely supported and you'll see it in older configurations.
What's the difference between image/jpeg and image/jpg?
Only image/jpeg is the registered IANA type. image/jpg is a common misspelling — most browsers tolerate it but tools and HTTP caches may not.
When should I use application/octet-stream?
Use it for arbitrary binary data when no more specific type fits, or to force the browser to download the file instead of displaying it. Pair with a Content-Disposition: attachment header.
Why does the browser ignore the type I sent?
It usually does not — the modern default is to trust the declared type, which is why a mislabelled file fails rather than being rescued. Where a browser does look at the bytes, it is for a narrow set of cases, and X-Content-Type-Options: nosniff turns that off entirely. A stylesheet or a module script served with the wrong type is refused outright, which is the most common way this shows up.
What does the charset parameter change?
It tells the client how to decode the bytes of a text type, and it outranks anything the document says about itself — a page declaring UTF-8 in a meta tag still renders as mojibake if the header says otherwise. Binary types have no charset, and adding one is meaningless; text/plain without one leaves the decoding to a guess.
Related tools
File Type Detector (Magic Bytes)
Drop a file to identify its true format from its magic bytes — and catch files whose extension or declared MIME type lies.
File
xz (.xz) Stream Inspector
Read an .xz container: stream header, every block header and filter chain, the index and the footer — with the true uncompressed size, unpacking nothing.
File
Port Number Reference
Searchable cheat sheet for ~60 standard TCP / UDP port numbers — from 22 (SSH) and 80 (HTTP) to 6379 (Redis) and 27017 (MongoDB).
Network
MP4 / ISO Base Media File Inspector
Open an MP4, M4A, M4V or MOV in your browser: brands, the fast-start check, the whole box tree, every track codec and duration, and iTunes tags.
File
EML File Viewer
Drop an .eml file and read the parsed message — key headers, plain-text and HTML body parts, and a list of attachments — all in the browser.
File
Mbox Archive Viewer
Split a .mbox archive in your browser: message boundaries, decoded headers, MIME structure, threads and duplicate Message-IDs. Nothing is uploaded.
File