Obtain a Steam Web API key from https://steamcommunity.com/dev/apikey by logging in with a Steam account.
Resolve the target user's 64-bit SteamID (steamid64); use the ISteamUser/ResolveVanityURL/v1 endpoint if you only have a vanity URL.
Call GET https://api.steampowered.com/IPlayerService/GetOwnedGames/v1/?key=<API_KEY>&steamid=<STEAMID64>&include_appinfo=true&include_played_free_games=true to retrieve the full library.
Parse the JSON response: each game object contains appid, playtime_forever (minutes), and optionally name/img_icon_url when include_appinfo is true.
To check ownership of a specific app, filter the games array by appid; absence from the list means the user does not own it (or their profile is private).
Handle the case where response.response is empty — this indicates the profile is set to private and the API returned no data.
Known gotchas
If the target user has set their game details to private in Steam privacy settings, GetOwnedGames returns an empty response object with no error code — you cannot distinguish 'owns nothing' from 'profile private' without additional checks.
playtime_forever is cumulative lifetime minutes and cannot be reset; playtime_2weeks is only present if the user played in the last two weeks and may be absent entirely.
Free-to-play games are excluded by default; you must explicitly pass include_played_free_games=true or ownership checks for F2P titles will incorrectly return false.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp