How it works
The short version: your browser reads the file, a small machine-learning model looks at the bytes, and you get an answer. No server is involved in the identification. This page explains each step and how to check the claim rather than take it on trust.
1. The file stays in your browser
When you drop a file, the page reads it with the browser's File API into memory. There is no upload step: the site has no server-side code that receives files. The pages, the model and the detector script are static assets served from a CDN, and once they have loaded, identification works with the network disconnected.
Verify it: open your browser's developer tools (F12), switch to the Network tab, then drop a file. You will see the model and script downloads when the page first loads, and nothing at all when you analyse a file. Turning on Offline in the same panel and dropping another file produces the same result.
2. Magika reads the bytes
Identification uses Magika, an open-source model published by Google. Rather than matching a list of known signatures, it is a deep-learning classifier trained on tens of millions of files. It looks at a few hundred bytes from the beginning, middle and end of the file and predicts one of 240-plus content types with a confidence score.
That approach handles the cases a signature table cannot: text formats with no magic number (is this JSON, YAML or a shell script?), source code in dozens of languages, and files whose signature has been stripped or damaged. For formats that do have a signature, the model's answer and the signature agree, and the result card shows the first bytes so you can see the signature yourself.
The model runs as WebAssembly through ONNX Runtime Web, which is why the first load takes a moment (the model is a few megabytes) and every identification after that takes well under a second.
3. The result, and what it means
- Detected type is the model's best answer. The button beside it opens the guide for that format when we have one; for 238 formats we do.
- Confidence is the model's own score. Above 90 percent is typical for real files; a low score usually means a truncated file, an unusual variant, or something genuinely ambiguous such as a short text file.
- MIME type comes from the detected format, cross-checked against a second signature-based library for common binary formats.
- Hashes (MD5, SHA-1, SHA-256) are computed in the browser from the same bytes, so you can compare a download against a published checksum or look it up on VirusTotal without sending the file anywhere.
- Hex preview shows the opening bytes, where the file signature lives. The signature reference covers 114 formats.
What it will not do
- It does not scan for malware. A correct type is the first thing a scanner needs, which is why "is this really a PDF?" matters, but the answer "yes" is not a safety verdict.
- It does not open or render the file beyond a preview for a few safe formats.
- It does not know every format. Magika recognises around 350 content types; a file outside that set is reported as the nearest match or as unknown, with the confidence to show it.
- It does not remember anything. Close the tab and the result is gone; there is no account, history or analytics on what you analysed.
Who built this
FilesType is an independent site built on open components: Magika for detection, the file-type library for signature cross-checks, Astro for the pages, and Cloudflare for hosting. The format guides are written and reviewed by hand and corrected when readers point out mistakes. If you find one, the fastest route is the project's issue tracker on GitHub.