Device-Analyze API

זהה דפדפן, מערכת הפעלה, מכשיר ובוטים מכל User-Agent.

מה אתם יכולים לעשות?
אנליטיקה בזמן אמת

פרק תעבורה לפי מכשיר ודפדפן ללא עוגיות.

מיקוד A/B חכם

הגש פריסות שונות למשתמשי מובייל לעומת שולחן עבודה.

סינון בוטים

זהה רובוטים זדוניים שמתחזים לדפדפנים לגיטימיים.

נסו בזמן אמת
99.9 % זמן פעילות
93.4ms תגובה
20 req/s
0.002 קרדיטים / בקשה

Inspect UA


POST https://api.yeb.to/v1/device-analyze
פרמטרסוגנדרשתיאור
api_key string כן Your API key
ua string אופציונלי User-Agent string (defaults to caller UA)

דוגמה

curl -X POST https://api.yeb.to/v1/device-analyze \
  -H "Content-Type: application/json" \
  -d '{
  "api_key": "YOUR_KEY",
  "ua"     : "Mozilla/5.0 (iPhone; CPU iPhone OS 17_0 like Mac OS X)..."
}'

דוגמת תגובה

{
  "data": {
    "ua_string": "Mozilla/5.0 …",
    "browser": { "name": "Mobile Safari", "version": "17.0" },
    "engine":  { "name": "WebKit", "version": "617" },
    "os":      { "name": "iOS", "version": "17.0" },
    "device":  { "type": "mobile", "brand": "Apple", "model": "iPhone" },
    "is_mobile": true,
    "is_tablet": false,
    "is_bot": false,
    "is_desktop": false
  }
}
{"error":"Missing User-Agent string","code":422}

קודי תגובה

קודתיאור
200 Successהבקשה עובדה בהצלחה.
400 Bad Requestאימות קלט נכשל.
401 Unauthorizedמפתח API חסר או שגוי.
403 Forbiddenמפתח לא פעיל או לא מורשה.
429 Rate Limitיותר מדי בקשות.
500 Server Errorכשל בלתי צפוי.

Inspect

device-analyze 0.0020 credits

Parameters

API Key
query · string · required
User-Agent
query · string

Code Samples


                
                
                
            

Response

Status:
Headers

                
Body

                

Device-Analyze API — Practical Guide

A hands-on guide to classifying browsers and devices from User-Agent strings. Learn when to send the UA, how to read the output, and what decisions to make in production (security, analytics, UX).

#What Device-Analyze solves

This endpoint parses a User-Agent (UA) string and returns browser, engine, OS, device and bot signals, plus convenient booleans (is_mobile, is_desktop, …). Use it to tailor UX (mobile vs desktop layouts), segment analytics, or flag suspicious UAs.

Works even if you don’t send ua: the API falls back to the current request’s User-Agent header.

#Endpoints & when to use them

# POST /v1/device-analyze

  • Best for: All UA parsing use-cases. Single, simple endpoint.
  • How it works: Provide a ua string (optional). If omitted, we read the request header.
  • Common uses: Feature flags (e.g., disable heavy effects on mobile), funnel analysis, anti-fraud heuristics.

#Quick start

curl -X POST "https://api.yeb.to/v1/device-analyze" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -H "X-API-Key: <YOUR_API_KEY>" \
  -d '{
    "api_key": "<YOUR_API_KEY>",
    "ua": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36"
  }'
// JS Fetch example (Node/Browser)
await fetch("https://api.yeb.to/v1/device-analyze", {
  method: "POST",
  headers: {
    "Accept": "application/json",
    "Content-Type": "application/json",
    "X-API-Key": "<YOUR_API_KEY>"
  },
  body: JSON.stringify({
    api_key: "<YOUR_API_KEY>",
    ua: navigator.userAgent // or a server-provided UA
  })
}).then(r => r.json()).then(console.log);

#Parameters that actually matter

Param Required Practical guidance Why it matters
ua No Send the exact UA you want analyzed. If omitted, we’ll use the request header. Gives you control (e.g., batch-analyze stored logs) and avoids proxy/header quirks.
api_key or X-API-Key Yes Either include in JSON payload or in header (preferred: header). Authentication. Header keeps keys out of logs more safely.

#Reading & acting on responses

You typically read data.browser, data.os, data.device, and boolean flags like is_mobile.

{
  "data": {
    "ua_string": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) ... Chrome/141.0.0.0 Safari/537.36",
    "browser": { "name": "Chrome", "version": "141.0.0.0", "vendor": null },
    "engine":  { "name": "Blink",  "version": null },
    "os":      { "name": "Windows","version": "10.0" },
    "device":  { "type": "desktop","brand": null,"model": null },
    "bot": null,
    "is_mobile": false,
    "is_tablet": false,
    "is_bot": false,
    "is_desktop": true
  },
  "response_code": 200,
  "response_time_ms": 118
}

#Key signals & decisions

  • is_mobile / is_tablet / is_desktop — pick layout, image sizes, feature flags.
  • bot object — treat as crawler: skip animations, block login, different rate limits.
  • browser.version — gate advanced features (e.g., WebGPU) behind minimum versions.
  • device.type — “mobile”, “tablet”, “desktop”, etc. for coarse segmentation.

