Every request returns readonly DTOs — immutable objects with typed, public properties. Timestamps are always DateTimeImmutable. A nullable property (?) means Steam omitted the field, never that decoding failed; where an absent field would be ambiguous the SDK raises a domain exception instead.

Returned by GetNewsForAppRequest.

Property Type Notes
appId int The app ID you asked for.
items list<NewsItem> The page, newest first, capped by count.
total int Items matching the filters up to endDate, ignoring count.

Each NewsItem carries:

Property Type Notes
id string Steam’s gid, unique per item.
title string Headline.
url string Link to the post.
isExternalUrl bool Steam’s own flag; false for posts hosted on the Steam store.
author ?string Byline; null when the feed names none.
contents string Body in the feed’s own markup, BBCode or HTML, or a flattened excerpt with maxLength.
feedLabel string Display name of the feed, such as Community Announcements.
feedName string The name feeds filters on, such as tf2_blog.
isCommunityAnnouncement bool Whether the post is an announcement from the game’s Steam community hub.
publishedAt DateTimeImmutable Publication time.
appId int The app the post belongs to: the base game for a DLC, or another app sharing the feed.
tags list<string> Tags on the post, such as patchnotes; empty when it has none.

Returned by UpToDateCheckRequest.

Property Type Notes
isUpToDate bool Whether the version is at least the one Steam requires.
isListable bool Steam’s version_is_listable, reported separately but so far always equal to isUpToDate.
requiredVersion ?int The version Steam requires; null when up to date.
message ?string The game’s own notice for an outdated server, free text; null when up to date.

Returned by GetCommunityBadgeProgressRequest.

Property Type Notes
questId int Steam’s quest ID; no public schema maps it to a name.
completed bool Whether the account finished this quest.

Returned by GetFriendListRequest.

Property Type Notes
steamId SteamId The friend’s 64-bit ID.
relationship FriendRelationship Relationship to the queried user.
friendSince DateTimeImmutable When the friendship was formed.

Returned by GetSchemaForGameRequest.

Property Type Notes
gameName ?string Game title. Null when Steam sends it blank or leaves it out.
gameVersion ?string Steam’s own version counter for the schema.
stats list<SchemaStat> Every stat the game publishes.
achievements list<SchemaAchievement> Every achievement the game publishes.

Each SchemaAchievement carries:

Property Type Notes
apiName string Stable API identifier, same one PlayerAchievement carries.
name string Display name, localised by language.
description ?string Localised description. Steam omits it on some achievements, hidden ones especially.
hidden bool Steam keeps the achievement secret until it is unlocked.
icon string Icon shown once unlocked.
iconGray string Icon shown while locked.

SchemaStat has apiName (string), name (?string, null for the many stats Steam ships unlabelled) and defaultValue (int|float).

Returned by GetServersAtAddressRequest.

Property Type Notes
address string IP and query port, as ip:queryport.
steamId SteamId The game server’s own 64-bit ID, not a player’s.
appId int The game the server runs.
gameDir string The game’s mod directory, such as tf or rust.
region ServerRegion Where the server lists itself.
isSecure bool Whether the server is VAC-secured.
isLan bool Whether the server is LAN-only.
gamePort int Port players connect to, which can differ from the query port.
spectatorPort ?int SourceTV port; null when Steam reports 0, as it does with SourceTV off.

Returned by GetGlobalAchievementPercentagesForAppRequest.

Property Type Notes
apiName string Stable API identifier, same one PlayerAchievement carries.
percent float Share of owners who unlocked it. Steam sends it as a string.

Returned by GetOwnedGamesRequest.

Property Type Notes
appId int Steam app ID.
playtimeForever int Total playtime, in minutes.
playtimeTwoWeeks ?int Playtime in the last two weeks, in minutes.
name ?string Game title (only with includeAppInfo).
imgIconUrl ?string Icon hash (only with includeAppInfo).
hasCommunityVisibleStats bool Game exposes community stats.

Returned by GetPlayerAchievementsRequest.

Property Type Notes
steamId SteamId The player’s 64-bit ID.
gameName string Game title.
achievements list<PlayerAchievement> Per-achievement state.

Each PlayerAchievement carries:

Property Type Notes
apiName string Stable API identifier.
achieved bool Whether it is unlocked.
unlockedAt ?DateTimeImmutable Unlock time, null if locked.
name ?string Display name (needs language).
description ?string Description (needs language).

Returned by GetBadgesRequest.

Property Type Notes
badges list<Badge> Every badge the account has earned.
playerXp int Total experience on the account.
playerLevel int Steam community level.
xpNeededToLevelUp int Experience still missing for the next level.
xpNeededForCurrentLevel int Experience the current level started at.

Each Badge carries:

Property Type Notes
badgeId int Steam’s badge ID, unique only together with appId.
appId ?int App the badge belongs to, null outside trading cards.
level int Badge level.
completedAt DateTimeImmutable When the badge was earned.
xp int Experience the badge contributes to playerXp.
communityItemId ?string Community item ID, null outside trading cards.
borderColor ?int Steam’s border code, null outside trading cards.
scarcity int How many accounts hold this badge.

Returned by GetPlayerBansRequest.

Property Type Notes
steamId SteamId The player’s 64-bit ID.
isCommunityBanned bool Banned from Steam Community.
isVacBanned bool Has an active VAC ban.
numberOfVacBans int Total VAC bans on record.
numberOfGameBans int Total developer-issued game bans.
daysSinceLastBan int Days since the most recent ban.
economyBan EconomyBan Trade/market ban status.

Returned by GetPlayerSummariesRequest.

