API Reference

Integrate trust data into your trading site, Discord bot, or tool.

Base URL: your-domain/api/v1Rate limit: 30 req/min (anon)

Try it live

Runs GET /api/v1/lookup/:id against this server. Any SteamID, URL or vanity name.

GET/lookup/:steam_id

Look up a Steam profile and get its trust score, verdict, breakdown, ban history, and community reports. Accepts any identifier format.

{
  "success": true,
  "data": {
    "steam_id": "76561198012345678",
    "persona_name": "TraderJoe_CS2",
    "profile_state": "public",
    "trust": {
      "score": 88,
      "verdict": "safe",           // safe | caution | danger | scammer
      "flags": [],
      "breakdown": {
        "account_age":     { "score": 18, "max": 20, "detail": "5.4 years old" },
        "ban_record":      { "score": 25, "max": 25, "detail": "No bans on record" },
        "steam_level":     { "score": 12, "max": 15, "detail": "Level 31" },
        "game_library":    { "score": 10, "max": 10, "detail": "127 games owned" },
        "profile_quality": { "score": 8,  "max": 10, "detail": "Public, complete" },
        "community":       { "score": 15, "max": 15, "detail": "No reports filed" },
        "verified_bonus":  { "score": 0,  "max": 5,  "detail": "Not verified" }
      }
    },
    "bans": { "vac_bans": 0, "game_bans": 0, "days_since_last_ban": null, "economy_ban": "none" },
    "legacy": { "steamrep_status": "clean", "steamrep_ban_type": null },
    "reports": { "total": 0, "confirmed": 0, "pending": 0 },
    "meta": { "cached": true, "cached_at": "2026-01-15T12: 00: 00Z", "data_age_hours": 2.4 }
  }
}
GET/resolve/:input

Resolve any Steam identifier (URL, vanity name, SteamID, SteamID3) to a SteamID64.

{
  "success": true,
  "steam_id": "76561198012345678",
  "input_type": "vanity_url"
}
GET/batch?ids=id1,id2,id3

Look up multiple profiles in one request. Max 10 IDs per call. Requires an API key.

curl "https://your-domain/api/v1/batch?ids=76561198012345678,gabelogannewell" \
  -H "Authorization: Bearer tp_your_api_key"

{
  "success": true,
  "count": 2,
  "results": [
    { "input": "76561198012345678", "success": true, "data": { ... } },
    { "input": "gabelogannewell",   "success": true, "data": { ... } }
  ]
}
POST/reports

Submit a community report against a Steam profile. Requires Steam authentication (a signed-in session). Limited to 3 reports per user per day.

// Request body
{
  "target_steam_id": "76561198012345678",
  "report_type": "scam",   // scam | phishing | impersonation | item_switch | fake_middleman | other
  "description": "Switched items in the trade window right before confirmation...",
  "evidence_url": "https://..."   // optional
}

// Response (201)
{
  "success": true,
  "report_id": "0b9f1c52-6f0e-4c0f-9a53-5e8c2f1a7d10",
  "status": "pending"
}
GET/stats

Public site counters: total lookups, scammers flagged, imported SteamRep bans, and community reports. Cached for 5 minutes.

Limits

Anonymous: 30 req/min per IP. Free key: 60. Starter ($29/mo): 120. Pro ($99/mo): 500. Exceeding a limit returns 429 with a Retry-After header.

Need higher limits?

API keys unlock 60 requests/min and batch lookups. Paid tiers are available for trading marketplaces and high-volume applications.

Get an API Key