User-Agent Parser
Parse a user-agent string into browser, OS, and device info
Chrome Headless
Browser
151.0.0.0
Version
Linux
OS
Bot / script
Device type
—
Device
Blink
Engine
amd64
CPU
Yes
Bot / script
Reading results never uses a trial use. Copying, saving or printing uses 1 per visit.
About User-Agent Parser
Reads a browser's "user-agent" string — the piece of text every browser automatically sends with each request, identifying itself — and breaks it down into plain, readable facts: which browser and version, which operating system, and whether it's a phone, tablet, or desktop. Every web server, analytics tool, and error-tracking system sees this string constantly; this tool turns the cryptic raw text into something a person can actually read at a glance. Why this matters in practice: when a bug report says "broken on Safari" but doesn't say which version, or a server log shows a confusing string of characters and you need to know what device actually made that request, or you're checking whether your site's analytics correctly identified visitors as mobile vs. desktop — pasting the raw string here decodes it in one step instead of manually reading through cryptic browser-engine naming conventions.
A textarea below is pre-filled with your own browser's real user-agent string as a working example — clear it and paste any other user-agent string (copied from a server log, a bug report, or a browser testing tool) to decode that one instead. The parsed browser, version, OS, and device type update automatically as you type or paste. "Use My Browser" also asks your own browser for its Client Hints when it has them (Chrome, Edge, Opera), which can show Windows 11, the real device model and the full browser version that the user-agent string hides; those values are labelled "from Client Hints". You can also paste Sec-CH-UA request headers. Everything is read in your browser; nothing is sent anywhere.
User-agent strings are self-reported by the browser and can be changed or spoofed by the user (browser dev tools, extensions, and some privacy-focused browsers all let someone override what gets sent) — treat parsed results as generally reliable for everyday debugging and analytics, but never as a security control something important depends on.
Watch: User-Agent Parser in Action
- Can I trust a user-agent string as a security check?
- Not fully — user-agent strings are self-reported by the browser and can be changed or spoofed. Treat parsed results as generally reliable for analytics, but not as a security control to rely on.
- Why is the box already filled in?
- On load, the tool reads the user-agent that your own browser reports and puts it in the box, so you immediately see a working example. Clear it to paste another, or press the button to bring yours back.
- Why can it not tell Windows 10 from Windows 11?
- Both send the same user-agent text, so the string holds no difference to detect. The tool prints a note saying so whenever the OS card reads Windows.
- How does it decide that Bot / script is Yes?
- It searches the string for words such as bot, crawler, spider and slurp, and for facebookexternalhit, curl/, wget/, python-requests and headlesschrome. A match gives Yes. A crawler that imitates a normal browser exactly will show No.
- Why does Device type say Desktop for an unknown device?
- Desktop is the fallback label when the parser finds no mobile, tablet or other device category in the string. It means no device type was detected, not that a desktop was positively identified.
- Can it read a Client Hints header?
- No. It expects a classic user-agent string, the text sent in the User-Agent header. Values from headers such as Sec-CH-UA are in a different format and will not parse meaningfully here.
How to use User-Agent Parser
When the page opens, the box already holds your own browser's user-agent string. Clear it and paste any other string, for example one copied from a server log, an analytics export or a bug report. The results refresh on every change, so there is no Parse button. Press Use My Browser's User-Agent to put your own string back.
Results appear as eight cards: Browser, Version, OS (name plus version), Device type, Device, Engine, CPU and Bot / script. Device type reads Mobile, Tablet or another category the parser recognizes, and falls back to Desktop when none is found. Device and CPU show a dash when the string does not name them. Bot / script says Yes when the text matches a short list of crawler and command line client patterns.
When to use it
Use it when a support ticket says the page broke on a phone but gives only a pasted string, when you are sorting suspicious access log entries into crawlers and real browsers, or when you want to confirm what your own device reports before writing a rule that targets a browser. It is also useful for checking that a test device or emulator identifies itself the way you intended.
When not to use it
Do not use user-agent parsing to decide which features your site offers; test for the feature itself in code. Do not use it for security or fraud decisions either, because the string is supplied by the client and is easy to change. For firm bot identification, rely on the crawler operator's published verification method, such as a reverse DNS lookup of the requesting address.
Tips for best results
Copy only the quoted user-agent field from a log line, not the whole line; the address and timestamp around it are noise. If a result says Desktop for something clearly not a desktop, the string probably carries no device token, and the label is only the fallback. Chromium browsers send a reduced string with a generic version and device, so the real phone model may not be recoverable.
Limitations
The parser sees only the text it is given and relies on a pattern database, so brand-new browsers or devices may come back as Unknown. Windows 10 and Windows 11 send the same string, so the tool states it cannot separate them. Newer client hint headers are not read. The bot flag is a match against fixed words, so a crawler with a plain browser-like string will show No.
Privacy
The text is parsed by the ua-parser-js library inside your browser, and the string you first see is read from the navigator object on your own device. Pasted log entries are not uploaded. Once you interact with the results, the site logs the tool name and a device identifier for usage counting; that record does not contain the string.
More from Security & Developer: