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

Extension to MIME and back again

Mismatches that break downloads and rendering

What the table covers (and what it doesn't)

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.