Property Type Notes
steamId SteamId The player’s 64-bit ID.
personaName string Current display name.
profileUrl string Public profile URL.
avatarUrl string 32×32 avatar.
avatarMediumUrl string 64×64 avatar.
avatarFullUrl string 184×184 avatar.
avatarHash string Avatar content hash.
communityVisibility CommunityVisibility Whether the profile is visible to you.
hasCommunityProfile bool Player has set up a community profile.
commentPermission CommentPermission Who may comment on the profile.
personaState PersonaState Online / away / offline, etc.
realName ?string Real name, if shared.
primaryClanId ?string Primary group ID, if any.
timeCreated ?DateTimeImmutable Account creation time, if exposed.
lastLogOff ?DateTimeImmutable Last logout, if exposed.
gameId ?string App ID currently being played.
gameExtraInfo ?string Title of the game being played.
gameServerIp ?string Game server address, if in-game.
countryCode ?string ISO country code, if shared.
stateCode ?string State/region code, if shared.
cityId ?int Steam city ID, if shared.

Returned by GetRecentlyPlayedGamesRequest.

Property Type Notes
totalCount int Unique games played in the last two weeks, ignoring count.
games list<RecentlyPlayedGame> Per-game playtime, capped by count.

Each RecentlyPlayedGame carries:

Property Type Notes
appId int Steam app ID.
name string Game title.
playtimeTwoWeeks int Playtime in the last two weeks, in minutes.
playtimeForever int Total playtime, in minutes.
imgIconUrl string Icon hash.
playtimeWindowsForever int Total playtime on Windows, in minutes.
playtimeMacForever int Total playtime on macOS, in minutes.
playtimeLinuxForever int Total playtime on Linux, in minutes.
playtimeDeckForever int Total playtime on Steam Deck, in minutes.

Returned by GetSdrConfigRequest.

Property Type Notes
revision int Valve’s revision of the network map, the same for every app ID.
pointsOfPresence array<string, SdrPointOfPresence> Keyed by each point of presence’s code.

Each SdrPointOfPresence carries:

Property Type Notes
code string Valve’s short code, such as waw or bom2.
description string Location, and the hosting provider where it is not Valve.
latitude float As Valve sends it.
longitude float As Valve sends it.
aliases list<string> Other codes that name the same point of presence.
relays list<SdrRelay> Empty for a point of presence that only routes.

SdrRelay has ipv4 (string), and minPort and maxPort (int), the ends of the port range it answers on.

Returned by GetUserGroupListRequest.

Property Type Notes
gid string Steam group ID.

Returned by GetUserStatsForGameRequest.

Property Type Notes
steamId SteamId The player’s 64-bit ID.
gameName string Game title.
stats list<UserStat> Numeric stats.
achievements list<UserStatAchievement> Achievement flags.

UserStat has name (string) and value (int|float). UserStatAchievement has name (string) and achieved (bool).

Returned by GetSupportedApiListRequest.

Property Type Notes
name string As Steam sends it; a game’s own interface carries the app ID, as in IGCVersion_440.
methods list<WebApiMethod> Each version of a method is its own entry.

Each WebApiMethod carries:

Property Type Notes
name string Method name, such as GetPlayerSummaries.
version int The vN in the method’s path.
httpMethod string GET or POST, as Steam sends it.
description ?string null where Steam has none.
parameters list<WebApiParameter> Empty for a method that takes none.

Each WebApiParameter carries:

Property Type Notes
name string As Steam sends it, array notation such as publishedfileids[0] included.
type string Steam’s type name, such as uint64, {enum} or {message}.
isOptional bool Whether Steam marks the parameter optional.
description ?string null where Steam has none, or sends it empty.

Five of these mirror Steam’s wire values; CommentPermission and EconomyBan do not, and those are the two worth reading before you match on them.

Backed by string — Everyone ('everyone'), Nobody ('nobody'), FriendsOnly ('friends_only'). Steam sends commentpermission as an integer and omits it entirely for the friends-only case, so these backing values are the SDK’s own vocabulary rather than the wire values. Use fromApiValue() to map from a raw payload.

Backed by int — Hidden (1), FriendsOnly (2), Visible (3). Steam’s own communityvisibilitystate codes; Valve documents only 1 and 3, but 2 comes back for profiles set to friends only.

Backed by string — None ('none'), Probation ('probation'), Banned ('banned'), Unknown ('unknown'). Steam documents only none and probation before trailing off with “and so forth” — banned is observed on live accounts but undocumented, so the value set is provably open.

Backed by string — All ('all'), Friend ('friend'). The values Steam accepts on the relationship query parameter.

Backed by string, using Steam’s codes for the l query parameter. They are not ISO codes, so five cases are named for the language and backed by Valve’s spelling of it:

Case Value
ChineseSimplified 'schinese'
ChineseTraditional 'tchinese'
Korean 'koreana'
PortugueseBrazil 'brazilian'
SpanishLatinAmerican 'latam'

The other twenty-five back onto their own name lowercased: Arabic, Bulgarian, Czech, Danish, Dutch, English, Finnish, French, German, Greek, Hungarian, Indonesian, Italian, Japanese, Norwegian, Polish, Portuguese, Romanian, Russian, Spanish, Swedish, Thai, Turkish, Ukrainian, Vietnamese.

Set one per call, or once on SteamConfig.

Backed by int, using Steam’s own personastate codes.

Case Value
Offline 0
Online 1
Busy 2
Away 3
Snooze 4
LookingToTrade 5
LookingToPlay 6

Backed by int, using Steam’s region codes, which a game server sets with sv_region.

Case Value
World -1
UsEast 0
UsWest 1
SouthAmerica 2
Europe 3
Asia 4
Australia 5
MiddleEast 6
Africa 7