Steam profile data
Steam profile API for server-side applications
GET /v1/profile accepts a SteamID64, profile URL or vanity name and returns the resolved public Steam profile fields.
GET /v1/profileBearer authenticationUpdated
WOK APIcurl --fail-with-body --max-time 35 \
-H "Authorization: Bearer $WOK_API_KEY" \
"https://woksteamapi.com/v1/profile?steam_id=76561198090744629"From a Steam identity to your first profile response
A Steam profile lookup answers who the player is. It does not include their inventory, ban history or permission to trade.
Get a WOK API key, keep it on your server and run the profile example. Use a SteamID64 or URL-encode a profile or vanity URL in steam_id.
Store the returned steamid as the stable identifier, not personaname. Optional country and visibility fields can be absent; no endpoint unlocks private profile data.
For a roster, POST /v1/profiles accepts {"steamids":["76561198090744629"]} with up to 64 numeric IDs. Each ID consumes a quota unit. Use the inventory API separately for owned items.
Profile rows have a configurable 86,400-second default TTL. cached distinguishes a cache hit; the profile response does not expose exact cache age or the inventory freshness headers.
Previous names, Steam level and game hoursProfile privacy and missing dataProfile and friends referenceCompatibility endpoint migration checklistChoose a quota for your player count
Quickstart
Use WOK from a trusted server. Keep the API key outside browser bundles and public repositories.
WOK APIcurl --fail-with-body --max-time 35 \
-H "Authorization: Bearer $WOK_API_KEY" \
"https://woksteamapi.com/v1/profile?steam_id=76561198090744629"WOK API// Node.js: keep the API key on your server.
const response = await fetch(
"https://woksteamapi.com/v1/profile?steam_id=76561198090744629",
{headers: {Authorization: `Bearer ${process.env.WOK_API_KEY}`}}
);
if (!response.ok) throw new Error(`${response.status}: ${await response.text()}`);
const profile = await response.json();WOK APIimport os
import requests
response = requests.get(
"https://woksteamapi.com/v1/profile",
headers={"Authorization": f"Bearer {os.environ['WOK_API_KEY']}"},
params={"steam_id": "76561198090744629"},
timeout=30,
)
response.raise_for_status()
profile = response.json()Response example
The values below illustrate the response shape. Field names and types match the public contract.
JSON
application/json{
"steamid": "76561198090744629",
"personaname": "Example player",
"loccountrycode": "US",
"avatarfull": "https://avatars.steamstatic.com/..._full.jpg",
"profileurl": "https://steamcommunity.com/profiles/76561198090744629/",
"visibility": 3,
"cached": false
}
Response schema
Stable fields for typed clients, storage and error handling.
| Field | Type | Meaning |
|---|---|---|
steamid | string | Resolved 17-digit SteamID64. |
personaname | string | Current Steam display name. |
loccountrycode | string | Country code when Steam exposes it. |
avatarfull | string | Full-size Steam avatar URL. |
profileurl | string | Canonical Steam community profile URL. |
visibility | integer | Steam community visibility when supplied; 0 or absent means unknown. |
cached | boolean | True when served from WOK's profile cache. |
Limits and error behavior
Rules clients should handle explicitly in production.
Private profiles can omit fields that Steam does not expose. Do not infer absence from an empty optional string.
The single-profile endpoint returns 404 when a profile cannot be resolved. Batch profile lookup accepts up to 64 SteamIDs.
Use this API from a trusted server. Do not ship a WOK API key in browser JavaScript or a desktop client.
Cache and freshness semantics
How to tell whether data was reused, shared or refreshed.
Profile rows use a configurable 86,400-second default TTL. The cached boolean tells whether this response used that row.
A fresh official visibility result can invalidate older positive inventory snapshots when the profile becomes private.
Profile responses do not expose inventory cache headers; those headers apply to /v1/inventory and /steam/api/inventory.
Frequently asked questions
Direct answers about access, freshness and result semantics.
Can the profile API resolve a vanity URL?
Yes. The endpoint accepts a SteamID64, Steam profile URL or vanity name and returns the resolved public fields.
Does WOK expose private profile data?
No. Optional fields can be absent when Steam does not expose them publicly.