Steam account profile data
Steam name history API: previous aliases and current profile
Fetch the public persona names Steam Community still shows, then read the current name, avatar, account creation time, Steam level and visible game hours from separate WOK endpoints.
Updated October 21, 2026
curl --fail-with-body --max-time 35 --get \
-H "Authorization: Bearer $WOK_API_KEY" \
--data-urlencode "steam_id=$STEAM_ID" \
"https://woksteamapi.com/v1/aliases"A first request that keeps credentials separate
Store WOK_API_KEY and a 17-digit STEAM_ID on your server. Send the WOK key as a Bearer header to woksteamapi.com. Your application does not need a Valve Steam Web API key for this route.
{
"steam_id": "76561198000000001",
"aliases": [
{
"name": "Previous persona",
"time_changed": "Steam Community date text"
}
],
"count": 1
}aliases[] contains name and time_changed; count is the number of entries WOK returned. The date is the original Steam Community text or null, not a Unix timestamp or guaranteed timezone. The example name and date text above are placeholders, not a live player's data.
Steam Community can expose up to ten recent persona aliases and the account owner can clear that list. The current name may appear among the aliases. An empty array means no aliases were exposed at request time; it does not prove the account never used another name. Steam may change this public page because it is outside Valve's official Web API contract.
Read name history from a Steam profile link
A vanity name is not a SteamID64. Resolve it with /v1/profile, keep the returned ID as a string, then pass that ID to /v1/aliases. This example also accepts a numeric SteamID64 or a Steam Community profile link.
Download the Node.js alias lookup. Node.js 18 or newer is sufficient; no package installation is needed. Save the file on your server and set these environment variables:
export WOK_API_KEY="your-wok-key"
export WOK_STEAM_PROFILE="https://steamcommunity.com/id/your-profile/"
node steam-aliases.mjsReplace the placeholder with the public profile you want to read. The client makes at most two authenticated GET requests: one profile lookup, then one alias lookup. Normal endpoint access and quota apply to both calls. It uses only the fixed WOK HTTPS origin, refuses redirects and does not retry automatically. Its 35-second deadline covers both requests and their response bodies; each body is limited to 256 KiB.
The output combines steam_id, nullable current_name, aliases and count. An empty alias list is a successful observation that no names were exposed at that time; the owner may have cleared the list. A failed or malformed response stops the client without returning a fabricated empty history.
Keep time_changed as the original source text or null. The example does not parse a timestamp, assume a timezone, sort the entries or reconstruct deleted names. Escape persona names before inserting them into HTML, and keep the WOK key on your server.
Public player integration workflowProfile inputs and fieldsOpenAPI response contract
Current name, level and playtime use different endpoints
The official profile and player service methods answer different questions. Call only the fields your product needs.
| What you need | WOK request | Key response fields |
|---|---|---|
| Current persona, avatar and creation date | GET /v1/profile?steam_id=... | personaname, avatarfull, profileurl, visibility, timecreated |
| Current profile and level in one response | GET /v1/profile?steam_id=...&include_level=1 | level, steam_level, level_status in addition to profile fields |
| Account level only | GET /v1/steam-level?steam_id=... | steam_level |
| Visible games and hours | GET /v1/games?steam_id=... | games[].playtime_forever, games[].playtime_2weeks in minutes, plus decimal-hour fields |
| Public friend list | GET /v1/friends?steam_id=...&limit=50 | friends[], has_more, next_cursor |
curl --fail-with-body --max-time 35 --get \
-H "Authorization: Bearer $WOK_API_KEY" \
--data-urlencode "steam_id=$STEAM_ID" \
--data-urlencode "include_level=1" \
"https://woksteamapi.com/v1/profile"/v1/profile accepts a SteamID64, Steam profile URL or vanity name. Alias history, level, friends and game-library routes require a 17-digit SteamID64. For a vanity URL, resolve it with the profile endpoint first and pass its returned SteamID64 to the other routes.
Privacy and failure cases
Public Steam data is incomplete by design. Keep an unavailable value distinct from an empty value and from zero.
Steam's GetPlayerSummaries supplies the current persona name, not alias history. WOK reads aliases from Steam Community's publicly visible name history; it does not recover names the owner cleared.
timecreated is a Unix timestamp when Steam supplies it. level_status=unavailable means the level was not visible; upstream_error means the level lookup failed. The profile can still be returned.
A private friends list can return HTTP 403. An empty /v1/games result with visibility=unknown can mean private game details or an empty library. Alias lookup can return HTTP 502 when Steam Community fails; retry later with a bounded delay.
See Steam Support's profile names guidance for alias-list behavior and Valve's player service reference for game visibility, playtime and Steam level.
Profile fields and batch lookupProfile privacy and missing dataRust player statsAll developer guidesOpenAPI schema