User Agent Parser
Parse user agent strings to extract browser name, version, operating system, device type, and bot detection.
Vue d'ensemble
Cas d'utilisation
- Analytics dashboards
- Serving device-specific content
- Bot filtering and traffic analysis
- Browser compatibility reporting
Fonctionnalités
Browser name and version detection
Operating system and version detection
Device classification (desktop, mobile, tablet, bot)
Bot/crawler detection
Points de terminaison de l'API
Parse User Agent
Parses a user agent string and returns structured information about the browser, OS, device, and bot status.
GET
https://requiems.xyz/v1/technology/useragent
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| ua | string |
Requis | The user agent string to parse. |
Essayez-le
Démo en directRequête
The user agent string to parse.
Sending request...
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| browser | string |
Detected browser name (e.g. Chrome, Firefox, Safari, Edge, Opera, Internet Explorer, Other) |
| browser_version | string |
Detected browser version (major.minor) |
| os | string |
Detected operating system (e.g. Windows, macOS, Linux, Android, iOS, ChromeOS, Other) |
| os_version | string |
Detected OS version (format varies by platform) |
| device | string |
Device type — one of desktop, mobile, tablet, bot, or unknown |
| is_bot | boolean |
True when the user agent matches a known bot or crawler pattern |
Exemples de code
curl "https://requiems.xyz/v1/technology/useragent?ua=Mozilla%2F5.0+%28Windows+NT+10.0%29+Chrome%2F120.0.0.0" \
-H "requiems-api-key: YOUR_API_KEY"
import requests
from urllib.parse import quote
ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0"
url = f"https://requiems.xyz/v1/technology/useragent?ua={quote(ua)}"
headers = {"requiems-api-key": "YOUR_API_KEY"}
response = requests.get(url, headers=headers)
print(response.json())
const ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0";
const url = `https://requiems.xyz/v1/technology/useragent?ua=${encodeURIComponent(ua)}`;
const response = await fetch(url, {
headers: { 'requiems-api-key': 'YOUR_API_KEY' }
});
const data = await response.json();
console.log(data.data.browser);
require 'net/http'
require 'json'
ua = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) Chrome/120.0.0.0"
uri = URI("https://requiems.xyz/v1/technology/useragent?ua=#{URI.encode_www_form_component(ua)}")
request = Net::HTTP::Get.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
data = JSON.parse(response.body)
puts data['data']['browser']
Réponses d'erreur
bad_request
The ua query parameter is missing.
Batch Parse User Agents
Parses up to 50 user agents in a single request.
POST
https://requiems.xyz/v1/technology/useragent/batch
Paramètres
| Nom | Type | Requis | Description |
|---|---|---|---|
| user_agents | array<string> |
Requis | Array of user agents to parse (min: 1, max: 50). |
Essayez-le
Démo en directRequête
Array of user agents to parse (min: 1, max: 50).
Sending request...
Champs de réponse
| Champ | Type | Description |
|---|---|---|
| results | array<object> |
List of parsed user agents results returned in the same order as the input user agents. |
| results[].user_agent | string |
The original user agent string from the input. |
| results[].data | object |
Parsed user agent details. |
| results[].data.browser | string |
Detected browser name (e.g. Chrome, Firefox, Safari, Edge, Opera, Internet Explorer, Other). Empty if not detected. |
| results[].data.browser_version | string |
Detected browser version (major.minor). Empty if not detected. |
| results[].data.os | string |
Detected operating system (e.g. Windows, macOS, Linux, Android, iOS, ChromeOS, Other). Empty if not detected. |
| results[].data.os_version | string |
Detected OS version (format varies by platform). Empty if not detected. |
| results[].data.device | string |
Device type — one of desktop, mobile, tablet, bot, or unknown |
| results[].data.is_bot | boolean |
True when the user agent matches a known bot or crawler pattern |
| total | integer |
Total number of parsed user agent results returned. |
Exemples de code
curl -X POST "https://requiems.xyz/v1/technology/useragent/batch" \
-H "requiems-api-key: YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"user_agents": [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15"
]
}'
import requests
url = "https://requiems.xyz/v1/technology/useragent/batch"
headers = {
"requiems-api-key": "YOUR_API_KEY",
"Content-Type": "application/json"
}
payload = {
"user_agents": [
"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36",
"Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15"
]
}
response = requests.post(url, headers=headers, json=payload)
for item in response.json()["data"]["results"]:
print(item["user_agent"])
print("Browser:", item["data"]["browser"], item["data"]["browser_version"])
print("OS:", item["data"]["os"], item["data"]["os_version"])
print("Device:", item["data"]["device"])
print("Is Bot:", item["data"]["is_bot"])
const response = await fetch(
'https://requiems.xyz/v1/technology/useragent/batch',
{
method: 'POST',
headers: {
'requiems-api-key': 'YOUR_API_KEY',
'Content-Type': 'application/json'
},
body: JSON.stringify({
user_agents: [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
'Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15'
]
})
}
);
const { data } = await response.json();
data.results.forEach(item => {
console.log(item.user_agent);
console.log('Browser:', item.data.browser, item.data.browser_version);
console.log('OS:', item.data.os, item.data.os_version);
console.log('Device:', item.data.device);
console.log('Is Bot:', item.data.is_bot);
});
require 'net/http'
require 'json'
uri = URI('https://requiems.xyz/v1/technology/useragent/batch')
request = Net::HTTP::Post.new(uri)
request['requiems-api-key'] = 'YOUR_API_KEY'
request['Content-Type'] = 'application/json'
request.body = {
user_agents: [
'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
'Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X) AppleWebKit/605.1.15'
]
}.to_json
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
JSON.parse(response.body)['data']['results'].each do |item|
puts item['user_agent']
puts "Browser: #{item['data']['browser']} #{item['data']['browser_version']}"
puts "OS: #{item['data']['os']} #{item['data']['os_version']}"
puts "Device: #{item['data']['device']}"
puts "Is Bot: #{item['data']['is_bot']}"
end
Réponses d'erreur
validation_failed
The user_agents array is missing, empty, or contains more than 50 items.
bad_request
Invalid JSON, malformed request body, or unexpected field types.
Foire aux questions
Chrome, Firefox, Safari, Edge, Opera, and Internet Explorer. Anything else returns "Other".
The API checks for known bot/crawler keywords in the user agent string, including Googlebot, Bingbot, curl, wget, python-requests, and many others.
desktop, mobile, tablet, bot, or unknown. Tablets are identified by iPad or Android without 'Mobile' in the UA.