File Type Detector — Identify Files by Magic Bytes

Identify a file by its magic bytes — find the real format even when the extension is wrong or missing, and get warned on mismatches. Free, no upload.

Drop any file here or click to browse

🔒 The file is inspected in your browser — only its first few kilobytes are read, and nothing is uploaded. Unlike an extension lookup, this reads the real bytes.

What are magic bytes?

Most binary file formats begin with a short, fixed signature — a “magic number” — that identifies the format no matter what the file is named. A PNG always starts with the bytes 89 50 4E 47, a PDF with %PDF, and a ZIP with PK. This tool reads the first few kilobytes of your file, matches that signature, and reports the real type: its canonical extension and MIME type.

Why the extension isn’t enough

A file’s extension is only part of its name — anyone can rename photo.png to photo.jpg, and downloads sometimes arrive mislabeled. Because this tool inspects the actual bytes instead of trusting the name, it catches those mismatches and warns you when the name disagrees with the content. Plain-text formats such as HTML, CSV, JSON and source code carry no signature, so they are reported as unidentified rather than guessed.

Frequently asked questions

How is this different from a MIME type or extension lookup?

An extension lookup maps a file’s extension to a type using a table — it trusts the name. This tool ignores the name and reads the file’s actual magic bytes, so it reports the true format even when the extension is wrong or missing.

Why does my text or code file come back as unidentified?

Magic-byte detection only works on formats that begin with a fixed binary signature. Plain-text formats like HTML, CSV, JSON, Markdown and source code have no such signature, so there is nothing to match and the tool reports no result instead of guessing.

Is my file uploaded anywhere?

No. The file is read and inspected entirely in your browser, and only its first few kilobytes are even accessed — nothing is sent to a server.