Skip to content

MIME Type Lookup

Bidirectional reference — find the MIME type for any file extension, or the extensions for any MIME type.

Last updated:

Image · 12

MIME typeExtensionsName
image/png.pngPNG image
image/jpeg.jpg, .jpeg, .jpeJPEG image
image/gif.gifGIF image
image/webp.webpWebP image
image/avif.avifAVIF image
image/svg+xml.svg, .svgzSVG image
image/x-icon.icoIcon
image/bmp.bmpBitmap image
image/tiff.tif, .tiffTIFF image
image/heic.heicHEIC image
image/heif.heifHEIF image
image/apng.apngAnimated PNG

Application · 29

MIME typeExtensionsName
application/json.jsonJSON
application/ld+json.jsonldJSON-LD
application/xml.xmlXML (app)
application/javascript.jsJavaScript (legacy)
application/pdf.pdfPDF document
application/zip.zipZIP archive
application/gzip.gzGzip archive
application/x-tar.tarTAR archive
application/x-7z-compressed.7z7-Zip archive
application/x-rar-compressed.rarRAR archive
application/octet-stream.binBinary stream
application/wasm.wasmWebAssembly
application/msword.docWord document (legacy)
application/vnd.openxmlformats-officedocument.wordprocessingml.document.docxWord document
application/vnd.ms-excel.xlsExcel spreadsheet (legacy)
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.xlsxExcel spreadsheet
application/vnd.ms-powerpoint.pptPowerPoint (legacy)
application/vnd.openxmlformats-officedocument.presentationml.presentation.pptxPowerPoint
application/vnd.oasis.opendocument.text.odtOpenDocument text
application/vnd.oasis.opendocument.spreadsheet.odsOpenDocument spreadsheet
application/sql.sqlSQL script
application/x-sh.shShell script
application/x-httpd-php.phpPHP script
application/x-www-form-urlencodedURL-encoded form data
application/graphql.graphql, .gqlGraphQL
application/manifest+json.webmanifestWeb manifest
application/atom+xml.atomAtom feed
application/rss+xml.rssRSS feed
application/epub+zip.epubEPUB book

Text · 10

MIME typeExtensionsName
text/plain.txt, .text, .logPlain text
text/html.html, .htmHTML
text/css.cssCSS stylesheet
text/javascript.js, .mjsJavaScript
text/csv.csvComma-separated values
text/markdown.md, .markdownMarkdown
text/xml.xmlXML
text/yaml.yaml, .ymlYAML
text/x-sass.sassSass
text/x-scss.scssSCSS

Audio · 8

MIME typeExtensionsName
audio/mpeg.mp3, .mpgaMP3 audio
audio/ogg.ogg, .ogaOgg audio
audio/wav.wavWAV audio
audio/webm.webaWebM audio
audio/aac.aacAAC audio
audio/flac.flacFLAC audio
audio/mp4.m4aMP4 audio
audio/midi.mid, .midiMIDI audio

Video · 7

MIME typeExtensionsName
video/mp4.mp4, .m4vMP4 video
video/webm.webmWebM video
video/ogg.ogvOgg video
video/quicktime.mov, .qtQuickTime video
video/x-msvideo.aviAVI video
video/x-matroska.mkvMatroska video
video/mpeg.mpeg, .mpgMPEG video

Font · 5

MIME typeExtensionsName
font/woff.woffWeb font WOFF
font/woff2.woff2Web font WOFF2
font/ttf.ttfTrueType font
font/otf.otfOpenType font
font/collection.ttcTrueType collection

71 of 71 MIME types

What Are MIME Types?

A MIME type (Multipurpose Internet Mail Extensions type), also called a media type, is a standardized label that tells software how to interpret the contents of a file or data stream. Every MIME type follows a two-part format: type/subtype. The type is a broad category such as text, image, application, or audio, while the subtype identifies the specific format, like html, png, or json.

When a web server responds to a request, it includes a Content-Type HTTP header that carries the MIME type of the response body. This header is how the browser decides whether to render HTML, parse JSON, display an image, or trigger a file download. Without it, browsers fall back to content sniffing, which is unreliable and can introduce security vulnerabilities.

The authoritative list of MIME types is maintained by the Internet Assigned Numbers Authority (IANA). Vendors can register their own subtypes using the vnd. prefix (for example, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet for .xlsx files), while unofficial types use the x- prefix.

