Skip to main content

Traffic Score

Traffic Score (shown as Traffic Risk on the dashboard Overview tab) summarizes how risky your incoming traffic is over a selected period. It is an aggregate metric — not the score of a single session. Use it to answer: “Is my traffic getting cleaner or riskier this week?”
Per-session Trust Scores (0–999) are delivered via webhooks and described in Trust Score. Traffic Score is the average of those session scores across many requests.

Where to find it

  1. Open dashboard.shieldlabs.ai
  2. Go to Overview
  3. See the Traffic Risk card — gauge, request count, and colored distribution bar
Filter by domain and date range using the controls at the top of the page (same filters apply to other Overview widgets).

What the card shows

MetricDescription
Traffic RiskAverage session score in the period, shown as 0–100 (rounded; values above 100 in raw data are capped at 100 for display)
Requests CheckedNumber of fingerprint checks (snapshot rows) in the period
Trend arrowsChange vs the previous period of the same length (e.g. last 7 days vs the 7 days before)
Distribution barShare of requests in each risk band
Lower Traffic Risk is better — 0 means clean average traffic; 100 means very high average risk.

Risk bands

Each request is counted in exactly one band based on its session score:
BandScore rangeMeaning
Clean0–9Normal, low-risk traffic
Low Risk10–29Minor flags (e.g. VPN, single weak signal)
Medium Risk30–59Multiple flags — review or add friction
High Risk60+Strong bot or fraud signals (includes bans at 999)
The bar and legend show count and percent of requests in each band.
  • Traffic Risk trend — average score vs previous period. A decrease in risk is shown as positive (green).
  • Requests Checked trend — volume vs previous period. An increase in volume is shown as positive.
If the previous period had no data, trends show zero change.

API access

Programmatic access (JWT required):
GET https://account.shieldlabs.ai/api/overview/traffic-score

Query parameters

ParameterRequiredDescription
projectIdNoDomain UUID from Domains list. Omit to aggregate all your domains
dateFromNoStart date YYYY-MM-DD (UTC). Default: 30 days ago
dateToNoEnd date YYYY-MM-DD (UTC, inclusive). Default: today

Example

curl "https://account.shieldlabs.ai/api/overview/traffic-score?projectId=YOUR_DOMAIN_UUID&dateFrom=2026-05-01&dateTo=2026-05-31" \
  -H "Authorization: Bearer YOUR_TOKEN"

Response

{
  "riskScore": 29,
  "riskScoreTrend": {
    "percent": -5.0,
    "isUp": false,
    "isPositive": true
  },
  "requestsChecked": 25000,
  "requestsCheckedTrend": {
    "percent": 12.0,
    "isUp": true,
    "isPositive": true
  },
  "categories": [
    {
      "name": "Clean",
      "count": 15000,
      "percent": 60.0,
      "color": "hsl(142, 71%, 45%)",
      "threshold": "0-9"
    },
    {
      "name": "Low Risk",
      "count": 5000,
      "percent": 20.0,
      "color": "hsl(50, 90%, 50%)",
      "threshold": "10-29"
    },
    {
      "name": "Medium Risk",
      "count": 3000,
      "percent": 12.0,
      "color": "hsl(32, 95%, 54%)",
      "threshold": "30-59"
    },
    {
      "name": "High Risk",
      "count": 2000,
      "percent": 8.0,
      "color": "hsl(0, 72%, 51%)",
      "threshold": "60-100"
    }
  ]
}
FieldDescription
riskScoreRounded average score, 0–100
requestsCheckedTotal checks in the period
riskScoreTrend / requestsCheckedTrendpercent, isUp, isPositive
categoriesAlways 4 entries in order: Clean → Low → Medium → High
  • Analytics — legacy metric endpoints and timelines
  • Trust Score — how individual session scores are calculated
  • Request Signals on Overview — breakdown of detection flags (VPN, STUN, OS mismatch, etc.)