MIME Type Lookup

Find the right Content-Type for any file extension, and the extension for any MIME type.

Search

Showing 94 of 94 types

ExtensionMIME typeDescription
.html .htmtext/htmlHTMLText based
.csstext/cssCSSText based
.js .mjstext/javascriptAlso seen as: application/javascript, application/x-javascriptJavaScriptText based
.jsonapplication/jsonJSONText based
.jsonldapplication/ld+jsonJSON-LDText based
.xmlapplication/xmlAlso seen as: text/xmlXMLText based
.txt .texttext/plainPlain textText based
.csvtext/csvCSVText based
.tsvtext/tab-separated-valuesTSVText based
.md .markdowntext/markdownMarkdownText based
.icstext/calendariCalendarText based
.vcftext/vcardvCardText based
.yaml .ymlapplication/yamlAlso seen as: text/yaml, application/x-yamlYAMLText based
.tomlapplication/tomlTOMLText based
.tstext/plainAlso seen as: application/typescript, video/mp2tTypeScript sourceText based
.jsx .tsxtext/plainReact sourceText based
.phpapplication/x-httpd-phpPHPText based
.pytext/x-pythonPythonText based
.shapplication/x-shShell scriptText based
.sqlapplication/sqlSQLText based
.rtfapplication/rtfRich Text FormatText based
.mapapplication/jsonSource mapText based
.webmanifestapplication/manifest+jsonWeb app manifestText based
.rssapplication/rss+xmlRSS feedText based
.atomapplication/atom+xmlAtom feedText based
.wasmapplication/wasmWebAssemblyBinary
.jpg .jpeg .jpeimage/jpegJPEG imageBinary
.pngimage/pngPNG imageBinary
.gifimage/gifGIF imageBinary
.webpimage/webpWebP imageBinary
.avifimage/avifAVIF imageBinary
.svgimage/svg+xmlSVG imageText based
.icoimage/x-iconAlso seen as: image/vnd.microsoft.iconIconBinary
.bmpimage/bmpBitmap imageBinary
.tif .tiffimage/tiffTIFF imageBinary
.heicimage/heicHEIC imageBinary
.heifimage/heifHEIF imageBinary
.jxlimage/jxlJPEG XL imageBinary
.apngimage/apngAnimated PNGBinary
.psdimage/vnd.adobe.photoshopPhotoshop documentBinary
.mp3audio/mpegMP3 audioBinary
.wavaudio/wavAlso seen as: audio/x-wav, audio/waveWAV audioBinary
.ogg .ogaaudio/oggOgg audioBinary
.opusaudio/opusOpus audioBinary
.m4aaudio/mp4Also seen as: audio/x-m4aMPEG-4 audioBinary
.aacaudio/aacAAC audioBinary
.flacaudio/flacFLAC audioBinary
.webaaudio/webmWebM audioBinary
.mid .midiaudio/midiMIDIBinary
.aif .aiffaudio/aiffAIFF audioBinary
.mp4video/mp4MPEG-4 videoBinary
.webmvideo/webmWebM videoBinary
.movvideo/quicktimeQuickTime videoBinary
.avivideo/x-msvideoAVI videoBinary
.mkvvideo/x-matroskaMatroska videoBinary
.ogvvideo/oggOgg videoBinary
.mpeg .mpgvideo/mpegMPEG videoBinary
.3gpvideo/3gpp3GPP videoBinary
.tsvideo/mp2tMPEG transport streamBinary
.m3u8application/vnd.apple.mpegurlHLS playlistText based
.wofffont/woffWOFF fontBinary
.woff2font/woff2WOFF2 fontBinary
.ttffont/ttfTrueType fontBinary
.otffont/otfOpenType fontBinary
.eotapplication/vnd.ms-fontobjectEmbedded OpenTypeBinary
.pdfapplication/pdfPDF documentBinary
.docapplication/mswordWord document (legacy)Binary
.docxapplication/vnd.openxmlformats-officedocument.wordprocessingml.documentWord documentBinary
.xlsapplication/vnd.ms-excelExcel workbook (legacy)Binary
.xlsxapplication/vnd.openxmlformats-officedocument.spreadsheetml.sheetExcel workbookBinary
.pptapplication/vnd.ms-powerpointPowerPoint (legacy)Binary
.pptxapplication/vnd.openxmlformats-officedocument.presentationml.presentationPowerPoint presentationBinary
.odtapplication/vnd.oasis.opendocument.textOpenDocument textBinary
.odsapplication/vnd.oasis.opendocument.spreadsheetOpenDocument spreadsheetBinary
.epubapplication/epub+zipEPUB bookBinary
.zipapplication/zipZIP archiveBinary
.gzapplication/gzipGzip archiveBinary
.tarapplication/x-tarTar archiveBinary
.rarapplication/vnd.rarRAR archiveBinary
.7zapplication/x-7z-compressed7-Zip archiveBinary
.bz2application/x-bzip2Bzip2 archiveBinary
.xzapplication/x-xzXZ archiveBinary
.zstapplication/zstdZstandard archiveBinary
.binapplication/octet-streamArbitrary binary dataBinary
.exeapplication/vnd.microsoft.portable-executableWindows executableBinary
.dmgapplication/x-apple-diskimagemacOS disk imageBinary
.apkapplication/vnd.android.package-archiveAndroid packageBinary
.ipaapplication/octet-streamiOS app archiveBinary
.debapplication/vnd.debian.binary-packageDebian packageBinary
.rpmapplication/x-rpmRPM packageBinary
.isoapplication/x-iso9660-imageDisc imageBinary
.torrentapplication/x-bittorrentBitTorrent fileBinary
.pem .crt .cerapplication/x-x509-ca-certX.509 certificateText based
.p12 .pfxapplication/x-pkcs12PKCS#12 keystoreBinary

