Identify a file's format, MIME type, recommended extension, category and size from its contents. It all runs inside your browser, on your own device.
Runs in your browser — your input is processed on this device and never uploaded.
A MIME type is the short label that says what kind of data a file holds: image/png, application/pdf, text/csv. Browsers, mail clients, and APIs read it to decide whether to display something, download it, or refuse it. A filename extension is a guess at the same answer, and the two disagree more often than you would like.
This tool works the answer out from the bytes instead. Upload a file above and it reports:
There is nothing to configure. The file is the only input.
An extension is just the end of a filename. Rename report.exe to report.jpg and not one byte of the file changes, so anything trusting the name is now wrong about it. The Content-Type a browser sends with an upload has the same weakness, and it arrives from the client, which can set it to anything at all.
Reading the bytes sidesteps both. Formats announce themselves in their opening bytes, so the file describes itself and a rename cannot lie on its behalf.
That matters when an upload pipeline rejects files it should accept, when a download opens in the wrong application, when you inherit a directory of files with missing or wrong extensions, or when you want to know what something is before opening it.
Going by the extension is free and correct most of the time. It is fine for sorting your own files and a poor basis for anything that accepts uploads from other people.
The browser's Content-Type header is just as cheap and fails the same way, with the added problem that it is supplied by whoever is doing the uploading.
Inspecting the leading bytes is what happens here. It costs a read of the file and gets you an answer the filename cannot fake, which is why the technique long predates any of this being available in a browser tab.
Then there is format-specific validation, which is a different job and often the one you want next. Recognizing a file as CSV says the bytes look like CSV, not that the columns line up. Run it through CSV Validator for that.
Detection reads at most the first 64 KiB. Formats identify themselves early or not at all, so there is no reason to walk a multi-gigabyte video to the end.
Container formats are the awkward case. DOCX, XLSX, EPUB, and APK all share the same outer wrapper, so their opening bytes look alike and telling them apart takes a further look inside. This tool distinguishes them.
Unknown data is not an error. Anything matching nothing comes back as a generic binary result with Recognized set to false, which is a useful answer in itself.
One caveat: this identifies a file, it does not vet one. It is not a malware scan, and a recognized format is not therefore a safe or a valid file.
file
Upload a file to identify from its contents.
Drag a file here, or click to upload.
Max size 60 MB · Required
No file selected.