MIME Type Lookup
Find the correct Content-Type for any file extension, and the reverse — with notes on the ones that are commonly served wrong.
63 of 63 shown
| Extension | MIME Type | Notes |
|---|---|---|
| .html | text/html | HTML document. Serve with charset=utf-8 to avoid encoding issues. |
| .htm | text/html | Alternate HTML extension, identical in meaning to .html. |
| .css | text/css | Stylesheet. Browsers refuse stylesheets served with the wrong type in strict mode. |
| .js | text/javascript | JavaScript. text/javascript is the current standard; application/javascript is legacy but accepted. |
| .mjs | text/javascript | ES module JavaScript. Same MIME type as .js — the extension signals module semantics. |
| .json | application/json | JSON data. Always UTF-8; no charset parameter is defined for it. |
| .jsonld | application/ld+json | JSON-LD structured data, used for schema.org markup. |
| .xml | application/xml | XML. Use text/xml only when the content is human-readable. |
| .csv | text/csv | Comma-separated values. Add charset=utf-8 for non-ASCII data. |
| .txt | text/plain | Plain text. The fallback type for anything unrecognised and textual. |
| .md | text/markdown | Markdown. Many servers still fall back to text/plain for this. |
| .yaml | application/yaml | YAML. Registered in 2024; text/yaml is still widely seen. |
| .yml | application/yaml | Alternate YAML extension. |
| .ics | text/calendar | iCalendar event or subscription feed. |
| .rtf | application/rtf | Rich Text Format. |
| .png | image/png | Lossless raster image with alpha transparency. |
| .jpg | image/jpeg | Lossy photographic image. Note the MIME type is jpeg, not jpg. |
| .jpeg | image/jpeg | Identical to .jpg. |
| .gif | image/gif | Indexed-colour image with simple animation support. |
| .webp | image/webp | Modern format with both lossy and lossless modes, smaller than JPEG or PNG. |
| .avif | image/avif | AV1-based image format, typically smaller than WebP at equal quality. |
| .svg | image/svg+xml | Vector image. Serving it as text/plain or text/xml stops it rendering as an image. |
| .ico | image/x-icon | Favicon. image/vnd.microsoft.icon is the registered type; x-icon is what browsers expect. |
| .bmp | image/bmp | Uncompressed bitmap. |
| .tiff | image/tiff | High-quality raster image used in print and scanning. |
| .heic | image/heic | Apple's HEIF container. Poor browser support — convert before serving on the web. |
| .mp3 | audio/mpeg | MPEG audio. The type is audio/mpeg, not audio/mp3. |
| .wav | audio/wav | Uncompressed PCM audio. |
| .ogg | audio/ogg | Ogg container, usually Vorbis or Opus audio. |
| .opus | audio/opus | Opus codec, efficient for speech and low-bitrate audio. |
| .m4a | audio/mp4 | AAC audio in an MP4 container. |
| .flac | audio/flac | Lossless compressed audio. |
| .aac | audio/aac | Raw AAC audio stream. |
| .mp4 | video/mp4 | MP4 container, typically H.264 or H.265 video. |
| .webm | video/webm | Open container with VP8/VP9/AV1 video. |
| .mov | video/quicktime | QuickTime container, common straight off Apple devices. |
| .avi | video/x-msvideo | Legacy Windows video container. |
| .mkv | video/x-matroska | Matroska container. Flexible, but not natively playable in most browsers. |
| .m3u8 | application/vnd.apple.mpegurl | HLS playlist for adaptive streaming. |
| .woff | font/woff | Web Open Font Format. |
| .woff2 | font/woff2 | WOFF2 — better compression, and the format to prefer on the web today. |
| .ttf | font/ttf | TrueType font. |
| .otf | font/otf | OpenType font. |
| .eot | application/vnd.ms-fontobject | Embedded OpenType, only needed for very old Internet Explorer. |
| .zip | application/zip | ZIP archive. |
| .gz | application/gzip | Gzip-compressed file. |
| .tar | application/x-tar | Uncompressed tar archive. |
| .7z | application/x-7z-compressed | 7-Zip archive. |
| .rar | application/vnd.rar | RAR archive. |
| .br | application/x-brotli | Brotli-compressed data, usually applied via Content-Encoding rather than as a file type. |
| application/pdf | Portable Document Format. | |
| .doc | application/msword | Legacy binary Word document. |
| .docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document | Modern Word document. The long OOXML type is required — msword will not do. |
| .xls | application/vnd.ms-excel | Legacy binary Excel workbook. |
| .xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet | Modern Excel workbook. |
| .ppt | application/vnd.ms-powerpoint | Legacy binary PowerPoint presentation. |
| .pptx | application/vnd.openxmlformats-officedocument.presentationml.presentation | Modern PowerPoint presentation. |
| .odt | application/vnd.oasis.opendocument.text | OpenDocument text document. |
| .ods | application/vnd.oasis.opendocument.spreadsheet | OpenDocument spreadsheet. |
| .epub | application/epub+zip | EPUB ebook. |
| .wasm | application/wasm | WebAssembly module. Must be served with this exact type for streaming compilation to work. |
| .webmanifest | application/manifest+json | Web app manifest for installable PWAs. |
| .bin | application/octet-stream | Arbitrary binary data. The catch-all type, and what triggers a download prompt. |
Commonly got wrong:
.svgmust beimage/svg+xml— served as text it will not render as an image..mp3isaudio/mpeg, notaudio/mp3..wasmmust beapplication/wasmor streaming compilation is skipped.application/octet-streamis the catch-all that makes a browser download rather than display a file.
Your Data Never Leaves Your Device
Every tool runs entirely in your browser. Nothing you type is uploaded, stored, or logged on our servers.
This MIME type reference maps file extensions to the Content-Type values servers should send, and works in both directions — search .svg to get the type, or search officedocument to find which extensions use it. Entries are grouped by category so you can browse all the font or video types at once.
Getting this wrong causes failures that look unrelated to headers. An SVG served as text/plain silently refuses to render as an image, a .wasm file without application/wasm loses streaming compilation, and a .docx labelled application/msword can be rejected outright by the receiving application. The notes column flags the ones that trip people up most often.
FAQ
A MIME type (also called a media type or Content-Type) tells the client what kind of data it is receiving. Browsers rely on it far more than the file extension when deciding how to handle a response.
Almost always because it is served as text/plain or text/xml. An SVG must be sent as image/svg+xml before a browser will render it as an image.
text/javascript is the current standard. application/javascript is legacy but still widely accepted. ES modules use the same type — the .mjs extension signals module semantics, not a different MIME type.
The server is probably sending application/octet-stream, the generic binary catch-all, which tells the browser it has no way to display the content. A Content-Disposition: attachment header does the same thing.
For text types like text/html and text/css, yes — add charset=utf-8 to avoid encoding problems. JSON does not take one; it is always UTF-8 by specification.
Modern Office files are OOXML packages, and each has its own registered vendor type. A .docx must be sent as the full openxmlformats-officedocument type — application/msword applies only to the legacy binary .doc format.