Rust and Steam account data
Rust API for player stats, hours and items
One WOK key covers Steam-published Rust lifetime kills and resources, achievements, visible playtime, public inventories and saved item prices. Steam does not attach these counters to individual Rust servers or wipes.
appid=252490game=rust for inventory and pricesUpdated
WOK APIcurl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/rust/summary" --data-urlencode "steam_id=$STEAM_ID"Start with one Steam account and one WOK key
Set WOK_API_KEY and STEAM_ID as server-side environment variables. The Rust player-data and friends routes require a 17-digit SteamID64; profile and inventory routes also accept a Steam profile URL or vanity name. Keep your WOK key out of browser code and URLs.
WOK APIexport WOK_API_KEY="YOUR_ACTIVE_WOK_KEY"
export STEAM_ID="YOUR_17_DIGIT_STEAMID64"| Question | Route | Fields and limits |
|---|---|---|
| Who is this player? | GET /v1/profile | steamid, personaname, avatarfull, profileurl, optional timecreated and visibility. |
| What is the account level? | GET /v1/profile?include_level=1 or GET /v1/steam-level | steam_level describes the Steam account, not Rust progression. A level may be unavailable even when the profile is visible. |
| Which previous names are public? | GET /v1/aliases | Up to ten public Community persona aliases. An empty list does not prove that the account never changed names. |
| Which friends are public? | GET /v1/friends | Read friends, has_more and next_cursor; a private friends list returns HTTP 403. |
WOK APIcurl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/profile" --data-urlencode "steam_id=$STEAM_ID" --data-urlencode "include_level=1"WOK APIcurl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/friends" --data-urlencode "steam_id=$STEAM_ID" --data-urlencode "limit=50"A public name or avatar does not unlock private friends, game details or an inventory. Use the visibility guide to preserve an unknown field as unknown.
Read raw counters or a named lifetime summary
WOK fixes AppID 252490 for /v1/rust/*. GET /v1/rust/stats keeps Steam's playerstats.stats[] names and values. GET /v1/rust/summary maps the most requested names while retaining every published numeric stat in stats_by_name.
WOK APIcurl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/rust/summary" --data-urlencode "steam_id=$STEAM_ID"| WOK summary field | Steam counter | Interpretation |
|---|---|---|
kills.players | kill_player | Steam-published lifetime player kills. |
kills.scientists | kill_scientist | Steam-published scientist NPC kills, not every kind of bot. |
resources.wood | harvested_wood | Published harvested wood count. |
resources.stones | harvested_stones | Published harvested stone count. |
resources.metal_ore | acquired_metal.ore | Published metal ore acquisition count. |
resources.scrap | acquired_scrap | Published scrap acquisition count. |
A mapped counter is null when Steam did not publish it for this account. stats_by_name may include additional Steam counters, but the route never synthesizes a missing value. See the complete kill, animal, resource and combat field map.
Achievements and visible Rust hours
Achievements and playtime are separate Steam responses. Neither reveals which Rust server a player visited.
WOK APIcurl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/rust/achievements" --data-urlencode "steam_id=$STEAM_ID"WOK APIcurl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/rust/playtime" --data-urlencode "steam_id=$STEAM_ID"/v1/rust/achievements returns playerstats.achievements[]. Each published row has a name alias for Steam's apiname and numeric achieved: 1 unlocked, 0 locked. unlocktime is optional.
/v1/rust/playtime returns response.games[]. Steam's playtime_forever and optional playtime_2weeks are minutes; WOK adds decimal playtime_hours and playtime_2weeks_hours. An empty games array can mean hidden game details or no visible ownership, so it is not evidence of zero hours. GET /v1/games reads the broader visible library.
Inventory and market prices answer a different question
For owned Rust skins and items, use the public Community inventory with game=rust (AppID 252490, context 2). A market price is a saved item observation, not the amount of wood or stone a player farmed in-game.
WOK APIcurl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/inventory" --data-urlencode "steam_id=$STEAM_ID" --data-urlencode "game=rust" --data-urlencode "top=0"WOK APIcurl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/price" --data-urlencode "game=rust" --data-urlencode "name=8-BIT AR"Read inventory status, items_total, unpriced and meta.cache_age before showing total. A native inventory can return HTTP 200 with status=private, empty, limited or error. A valid item may have pricemedian=null; items[].priceupdatedat describes its selected catalog observation rather than the inventory snapshot age. The sample price name illustrates an exact catalog lookup and may become unavailable.
GET /v1/items?game=rust&q=... searches the saved catalog; GET /v1/price-history?game=rust&name=... returns only observed daily points. These calls do not trigger a live Steam or marketplace refresh, and history is not backfilled before WOK observed an item.
Rust inventory response referenceInventory value and source selectionPrice history coverage
Visibility and per-server limits
Steam publishes account-level Rust statistics. The public methods used here do not include a server identifier, wipe date, per-server kill ledger or per-server resource ledger. WOK cannot derive those from a public profile alone.
Private or unavailable Rust stats return HTTP 403 rust_data_unavailable. Do not convert that response or a null counter into zero. A temporary Steam failure can return 502; use a bounded retry.
A private friends list separately returns HTTP 403. Rust playtime may have an empty visible games array. A public profile does not imply either resource is visible.
Per-server kills, bot types beyond Steam's published counters, wood, stone, scrap or wipe totals require access to that server's own API, plugin or logs. Without access to third-party servers, those values are unavailable rather than estimated.
Each authenticated data call uses WOK plan quota. GET /v1/key reports the key's effective limits. For official source behavior, see Valve's user stats, playtime and profile and friends documentation.
Detailed Rust stats fieldsSteam profile APIDiagnose private resultsAll API guidesOpenAPI schema