MIME Type Lookup

Find the right Content-Type for any file extension, charset included where it belongs.

A Browser Believes The Header, Not The Name

The single most common cause of "my stylesheet is being ignored" is a server sending it as text/plain. The browser does exactly what it was told — treats the file as plain text, not as CSS — and logs nothing that points at the cause. The same mistake serves JavaScript as a download, SVG as a wall of angle brackets, and a font as nothing at all.

This is a searchable list of the types that actually come up: configuring a server, writing an upload allowlist, setting a Content-Type by hand. It marks which ones need a charset, because adding one to a binary type is its own small mistake.

Key features

  • Search by anything — extension, media type or description.
  • Grouped — web, image, audio, video, document, data, archive and font.
  • Charset included where it belongs — on text types only, ready to paste.
  • Copy in one click — the complete header value for each row.
  • The Office types in full — including the long vnd.openxmlformats ones nobody remembers.
100% client-side — no data leaves your machine

This tool runs entirely inside your browser using native Web APIs. Your files and text are never uploaded to a server, never logged and never shared with third parties.

How to use: MIME Type Lookup

  1. Search or filter
    Type part of an extension, or pick a group.
  2. Find your row
    The header value is shown exactly as it should be sent.
  3. Copy it
    One click puts the complete value on your clipboard.
  4. Set it on the server
    In nginx, Apache, your CDN, or on the response your application returns.

Technical specifications

Processing locationEntirely in your browser — no server round trip
Data uploadedNone. Files and text never leave your device
PriceFree — no account, no trial, no usage cap
CategoryDeveloper
Works offlineYes, once the page has loaded
Browser supportChrome 90+, Edge 90+, Firefox 90+, Safari 15+
Interface languagesEnglish, 中文, हिन्दी, Español, العربية

Frequently asked questions

Should JavaScript be text/javascript or application/javascript?

text/javascript. It was historically obsolete and then un-obsoleted: the current specification names it as the standard and marks application/javascript as the legacy form. Both work in every browser, so this is tidiness rather than a bug, but text/javascript is the right answer today.

When do I add "; charset=utf-8"?

On text types — HTML, CSS, JavaScript, plain text, CSV, Markdown. Never on binary types; a charset on an image or a PDF is meaningless and some tooling objects. JSON is the interesting exception: the JSON specification fixes the encoding as UTF-8, so application/json takes no charset parameter.

Why does my .docx download as a zip?

Because it is one — every modern Office format is a ZIP archive of XML files, and its first four bytes say so. If the server sniffs the content instead of trusting the extension, it concludes ZIP. Setting the explicit vnd.openxmlformats type fixes it, and the full string is here to copy because nobody types it from memory.

Is application/octet-stream ever the right answer?

Yes, for genuinely unknown binary data, and it is also the conventional way to force a download rather than a display. It is the wrong answer when you do know the type — sending a PDF that way stops the browser previewing it, which users read as the link being broken.

Can I trust the Content-Type on an upload?

No. It is supplied by the client and can say anything. Validate uploads by reading the file's first bytes and checking the signature against what you accept — a hex viewer will show you what those bytes are. The declared type is a hint, never a check.

Related tools

Back to all tools