glunty

MIME Types Reference and Lookup

Search common media types by MIME string or by file extension. Both directions, all local.

Common MIME (media) types with typical file extensions and descriptions.
MIME type Extension Description
text/plain .txt Plain text with no markup or formatting.
text/html .html .htm HTML markup for web pages.
text/css .css Cascading Style Sheets stylesheet.
text/csv .csv Comma-separated values, one record per line.
text/javascript .js .mjs JavaScript source (current standard type).
application/json .json JSON structured data.
application/xml .xml XML data (text/xml is also seen).
application/pdf .pdf Portable Document Format file.
application/zip .zip ZIP compressed archive.
application/gzip .gz Gzip compressed file (also application/x-gzip).
application/octet-stream .bin Arbitrary binary data; the generic download fallback.
application/x-www-form-urlencoded n/a URL-encoded HTML form field submissions.
multipart/form-data n/a HTML form submissions that include file uploads.
application/wasm .wasm WebAssembly binary module.
application/ld+json .jsonld JSON-LD linked data (JSON plus a context).
image/png .png Portable Network Graphics, lossless.
image/jpeg .jpg .jpeg JPEG photographic image, lossy.
image/gif .gif GIF image, supports simple animation.
image/webp .webp WebP image, lossy or lossless.
image/svg+xml .svg Scalable Vector Graphics, XML based.
image/avif .avif AVIF image, AV1 based, high compression.
image/x-icon .ico Icon file for favicons (also image/vnd.microsoft.icon).
audio/mpeg .mp3 MP3 compressed audio.
audio/ogg .ogg .oga Ogg container audio (Vorbis or Opus).
audio/wav .wav Waveform uncompressed audio (also audio/x-wav).
video/mp4 .mp4 .m4v MP4 container video (H.264 or H.265).
video/webm .webm WebM container video (VP8, VP9, or AV1).
video/ogg .ogv Ogg container video (Theora).
font/woff .woff Web Open Font Format 1.0.
font/woff2 .woff2 Web Open Font Format 2.0, better compression.
font/ttf .ttf TrueType font.
font/otf .otf OpenType font.

What this tool does

This is a quick reference for the MIME types (media types, or content types) you meet most often on the web: the type string, a typical file extension, and a one-line description. The table is searchable in both directions, so you can start from a MIME string like application/json or from a bare extension like .json and land on the same row. Everything runs in your browser: open DevTools then the Network tab to verify that zero requests are made while you search.

How to use it

Type into the search box. The table filters as you go and shows a running count of how many types match. Search works on the MIME string and the extension together, and a leading dot is optional. For example, typing png or .png both surface image/png, and typing json surfaces application/json alongside application/ld+json. To browse a whole family, search a top-level type such as image, audio, or font.

Common use cases

  • Setting the correct Content-Type response header on a server or API.
  • Picking the right type attribute for a <script>, <source>, or <link> tag.
  • Building the prefix of a data: URI (for example data:image/png;base64,).
  • Configuring an Accept header or content negotiation in an HTTP client.
  • Deciding what to store in a database column that records the media type of an upload.

Common pitfalls

  • The extension is a hint, not the truth. The web decides how to handle content from the Content-Type header, not from the file name. A file named photo.png served as text/plain will not render as an image.
  • application/octet-stream forces a download. It is the catch-all for binary data. If your files download instead of opening, a missing or generic Content-Type is usually why.
  • Text types often need a charset. Prefer text/html; charset=utf-8 and the same for CSS and plain text to avoid garbled characters. Binary types and JSON do not need one.
  • JavaScript has legacy aliases. You will still see application/javascript and application/x-javascript, but text/javascript is the current standard value.

Frequently asked questions

What is a MIME type?
A MIME type (also called a media type or content type) is a short label like text/html or image/png that tells software what kind of data a file or HTTP response body contains. It has a top-level type (text, image, application, and so on) and a subtype (html, png, json). Browsers and servers use it to decide how to render or handle content, which is why the Content-Type header often matters more than the file extension on the web.
What is the difference between a MIME type and a content type?
They are the same thing in practice. MIME type is the older name, from the email MIME standard. Media type is the name IANA now uses for its registry. Content type is what the HTTP header is called (Content-Type). When someone talks about a content type header, they mean the MIME type sent with a request or response.
How do I find the right MIME type for a file extension?
Search the table by extension. Type png or .png to surface image/png, or json to surface application/json. The mapping is not one to one: a single extension can have more than one accepted type, and one type can cover several extensions. When in doubt, prefer the type recommended by IANA or MDN for that format.
Why does application/octet-stream show up so often?
application/octet-stream is the generic fallback for arbitrary binary data. Servers send it when they do not know or do not want to declare a specific type, and browsers usually respond by downloading the file rather than displaying it. If a file downloads instead of opening in the browser, a missing or generic Content-Type is a common cause.
What is the correct MIME type for JavaScript?
The current standard is text/javascript, restored by the WHATWG HTML specification. You will still see application/javascript and older forms like application/x-javascript in the wild, and browsers accept them, but text/javascript is the recommended value today. For JSON data use application/json, and for JSON-LD linked data use application/ld+json.
Do MIME types need a charset parameter?
Text formats can carry a charset parameter, for example text/html; charset=utf-8. It tells the client how to decode the raw bytes into characters. For HTML, CSS, and plain text, declaring charset=utf-8 avoids garbled output. Binary types like image/png do not use a charset, and JSON is always UTF-8 by specification, so a charset parameter is unnecessary there.

Embed this tool

Free for any use; attribution appreciated. Paste this on your site:

The embed runs the same tool that lives at this URL. No tracking; no ads inside the embed. Resize height as needed for your layout.

Cite this tool

For academic, journalistic, or technical references. Pick a format:

Citations use 2026 as the publication year. Access date is left as a fillable placeholder where the citation style expects one.

Embedded tool from glunty.com