Skip to content
API

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 authentication

Updated

curlWOK API
curl --fail-with-body --max-time 35 \
  -H "Authorization: Bearer $WOK_API_KEY" \
  "https://woksteamapi.com/v1/profile?steam_id=76561198090744629"
SteamID64profile URL or vanity input
86,400sdefault profile cache TTL
64 profilesmaximum batch profile lookup
Visibilityofficial profile state

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.

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.

curlWOK API
curl --fail-with-body --max-time 35 \
  -H "Authorization: Bearer $WOK_API_KEY" \
  "https://woksteamapi.com/v1/profile?steam_id=76561198090744629"
JavaScript (Node.js)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();
PythonWOK API
import 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.

Steam profile API for server-side applications response schema
FieldTypeMeaning
steamidstringResolved 17-digit SteamID64.
personanamestringCurrent Steam display name.
loccountrycodestringCountry code when Steam exposes it.
avatarfullstringFull-size Steam avatar URL.
profileurlstringCanonical Steam community profile URL.
visibilityintegerSteam community visibility when supplied; 0 or absent means unknown.
cachedbooleanTrue 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.