Skip to content
AZ Tools

MIME Type Lookup

Find the MIME type for a file extension (or the other way around) and learn what each type is for.

ExtensionMIME typeDescription
.jsonapplication/jsonJSON data interchange format (RFC 8259).
.xmlapplication/xmlXML data — use text/xml for human-readable, application/xml for machine-only.
.pdfapplication/pdfPortable Document Format.
.zipapplication/zipPKZIP archive.
.gzapplication/gzipGzip-compressed file.
.tarapplication/x-tarTape archive (Unix).
.7zapplication/x-7z-compressed7-Zip archive.
.rarapplication/vnd.rarRAR archive.
.jsapplication/javascriptJavaScript source — text/javascript is preferred in HTTP per the WHATWG.
.wasmapplication/wasmWebAssembly binary module.
.binapplication/octet-streamArbitrary binary data — the default for unknown types.
.docapplication/mswordMicrosoft Word 97-2003.
.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentMicrosoft Word (Office Open XML).
.xlsapplication/vnd.ms-excelMicrosoft Excel 97-2003.
.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetMicrosoft Excel (Office Open XML).
.pptapplication/vnd.ms-powerpointMicrosoft PowerPoint 97-2003.
.pptxapplication/vnd.openxmlformats-officedocument.presentationml.presentationMicrosoft PowerPoint (Office Open XML).
.odtapplication/vnd.oasis.opendocument.textOpenDocument Text (LibreOffice / OpenOffice).
.mp3audio/mpegMPEG-1 Audio Layer 3.
.wavaudio/wavWaveform Audio File Format.
.oggaudio/oggOgg container with Vorbis/Opus.
.flacaudio/flacFree Lossless Audio Codec.
.aacaudio/aacAdvanced Audio Coding.
.m4aaudio/mp4AAC inside an MP4 container.
.webmaudio/webmWebM audio (Vorbis/Opus).
.ttffont/ttfTrueType font.
.otffont/otfOpenType font.
.wofffont/woffWeb Open Font Format.
.woff2font/woff2Web Open Font Format 2 — better compression than woff.
.jpgimage/jpegJPEG image — use this for .jpg and .jpeg.
.pngimage/pngPortable Network Graphics.
.gifimage/gifGraphics Interchange Format — supports animation.
.webpimage/webpWebP — smaller than JPEG/PNG, supports transparency and animation.
.avifimage/avifAV1 Image File Format — even smaller than WebP.
.svgimage/svg+xmlScalable Vector Graphics — XML-based vector format.
.icoimage/vnd.microsoft.iconWindows icon — also commonly served as image/x-icon.
.bmpimage/bmpWindows Bitmap.
.tiffimage/tiffTagged Image File Format.
.heicimage/heicHigh Efficiency Image Format (iOS default).
.txttext/plainPlain text — the default for unknown text.
.htmltext/htmlHyperText Markup Language.
.csstext/cssCascading Style Sheets.
.csvtext/csvComma-Separated Values.
.tsvtext/tab-separated-valuesTab-Separated Values.
.mdtext/markdownMarkdown source.
.yamlapplication/yamlYAML document — older text/x-yaml is still seen in the wild.
.icstext/calendariCalendar event/calendar data (RFC 5545).
.vcftext/vcardvCard contact data.
.mp4video/mp4MPEG-4 video (H.264/H.265 + AAC).
.webmvideo/webmWebM video (VP8/VP9 + Vorbis/Opus).
.movvideo/quicktimeQuickTime Movie.
.avivideo/x-msvideoAudio Video Interleave.
.mkvvideo/x-matroskaMatroska Multimedia Container.
.mpegvideo/mpegMPEG-1/2 video.
—multipart/form-dataHTML form upload with files — used by <form enctype="…">.
—multipart/byterangesMultiple ranges from a single resource — Range request responses.
—multipart/mixedSeveral body parts of different content types.

How to use

  1. Type a file extension (.zip), MIME type (application/json), or keyword (compressed) into the search box.
  2. Pick a category chip to narrow down — e.g. just image types when you're configuring uploads.
  3. Click the copy button next to any row to copy the MIME string.

About this tool

Show

Look up the MIME type for a file extension or the extension behind a MIME type, filtered by category or searched across extension, type string and description at once. The reason to get this right is that browsers go by the Content-Type header, not by the name: serve a PDF as application/octet-stream and it downloads instead of opening, serve a stylesheet as text/plain and the page loads unstyled with no visible error. The mapping is not one to one in either direction — .jpg and .jpeg are the same type, and a single type can have several accepted extensions — so match on the type when you validate an upload, and send X-Content-Type-Options: nosniff so the browser does not try to guess a different one.

Frequently asked questions

Is text/javascript or application/javascript correct for JS files?

Both work, but the WHATWG HTML spec officially recommends text/javascript when serving JavaScript over HTTP. application/javascript is widely supported and you'll see it in older configurations.

What's the difference between image/jpeg and image/jpg?

Only image/jpeg is the registered IANA type. image/jpg is a common misspelling — most browsers tolerate it but tools and HTTP caches may not.

When should I use application/octet-stream?

Use it for arbitrary binary data when no more specific type fits, or to force the browser to download the file instead of displaying it. Pair with a Content-Disposition: attachment header.

Why does the browser ignore the type I sent?

It usually does not — the modern default is to trust the declared type, which is why a mislabelled file fails rather than being rescued. Where a browser does look at the bytes, it is for a narrow set of cases, and X-Content-Type-Options: nosniff turns that off entirely. A stylesheet or a module script served with the wrong type is refused outright, which is the most common way this shows up.

What does the charset parameter change?

It tells the client how to decode the bytes of a text type, and it outranks anything the document says about itself — a page declaring UTF-8 in a meta tag still renders as mojibake if the header says otherwise. Binary types have no charset, and adding one is meaningless; text/plain without one leaves the decoding to a guess.

Related tools