Common MIME Types Developers Need

While hundreds of MIME types exist in the IANA registry, most web development work revolves around a handful of frequently used types:

  • application/json — the standard type for JSON payloads in REST APIs. Often paired with a charset=utf-8 parameter.
  • text/html — HTML documents. Browsers expect this type to render a page rather than download the file.
  • text/css and text/javascript — stylesheets and scripts. Serving JavaScript with the wrong MIME type causes browsers to block execution.
  • image/png, image/jpeg, image/webp, image/svg+xml — common image formats. Modern sites increasingly use WebP and AVIF for smaller file sizes.
  • multipart/form-data — used by HTML forms that include file uploads. The browser splits the request body into parts separated by a generated boundary string.
  • application/octet-stream — a generic binary type. Servers use it as a fallback when the exact format is unknown, which typically forces the browser to download the file instead of displaying it.
  • application/pdf — PDF documents. Most modern browsers render PDFs inline rather than triggering a download.

MIME types can also include optional parameters. For example, text/html; charset=utf-8 tells the browser both the format and the character encoding. The boundary parameter in multipart/form-data is another common example that separates the individual parts of a multi-part request body.

Where MIME Types Matter

MIME types appear throughout the web stack, and getting them wrong leads to bugs that can be difficult to diagnose:

  • HTTP response headers — the Content-Type header on every response tells the client how to handle the body. A misconfigured web server that serves CSS files as text/plain will cause styles to silently fail in strict mode.
  • File uploads — when users upload files through a form, the browser attaches a MIME type to each part. Server-side validation should check this type (along with the file signature) to prevent malicious uploads.
  • Email attachments — MIME was originally designed for email. Each attachment in a multipart email message carries its own Content-Type so the email client knows how to render or offer the file for download.
  • Static file serving — web servers like Apache and Nginx map file extensions to MIME types using configuration files (mime.types or .htaccess directives). Adding a new file type to your project, like .wasm or .avif, may require updating this mapping.
  • Download dialogs — the Content-Disposition: attachment header forces a download regardless of MIME type, but the MIME type still determines which application the OS suggests for opening the file after download.

Security headers like X-Content-Type-Options: nosniff tell the browser to trust the declared MIME type and never override it with content sniffing. This prevents attacks where a malicious file disguised with the wrong extension gets reinterpreted as executable HTML or JavaScript.

Related Tools

Working with MIME types often goes hand-in-hand with other HTTP and encoding tasks. Use the HTTP Status Codes reference to understand how servers communicate success, redirects, and errors alongside content types. The URL Parser helps you break down request URLs into their component parts, which is useful when debugging API endpoints that return unexpected content types. If you need to embed binary files directly in HTML or CSS, the Base64 Encoder converts file data into a text-safe format that you can use in data URIs like data:image/png;base64,... — where the MIME type is part of the URI itself.

Frequently Asked Questions

What is a MIME type?
A MIME type (or "media type") is a two-part label in the form `type/subtype` that identifies what kind of data a file contains. Examples: `image/png` for PNG images, `application/json` for JSON data, `text/html` for HTML documents. Servers send MIME types in the Content-Type HTTP header.
Is the MIME type for JavaScript `text/javascript` or `application/javascript`?
Both are used, but `text/javascript` is the modern recommended value (per WHATWG HTML spec and RFC 9239). `application/javascript` was the historical IANA-registered type and still works everywhere, but new code should prefer `text/javascript`.
Why does this tool not list every MIME type?
There are thousands of registered MIME types, but only about 200 are commonly encountered in web development. This tool curates the most-used subset. For the full IANA registry, see the official list at iana.org/assignments/media-types.
Where do MIME types actually come from?
The IANA Media Types registry (iana.org/assignments/media-types) is the authoritative source. Anyone can register a new type by submitting it to the IETF, but most common ones have been standardized for decades.
Why are some files served with the wrong MIME type?
The MIME type is declared by the server or inferred from the file extension — neither is guaranteed to match the actual bytes. Security-sensitive systems sniff the file contents instead of trusting the declared type.
Does the `Content-Type` header need a charset parameter?
For text formats (HTML, CSS, JSON, plain text) you should include `charset=utf-8` unless the server already defaults to it. For binary formats (images, videos, PDFs) no charset is needed.

Related Tools