webdev_user_agent
Parse any User-Agent string to identify browser, engine, OS, device, CPU, and features. Detect bots, crawlers, and headless browsers with detailed flags.
Instructions
User-Agent String Parser. Parse a User-Agent string you supply into structured browser, engine, OS, device, CPU, and feature data, and flag whether it is a bot/crawler/headless agent. It parses the userAgent value in the request body — it does not read the caller's own request header; pair it with network_request_headers to inspect live headers instead. Runs locally on the input: read-only, non-destructive, contacts no external service, and is rate-limited. Returns parsed browser/engine/os/device/cpu/features plus isBot, botType, botPurpose and suspicious/commonCrawler/headlessBrowser flags.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| userAgent | Yes | The User-Agent string to parse, e.g. a browser or bot UA header value. Required; an empty/blank value returns HTTP 400. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| success | No | Whether parsing succeeded. | |
| parsed | No | Structured breakdown of the User-Agent string. | |
| isBot | No | True when the UA matches a known bot/crawler/HTTP-client keyword. | |
| botType | No | Bot category (Search Engine, Social Media, Messaging, Command Line Tool, Programming Language, Unknown Bot) when isBot, else null. | |
| botPurpose | No | Inferred bot purpose (Web Indexing, Content Preview, Site Monitoring, Data Fetching, Content Access) when isBot, else null. | |
| suspicious | No | True for scripted/scraper UAs (python/curl/wget/bot/crawl/scrape) excluding googlebot/bingbot. | |
| commonCrawler | No | True for a known search crawler (googlebot, bingbot, slurp, duckduckbot, baiduspider, yandexbot). | |
| headlessBrowser | No | True when the UA indicates headless/PhantomJS/Selenium automation. |