MIME Type Lookup
Search MIME types by extension or by type. ~120 common types — image, video, audio, application, text, font.
Finding the right content type
A MIME type (now called an Internet media type) is a two-part label like image/png or application/json that tells a server, browser, or library how to interpret a chunk of bytes. It's what goes in HTTP Content-Type headers, what Multipart message parts declare, and what file --mime reports. The IANA registry has thousands of entries; this tool covers roughly 120 common ones you'll actually encounter in web development, APIs, and file handling.
Headers, uploads, and server config
- Setting
Content-Typeon an API response and needing the correct type for.docx,.heic,.webmanifest, or other less obvious formats. - Configuring an upload field's
acceptattribute in HTML or an S3-bucket allow-list policy. - Reading HTTP headers, tcpdump output, or logs and looking up what
application/grpc-weborapplication/ld+jsonactually is. - Building a static-file server, CDN config, or reverse-proxy routing rules that require extension-to-MIME mapping.
- Settling format debates — for example, whether to use
text/xmlorapplication/xml(RFC 7303 recommends the latter for new code). - Debugging browser download or rendering issues caused by mismatched or missing
Content-Typeheaders.
Extension to MIME and back again
- Search by extension: Enter a file extension like
.pdf,.mp4, or.woff2and get the standard MIME type back. - Search by MIME type: Enter a full or partial MIME type like
image/orapplication/jsonto find all matching entries and their file extensions. - Copy to clipboard: Click or tap any result to copy the MIME type or extension to your clipboard — useful when building headers or config files.
- Browse by category: Results are grouped by media type category (image, video, audio, application, text, font) so you can explore related formats at a glance.
Mismatches that break downloads and rendering
- Extension does not equal MIME type. A
.jsonfile usually maps toapplication/json, but a misconfigured server can serve it astext/plainand browsers will obey the header. Always setContent-Typeexplicitly in your code. - JavaScript has legacy baggage. RFC 9239 designates
text/javascriptas the official type. Howeverapplication/javascript,application/ecmascript, and other variants are still widely used and supported; old browsers expect them. - OOXML types are extremely verbose.
.docxmaps toapplication/vnd.openxmlformats-officedocument.wordprocessingml.document— do not try to memorise these. Look them up or copy them. application/octet-streammeans "unknown". Browsers treat it as a force-download and will not attempt to render it, even for formats like PDFs or images. Use a proper MIME type if you control the content.- Charset must be declared for text types.
Content-Type: text/html; charset=utf-8— omitting the charset allows browsers to guess, leading to mojibake (garbled characters) in non-ASCII content. - Content-Type sniffing can override your header. Some browsers inspect file magic bytes and may render content differently than your declared type. Set
X-Content-Type-Options: nosniffto prevent this; it improves security.
What the table covers (and what it doesn't)
- This tool indexes roughly 120 of the most common MIME types used in web development, APIs, and file transfer. The IANA registry is much larger and includes experimental and vendor-specific types.
- For exhaustive or specialist types (e.g., medical imaging, rare font formats, niche document standards), consult the official IANA Media Types registry at iana.org/assignments/media-types.
- Vendor prefixes like
vnd.andx-indicate non-standard or private types; they are included here where widely adopted (e.g.,application/vnd.api+jsonfor JSON:API).
The type/subtype label and the IANA registry
A MIME type — now formally an Internet media type — is a two-part type/subtype label like image/png or application/json that tells a browser, server, or library how to interpret a stream of bytes. It's what fills the HTTP Content-Type header, what each part of a multipart upload declares, and what file --mime reports. The IANA registry lists thousands; this table covers roughly 120 you'll actually meet across web development, APIs, and file handling. Search works both directions — type an extension (.pdf, png, .json) or a type fragment (image/, video) — and clicking any result copies it to your clipboard for pasting into a header or config.
Forced downloads, charsets, and OOXML verbosity
Why does my file download instead of displaying? Almost always the wrong Content-Type. The classic culprit is application/octet-stream, the "generic unknown binary" type — browsers treat it as a forced download and won't try to render it, even for a PDF or image. If you control the response, send the real type.
text/javascript or application/javascript? Use text/javascript. RFC 9239 (2022) made it the preferred, registered type for JavaScript; application/javascript is now legacy and kept only for compatibility.
Do I need a charset? For text-based types, yes — append it: text/html; charset=utf-8, text/csv; charset=utf-8. It removes any ambiguity about byte decoding. Binary types (images, PDFs, archives) carry no charset, and application/json is defined as always UTF-8, so a charset there is redundant.
Why are the Office (OOXML) types so long? A .docx is application/vnd.openxmlformats-officedocument.wordprocessingml.document — that verbosity is the real registered name. Don't memorise them; look them up here and copy the exact string, because a single typo makes the file unrecognised.