MIME Type Lookup

Search by file extension (.pdf, .png, .docx) or MIME type (image/png, application/json) to find the matching pair. Covers 150+ common types across images, documents, audio, video, archives, code, fonts, and web formats. Click any row to copy the MIME type. Useful when configuring web servers, setting Content-Type headers, or debugging file-upload validation.

Extension MIME Type Category

How to Use This Tool

  1. Type a file extension or MIME type into the search box — try .pdf, png, application/json, or just image to filter the table.
  2. Browse the matching rows — each row shows the file extension(s), the official MIME type, and a category tag (image, document, audio, etc.).
  3. Click a row to copy the MIME type to your clipboard — paste it into your Content-Type header, server config, or app code.
  4. Filter by category with the category buttons above the table to narrow down by image, document, audio, video, code, etc.

Why MIME Types Matter

Every HTTP response carries a Content-Type header that tells the browser how to interpret the body. Get it right and the browser renders an image, plays a video, parses JSON, or runs JavaScript. Get it wrong and you'll see broken downloads, raw source code displayed as text, fonts that don't load, or web fonts blocked by CORS. The MIME type is the single most important piece of metadata in any file transfer.

MIME types also drive client-side feature detection. The <source type="video/webm"> attribute tells the browser whether to bother loading a media file. The Accept header lets clients say which formats they prefer. The Service Worker fetch handler routes requests by content type. File-upload validation should always check MIME type plus file contents (magic bytes), never just the user-supplied filename — extension-only checks are trivially bypassed.

On the server side, every web stack ships with a default MIME-type lookup table — Apache reads /etc/mime.types, nginx has types {} blocks, Node uses the mime npm package, Express has express.static. When you add a new file format to your project (a new font, an obscure image variant, a custom binary), the first thing to check is whether your server's table knows about it. If not, the file gets served as application/octet-stream and the browser downloads it instead of rendering it.

Frequently Asked Questions

What is a MIME type?
A MIME type (Multipurpose Internet Mail Extensions) is a two-part label that identifies the format of a file or piece of data — for example image/png, application/pdf, or text/html. The first part is the general category (image, video, application, text, audio, font); the second part is the specific subtype. Browsers, web servers, email clients, and APIs use MIME types to decide how to handle data — render it inline, download it, parse it as JSON, or hand it to a media player. The Content-Type HTTP header carries the MIME type for every response.
What is the difference between MIME type and file extension?
A file extension (.pdf, .png, .mp3) is a hint baked into a filename; a MIME type is the formal identifier the rest of the system uses. Most extensions map to exactly one MIME type, but the relationship isn't strict — the same MIME type can have multiple extensions (.jpg and .jpeg both map to image/jpeg), and an extension alone can't be trusted because anyone can rename a file. Production code should sniff the actual file contents (magic bytes) for security-sensitive operations, not just trust the extension.
Why does my web server send the wrong Content-Type header?
Web servers map file extensions to MIME types via a lookup table — usually a file like /etc/mime.types on Apache/nginx or via the mime npm package on Node. If a file extension isn't in the table, most servers fall back to application/octet-stream (the generic 'unknown binary' type), which causes browsers to download instead of render. Add the extension to your server's config or set the Content-Type explicitly in your application code. Common offenders: .webp, .avif, .woff2 in older Apache configs; .wasm in older nginx.
What MIME type should I use for JSON?
application/json for actual JSON payloads. text/json is non-standard and should be avoided — older code sometimes used it but no spec backs it up. For JSON-based formats with their own conventions, use the appropriate variant: application/ld+json for JSON-LD, application/manifest+json for web app manifests, application/geo+json for GeoJSON, application/problem+json for RFC 7807 error responses. The +json suffix tells generic JSON parsers they can still process the body as JSON.
Where does the official list of MIME types live?
IANA maintains the official registry at iana.org/assignments/media-types. There are thousands of registered types covering everything from common formats to specialized industry standards (HL7, EDI, scientific data formats). Most applications only ever encounter a few dozen — the 150+ entries in this tool cover what you actually see in the wild on web servers, file uploads, and email clients. Anything truly exotic, look it up directly at IANA.