Skip to content
API

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 prices

Updated

Read lifetime Rust countersWOK API
curl --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.

Set both values before the requests belowWOK API
export WOK_API_KEY="YOUR_ACTIVE_WOK_KEY"
export STEAM_ID="YOUR_17_DIGIT_STEAMID64"
QuestionRouteFields and limits
Who is this player?GET /v1/profilesteamid, personaname, avatarfull, profileurl, optional timecreated and visibility.
What is the account level?GET /v1/profile?include_level=1 or GET /v1/steam-levelsteam_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/aliasesUp to ten public Community persona aliases. An empty list does not prove that the account never changed names.
Which friends are public?GET /v1/friendsRead friends, has_more and next_cursor; a private friends list returns HTTP 403.
Profile and account levelWOK API
curl --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"
First page of public friendsWOK API
curl --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.

Rust kills and resourcesWOK API
curl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/rust/summary" --data-urlencode "steam_id=$STEAM_ID"
WOK summary fieldSteam counterInterpretation
kills.playerskill_playerSteam-published lifetime player kills.
kills.scientistskill_scientistSteam-published scientist NPC kills, not every kind of bot.
resources.woodharvested_woodPublished harvested wood count.
resources.stonesharvested_stonesPublished harvested stone count.
resources.metal_oreacquired_metal.orePublished metal ore acquisition count.
resources.scrapacquired_scrapPublished 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.

Rust achievementsWOK API
curl --fail-with-body -H "Authorization: Bearer $WOK_API_KEY" --get "https://woksteamapi.com/v1/rust/achievements" --data-urlencode "steam_id=$STEAM_ID"
Total and recent Rust playtimeWOK API
curl --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.

All grouped Rust inventory rowsWOK API
curl --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"
One exact saved Rust item quoteWOK API
curl --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