#Errors you might see

HTTPWhenWhat to do
422 UA missing and no User-Agent header. Send ua explicitly or ensure your proxy forwards the header.
401/403 Invalid/missing API key. Place the key in X-API-Key header.

#Practical recipes

  • Mobile-first UI: if is_mobile → reduce bundle, enable compact nav, lazy-load heavy widgets.
  • Fraud hardening: if is_bot or UA looks impossible (e.g., iOS + Edge legacy) → challenge or block.
  • Analytics buckets: group by device.type and os.name for clean dashboards.

#Troubleshooting & field notes

  1. Empty vendor/version: some UA strings are intentionally reduced. Don’t fail hard; fall back to booleans.
  2. Proxy chains: ensure your edge forwards User-Agent unchanged if you rely on header fallback.
  3. Batch analysis: always pass ua explicitly to avoid environment/header differences.

#More response examples

Android Mobile (Chrome)
{
  "data": {
    "ua_string": "Mozilla/5.0 (Linux; Android 10; K) ... Chrome/138.0.0.0 Mobile Safari/537.36",
    "browser": { "name": "Chrome", "version": "138.0.0.0", "vendor": null },
    "engine":  { "name": "Blink", "version": null },
    "os":      { "name": "Android", "version": "10" },
    "device":  { "type": "mobile", "brand": null, "model": null },
    "bot": null,
    "is_mobile": true,
    "is_tablet": false,
    "is_bot": false,
    "is_desktop": false
  }
}

#API Changelog

2025-10-20
Normalized bot details (name, category, url) and hardened UA fallback to request header when no ua param is sent.
2025-10-15
Improved OS / device detection for Android 9–13 and desktop Linux distributions; added convenience booleans.
2025-10-05
Initial public release of Device-Analyze v1.

שאלות נפוצות

הוא מבוסס על מסד הנתונים בקוד פתוח WhichBrowser, המתעדכן שבועית למכשירים ומנועים חדשים.

לא – אנחנו מגבבים אותן למדדים; הערך הגולמי נמחק מיד לאחר הפענוח.

כן. כל בקשה, גם כאלה שמובילות לשגיאות, צורכת קרדיטים. הקרדיטים שלך קשורים למספר הבקשות, ללא קשר להצלחה או כישלון. אם השגיאה נובעת בבירור מבעיה בפלטפורמה מצידנו, נשחזר את הקרדיטים המושפעים (ללא החזר כספי).

צרו איתנו קשר ב-[email protected]. אנחנו מתייחסים למשוב ברצינות—אם דוח הבאג או בקשת הפיצ'ר שלכם משמעותיים, נוכל לתקן או לשפר את ה-API במהירות ולהעניק לכם 50 קרדיטים חינם כתודה.

זה תלוי ב-API ולפעמים אפילו ב-endpoint. חלק מה-endpoints משתמשים בנתונים ממקורות חיצוניים, שעשויים להיות בעלי מגבלות מחמירות יותר. אנחנו גם אוכפים מגבלות כדי למנוע שימוש לרעה ולשמור על יציבות הפלטפורמה. בדקו את התיעוד למגבלה הספציפית של כל endpoint.

אנחנו פועלים על מערכת קרדיטים. קרדיטים הם יחידות ששולמו מראש ואינן ניתנות להחזר, שאתם מוציאים על קריאות API וכלים. קרדיטים נצרכים בשיטת FIFO (הישנים ביותר קודם) ותקפים ל-12 חודשים מתאריך הרכישה. לוח הבקרה מציג כל תאריך רכישה ותפוגתו.

כן. כל הקרדיטים שנרכשו (כולל יתרות חלקיות) תקפים ל-12 חודשים מהרכישה. קרדיטים שלא נוצלו פגים אוטומטית ונמחקים לצמיתות בסוף תקופת התוקף. קרדיטים שפגו לא ניתנים לשחזור או להמרה למזומן או ערך אחר. כלל מעבר: קרדיטים שנרכשו לפני 22 בספט׳ 2025 מטופלים כאילו נרכשו ב-22 בספט׳ 2025 ופגים ב-22 בספט׳ 2026 (אלא אם צוין תאריך תפוגה מוקדם יותר ברכישה).

כן—בתוך חלון התוקף שלהם. קרדיטים שלא נוצלו נשארים זמינים ומועברים מחודש לחודש עד שהם פגים 12 חודשים לאחר הרכישה.

קרדיטים הם לא ניתנים להחזר. קנו רק מה שאתם צריכים—תמיד תוכלו לטעון שוב מאוחר יותר. אם שגיאת פלטפורמה גורמת לחיוב כושל, אנו עשויים לשחזר את הקרדיטים המושפעים לאחר בדיקה. ללא החזר כספי.

המחירים נקבעים בקרדיטים, לא בדולרים. לכל endpoint יש עלות משלו—ראו את תג "קרדיטים / בקשה" למעלה. תמיד תדעו בדיוק כמה אתם מוציאים.
← חזרה ל-APIs