API & Web

User Agent Parser

Parses user agent strings into browser, version and platform, and names the bots.

Loading the tool…

Processing happens locally in your browser. What you paste or load is processed by this page and is not uploaded to a server. Nothing is stored unless you use a control that says it stores something, and you can clear anything this site has kept from the privacy page.

How to use this tool

  1. Paste the user agent strings, one per line — a column straight out of an access log is fine.
  2. Select Parse.
  3. Use the Kind column to separate real browsers from crawlers and command-line tools.
  4. Treat the result as self-reported. It is good enough for analytics and unsuitable for anything that gates access.

What user agent parser does

Every mainstream user agent string is a pile of historical lies: they all claim to be Mozilla, Chrome claims to be Safari, and Edge claims to be both. The only way to read them correctly is to test the most specific claim first, which is what this does — so an Edge string comes back as Edge rather than as Chrome, and Chrome on iOS comes back as Chrome on iOS rather than as Safari.

Crawlers and command-line tools are identified separately, which is usually the actual question when a column of user agents comes out of an access log. The last thing worth saying is the important one: a user agent is self-reported and takes one flag to change, so it is fine for analytics and completely unsuitable as an access control.

Frequently asked questions

Historical accident. Early servers checked for "Mozilla" before sending modern HTML, so every browser started claiming it, then claiming to be each other. The string is now a compatibility artefact rather than a description, which is why parsing it means testing the most specific claim first.

No. It is sent by the client, it can be set to anything with a single flag, and any bot that wants to look like Chrome already does. Use it for analytics and for shaping a page. For anything that grants access, use an actual credential.

It matches the strings that well-behaved crawlers send, which covers the search engines, the SEO tools, the AI crawlers and the common command-line clients. A crawler that wants to hide will not be caught by any string match — that needs reverse DNS or behavioural analysis, neither of which a browser can do.