Font Fingerprint Test

See which font families this machine exposes, and whether that set belongs to the operating system your browser claims to be running. Free, no signup, results stay on this page.

  • Runs entirely in your browser
  • Results are not uploaded
  • No signup

See which fonts this machine hands over

The test measures a probe string in each family against a generic fallback — the same trick a tracking script uses — then checks whether the set that answered belongs to the operating system your browser claims to be running.

Runs entirely in this browser. Nothing is uploaded, nothing is stored, no signup.

Now give every account its own device.

A clean browser is still one browser. Sendwin runs each profile in isolation with its own fingerprint, cookies and proxy, so the accounts you work on never look like they came from the same machine.

  • Isolated profiles, each with its own fingerprint and cookies
  • A proxy per profile, with the timezone bound to the proxy country
  • Windows, macOS and Linux — plus cloud sessions when you need them

The free plan includes 10 minutes of cloud browsing a day.

How a page reads a list it is never given

A page cannot ask your browser for a list of installed fonts, so it measures instead. It renders a probe string in a font it wants to test, with a generic fallback behind it, and compares the width against the fallback rendered alone. If the widths differ, the font resolved and it is installed. Repeat a few hundred times and you have a list — no permission prompt, no plugin, and fast enough to finish before the page has painted.

That list is one of the highest-entropy signals on the web, because it accumulates history: the operating system's own families, whatever an office suite or a design tool installed, language packs, and fonts that arrived with software you have forgotten about. This test probes for families that ship with Windows, macOS and Linux, reports which answered, and then does the part that matters more than the count — it checks whether the set you expose belongs to the operating system your browser says it is running on.

Why the font set is hard to fake and easy to check

A user agent string is text and can say anything. A font list is a measurement of what is actually installed, taken one family at a time, and the measurement is the same one the browser performs when laying out any page. That asymmetry is what makes this pairing worth checking: claiming Windows is free, but having Segoe UI, Calibri and Consolas resolve while Helvetica Neue, Menlo and Monaco do not is a property of the machine. When the fonts say macOS and the browser says Windows, one of the two is not describing the system underneath, and no database of other visitors is needed to notice.

Blocking font enumeration is visible from the outside

Some privacy tools restrict font access so that only a handful of standard families ever resolve. It does reduce the entropy in the list, and it is obvious to anything running the same probe: a real desktop answers to dozens of families, so a machine that answers to almost none has not blended in — it has produced a rarer answer than the one it was hiding. The same logic applies to a set that is unusually clean. An operating system with only its stock families and nothing else installed is a plausible fresh machine, and also what a freshly provisioned container looks like.

Which fonts vote, and why some deliberately do not

Not every family that resolves says something about the platform. Arial, Verdana and Times New Roman are everywhere; the metric-compatible clones on Linux — Liberation Sans, DejaVu — answer to names they were designed to substitute for, and an office install can put Microsoft families on macOS. So this test only counts families that genuinely ship with one operating system towards its OS inference, and treats the cross-platform set as visible-but-neutral. It also declines to guess when no platform clearly wins: a result that says the signature is unclear is more useful than a confident answer built on Arial.

How the list is measured

  1. 1

    Measure the baselines

    Two probe strings are rendered in monospace, sans-serif and serif to establish what the fallback fonts measure, using canvas text metrics so no layout or reflow is involved.

  2. 2

    Probe each family

    Every family in the table is measured with each generic behind it. A width that differs from the baseline means the font resolved; the string never appears on screen.

  3. 3

    Infer the platform and compare

    Families that ship with exactly one operating system are tallied, the strongest signature wins if it wins clearly, and that inference is checked against the platform your browser claims.

Font fingerprinting FAQ

How a site reads your fonts without asking, why the list is identifying, and what it means when it disagrees with your user agent.

By measuring rather than asking. The page renders a short string in the font it wants to test with a generic fallback behind it, then compares the width against the fallback alone. Different width means the font resolved and is installed. Nothing is displayed, no permission is requested, and a few hundred families can be checked in a few milliseconds.

Because it accumulates. On top of the families your operating system ships with, the list records what an office suite, a design tool, a language pack or a game installer added over the years, and that combination is rarely the same on two machines. It is also stable — fonts are not cleared with cookies and do not change between private windows — which is what makes it valuable to a tracker rather than merely interesting.

Partly. Some browsers and privacy extensions restrict resolution to a small standard set, which does cut the entropy. The trade-off is that the restriction is measurable with the same probe, and a machine that answers to almost nothing is unusual in a way an ordinary font list is not. It also breaks legitimate typography on sites that rely on locally installed families.

Both. The families available come from the system, but browsers differ in what they let a page resolve and how they handle fallbacks, so the same machine can produce slightly different lists in different browsers. That is expected. What should not differ is which operating system the set points to.

It means one of the two is not describing the machine underneath, and the font list is the harder one to fake. This is the classic outcome of changing a user agent string or running a profile configured for a platform other than the host: the string says one operating system, the installed families say another, and the pair contradict each other on the first page load. A believable identity needs the fonts, the string, the Client Hints and the GPU backend to agree.

Because the families that resolved do not point clearly at one platform. That happens on a machine with few fonts installed, where font access is restricted, or where the detected set is dominated by families that exist everywhere. It is an honest “cannot tell” rather than a failure — this check will not manufacture a confident platform guess out of Arial and Verdana.

We cannot say. Answering that would require a database of other visitors' font lists, which we do not keep and will not fabricate a number from. What this page gives you is the set this browser exposes, a stable digest of it so you can tell one run from another, and whether it agrees with the platform your browser claims.

Still have questions? Talk to us →

How to read your font list

This test probes a fixed table of families that ship with Windows, macOS and Linux — it is a sample, not your complete font list, and a family missing from the table is not a family missing from your machine. The OS inference is drawn only from families that genuinely belong to one platform, and it says so when nothing wins clearly. As everywhere else on this site, there is no rarity figure here: we hold no database of other visitors' fonts.

Fonts that match the operating system you claim.

Sendwin gives each profile a font set that belongs to its platform, alongside a matching user agent, GPU and timezone — so the pieces agree instead of arguing. Free for 30 days on Windows, macOS and Linux.

30-day free trial · $0 today · cancel anytime — your profiles stay on your machine

Try in the cloud →Start free trial