User Agent Parser
Parse user agent strings to extract browser name, version, operating system, device type, and bot detection.
Descripción general
Casos de uso
- Analytics dashboards
- Serving device-specific content
- Bot filtering and traffic analysis
- Browser compatibility reporting
Funcionalidades
Browser name and version detection
Operating system and version detection
Device classification (desktop, mobile, tablet, bot)
Bot/crawler detection
Puntos finales de la 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
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| ua | string |
Obligatorio | The user agent string to parse. |
Pruébalo
Demostración en vivoSolicitud
The user agent string to parse.
Sending request...
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| 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 |
Ejemplos de código
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']
Respuestas de error
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
Parámetros
| Nombre | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| user_agents | array<string> |
Obligatorio | Array of user agents to parse (min: 1, max: 50). |
Pruébalo
Demostración en vivoSolicitud
Array of user agents to parse (min: 1, max: 50).
Sending request...
Campos de respuesta
| Campo | Tipo | Descripción |
|---|---|---|
| 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. |
Ejemplos de código
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
Respuestas de error
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.
Preguntas frecuentes
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.