---
title: "🚩 Score a Steam account for smurf / alternate-account risk"
method: GET
path: "/steam/api/profile/risk"
tags: ["Profile"]
---

# 🚩 Score a Steam account for smurf / alternate-account risk

`GET /steam/api/profile/risk`

## Request

- Base URL: `https://www.steamwebapi.com`
- URL: `https://www.steamwebapi.com/steam/api/profile/risk`
- Auth: API key in query parameter `key`

Baseurl: https://www.steamwebapi.com/steam/api/profile/risk?steam_id=76561198042843401&key=YOUR_API_KEY

    💬 **What this endpoint does:**
    - Scores how likely a Steam account is a secondary ("smurf") account whose inventory was handed over from another account, rather than built up on its own.
    - Answers the question anti-cheat, matchmaking and marketplace operators actually have: is this fresh-looking account really a fresh player?

    🛠️ **What you get:**
    - `risk.score` (0-100) and `risk.level` (low / medium / high) as the overall assessment.
    - `risk.smurf.detected` — the boolean verdict, with its own score and level.
    - `risk.smurf.confidence` (low / medium / high) — how much is known about this account. A `detected: false` at `confidence: low` means "cannot tell", NOT "clean".
    - Guaranteed: `level: high` only ever occurs together with `confidence: high`. A thin-evidence account is capped at `medium`, so acting automatically on `level: high` never acts on a guess.
    - `risk.smurf.signals` — stable signal codes that fired: `round_trip_partner` (something left this account and came back — the strongest single indicator), `dominant_destination`, `bidirectional_partner`, `single_origin_dominant`, `bulk_acquisition_window`, `account_young_at_acquisition`, `origin_account_older`, `origin_account_inactive`, `limited_account_high_value` (a limited account — one that never spent money on Steam — holding a valuable inventory; supporting evidence only).
    - `risk.smurf.since` — the date the pattern starts, when one could be established.
    - `risk.smurf.summary` — a plain-language conclusion you can surface to staff.
    - `risk.smurf.linkedaccounts` — which accounts this one is linked to, strongest first. Per entry: `steamid`, a `profile` block with who that is (`personaname`, `avatar`, `avatarfull`, `timecreated`, `timecreatedat`, `loccountrycode`, `vac`, `tradeban`, `inventoryworthpricesteam`; null when the account is unknown to us), `matchscore` (0-100) and `matchlevel`, `share`, `direction` (incoming / outgoing / both), `roundtrip`, a `transfers` breakdown (received, sent, total, direct, viamarket), `firsttransfer` / `lasttransfer` / `windowdays`, and `reasons` — the plain-language evidence each score is built from, including what argued against it (a counterpart that trades with many different accounts, or still holds a large inventory, is dampened towards 0 because that is what a dealer looks like, not a second account). Empty when nothing links this account to anyone.

    🌐 **How to use:**
    - Pass `steam_id` (SteamID64). Nothing else is required — the assessment is resolved entirely server-side.
    - Results are cached per account for several hours, so polling the same account is cheap for you and stable for your UI.
    - Credits: 1 per call, regardless of how much history the account has or how many accounts fed into it. They count against the same Profile allowance as the other Profile endpoints.

    ⚠️ **How to read the verdict:**
    - This is a strong probabilistic indicator, not proof of identity, and must not be the sole basis for banning or rejecting a user.
    - `risk` is a container: further risk types may be added alongside `smurf` later, so read it by key rather than by position.

## Query parameters

- `steam_id` string, required

## Response `200`

Request was successful.

- unknown

## Other responses

- `400`: steam_id is missing or not a valid SteamID64.
- `402`: Rate limit exceeded (daily or monthly), or endpoint not included in your package.
- `429`: Too many requests per minute for this API key — see config/packages/rate_limiter.yaml (profile_risk).

---

[API](https://skmtc.dev/steamwebapi/apis/steamwebapi-com-third-party-steam-market-api-documentation.md) · [All operations](https://skmtc.dev/steamwebapi/apis/steamwebapi-com-third-party-steam-market-api-documentation/llms.txt) · [OpenAPI document](https://skmtc.dev/steamwebapi/apis/steamwebapi-com-third-party-steam-market-api-documentation/revisions/f9a4109cbda6?raw)