The copy button gives you the full header value. Text based types get charset=utf-8 added, because without it the browser guesses and sometimes guesses wrong.

How to Find the Right MIME Type

1

Search either way round

Type an extension to get the MIME type, or a MIME type to get the extensions. Format names work too, so searching for webp or for excel both land somewhere useful.

2

Check the alternatives

Several formats have a registered type and one or two that are still common in the wild. Both are listed, because the one in your legacy config is often the unofficial one.

3

Copy the header value

The copy button gives you the complete Content-Type, with charset already added for the text based types that need it.

Features

Search by extension, MIME type or format name
Filtered by text, image, audio, video, font, archive and application
Unofficial types that are still in the wild listed alongside the registered one
Ready to paste Content-Type with charset where it belongs
Binary or text based marked for every entry
Covers the formats a web project actually meets
No sign-up, nothing to install
Free and runs in your browser

Frequently Asked Questions

It tells the receiving end what a stream of bytes actually is. A browser does not look at the file extension of something it downloaded over HTTP: it reads the Content-Type header. Get it wrong and a stylesheet is ignored, a script refuses to run, or a PDF opens as gibberish.

On text based types: HTML, CSS, JavaScript, plain text, CSV, JSON and SVG. Without it, the browser has to guess the encoding, and a wrong guess is exactly how Turkish characters turn into mojibake. Binary types like images do not take a charset.

text/javascript. It was the other way round for years, which is why both are everywhere, but the current specification makes text/javascript the standard one and marks application/javascript obsolete. Both work in every browser.

Bytes we cannot describe any further. It is the correct answer for genuinely unknown data and the wrong answer for anything you do know, because browsers respond to it by downloading rather than displaying. A PDF served as octet-stream downloads instead of opening in the viewer.

Almost always because it is served as text/plain or as octet-stream. SVG must be image/svg+xml or the browser treats it as text. This is the single most common MIME misconfiguration on static hosts.

Because the extension is genuinely ambiguous: it is TypeScript source to a developer and an MPEG transport stream to a video player. Servers usually have to be told which one you mean, and serving TypeScript source to a browser is rarely what you want anyway.

No. The type in a multipart upload is supplied by the client and can say anything. Check the actual file signature on the server, and never decide what to do with a file based on a header the uploader controls.

In your web server or CDN. Nginx reads a mime.types file, Apache uses AddType, and most static hosts infer it from the extension. When something behaves oddly, the network panel shows what was actually sent, which is usually different from what you assumed.

Need a Custom Tool or Application?

We build production-grade web applications, SaaS platforms, and developer tools. Let's talk about your project.

or book a free call