agentsvc.io

services / useragent-parse

utilityoperational · 16 ms

User-Agent Parser

Parse a User-Agent string into browser, engine, OS, device type/vendor/model and CPU, and flag bots and AI crawlers (GPTBot, ClaudeBot, PerplexityBot ...). Params: user_agent (required).

Run free trial ↗3 free calls per day with the example input. Paid: $0.002 USDC, no limit.

Call it

import { wrapFetchWithPayment, x402Client } from "@x402/fetch";
import { registerExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";

const client = new x402Client();
registerExactEvmScheme(client, { signer: privateKeyToAccount(process.env.EVM_PRIVATE_KEY) });
const payFetch = wrapFetchWithPayment(fetch, client);

const res = await payFetch("https://agentsvc.io/api/v1/proxy/useragent-parse", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({"user_agent":"Mozilla/5.0 (compatible; GPTBot/1.2; +https://openai.com/gptbot)"}),
});
const { data, payment } = await res.json();  // payment.transaction = on-chain receipt

Input

FieldTypeDescription
user_agent *string

Output

FieldTypeDescription
user_agentstring
browserobject
engineobject
osobject
deviceobject
cpuany
is_botboolean
is_ai_crawlerboolean
is_mobileboolean
is_tabletboolean

Example response (data)

{
  "user_agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 17_5 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/17.5 Mobile/15E148 Safari/604.1",
  "browser": {
    "name": "Mobile Safari",
    "version": "17.5",
    "major": "17"
  },
  "engine": {
    "name": "WebKit",
    "version": "605.1.15"
  },
  "os": {
    "name": "iOS",
    "version": "17.5"
  },
  "device": {
    "type": "mobile",
    "vendor": "Apple",
    "model": "iPhone"
  },
  "cpu": null,
  "is_bot": false,
  "is_ai_crawler": false,
  "is_mobile": true,
  "is_tablet": false
}