Useragent API
Device, OS, browser, and bot, from one header.
Turn a User-Agent into device, OS, browser, and bot answers, down to brand and model. Prefer the User-Agent header. Use ?ua= to test a specific string.
Chromium browsers also send Sec-CH-UA-* Client Hints. Forward them when you have them. The classic string alone still works. Paid plans automatically include brand, model, versions, and bot detail.
ParseCopy link
Bare GET /useragent parses the User-Agent that made the request. No key needed. With ?ua= it is a keyed lookup.
GET /useragentAPI Explorer ↗Device, OS, browser, bot. Prefer User-Agent header, or pass ?ua=. Accepts Sec-CH-UA-* hints
Parameters
- User-Agentstring · header · optional
User-Agent string to parse (defaults to the request UA)
- uastring · query · optional
User-Agent string to parse instead of the request UA (requires a key)
import { parseAPI } from '@parseapi/sdk';
const parse = parseAPI("YOUR_API_KEY");
const result = await parse.useragent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36");
console.log(result);{
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"device": {
"type": "desktop",
"brand": "Apple",
"model": null,
"cpu": null,
"touchscreen": false
},
"os": {
"name": "macOS",
"version": "10.15.7",
"platform": null
},
"browser": {
"name": "Chrome",
"version": "120.0.0.0",
"type": "browser"
},
"bot": false,
"mobile": false,
"engine": {
"name": "Blink",
"version": null
},
"headless": false
}Response fields
- useragentLink to useragentstring
- Original User-Agent string
- device.typeLink to device.typestring or null
- desktop | mobile | tablet | tv | console | wearable | car | camera | speaker | bot | other
- os.nameLink to os.namestring or null
- Operating system (e.g. macOS, Windows, Android, iOS)
- browser.nameLink to browser.namestring or null
- Browser, app, or library name (e.g. Chrome, curl), bot name for bots
- botLink to botboolean
- Bot, crawler, or headless browser
- mobileLink to mobileboolean
- Phone or tablet
Included dataCopy link
Paid. Device brand and model (SM-G998B becomes Samsung Galaxy S21 Ultra 5G), versions, and engine. Bots come back named and categorized. AI crawlers like GPTBot carry ai: true.
Paid plan fields
- deviceLink to deviceobject
- Type, brand, model (e.g. Samsung Galaxy S21 Ultra 5G), CPU, touchscreen
- osLink to osobject
- Name, version, platform (ARM/x64 from hints)
- browserLink to browserobject
- Name, version, client type. Brands when Sec-CH-UA present
- engineLink to engineobject
- Rendering engine and version
- bot_detailsLink to bot_detailsobject
- For bots: name, category (e.g. AI Data Scraper), url, vendor
- aiLink to aiboolean
- For bots: AI crawler or scraper (GPTBot, ClaudeBot, …)
- headlessLink to headlessboolean
- Automation framework detected (HeadlessChrome, Playwright, …)
Client HintsCopy link
Client Hints are structured headers (Sec-CH-UA-*) from Chromium browsers. Send the classic User-Agent plus any hints you received. We use both.
They matter more every year: modern Chrome freezes the UA string (every Android phone says Android 10; K), so hints are the only source for the real model and OS version. Sec-CH-UA-Model restores the device, Sec-CH-UA-Platform-Version distinguishes Windows 11 from 10, and Sec-CH-UA-Arch reveals the CPU.
Missing hints are fine. We fall back to the User-Agent string. Forward headers exactly as your client sent them.
curl "https://api.parseapi.com/useragent" \
-H "X-API-Key: YOUR_API_KEY" \
-H "X-API-Version: 2.1.0" \
-H "User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36" \
-H 'Sec-CH-UA: "Chromium";v="120", "Google Chrome";v="120", "Not_A Brand";v="8"' \
-H 'Sec-CH-UA-Platform: "macOS"' \
-H "Sec-CH-UA-Mobile: ?0" \
-H 'Sec-CH-UA-Arch: "arm"' \
-H 'Sec-CH-UA-Bitness: "64"' \
-H 'Sec-CH-UA-Full-Version-List: "Chromium";v="120.0.6099.109", "Google Chrome";v="120.0.6099.109", "Not_A Brand";v="10.0.0.4"'{
"useragent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36",
"device": {
"type": "desktop",
"brand": "Apple",
"model": null,
"cpu": "arm64",
"touchscreen": false
},
"os": {
"name": "macOS",
"version": "10.15.7",
"platform": "ARM"
},
"browser": {
"name": "Chrome",
"version": "120.0.6099.109",
"type": "browser",
"brands": [
{
"brand": "Chromium",
"version": "120.0.6099.109"
},
{
"brand": "Google Chrome",
"version": "120.0.6099.109"
}
]
},
"bot": false,
"mobile": false,
"engine": {
"name": "Blink",
"version": null
},
"headless": false
}