Steamworks Documentation
ISteamUser Interface
Used to access information and interact with users.

See IPlayerService for additional methods.

For more info on how to use the Steamworks Web API please see the Web API Overview.

CheckAppOwnership

GET https://partner.steam-api.com/ISteamUser/CheckAppOwnership/v2/
NameTypeRequiredDescription
keystringSteamworks Web API publisher authentication key.
steamiduint64SteamID of user
appiduint32AppID to check for ownership

Checks if the specified user owns the app.

The JSON response will contain the following fields:

NameTypeDescription
ownsappboolIndicates if the user is the actual owner or the app.
permanentboolWhether the user permanently owns your app. Not true for ownership via Family Sharing, free weekends or PC Café program
timestampstringTime that the app was acquired.
ownersteamiduint64Indicates the true owner if user is accessing this app via Family Sharing. Otherwise will be the same steamID passed in.
sitelicenseboolIndicates if user is accessing this app through the PC Cafe program.

This method has previous versions which are no longer officially supported. They will continue to be usable but it's highly recommended that you use the latest version.
Change history:
  • Version 2 - Adds element sitelicense to the response.

NOTE: This call requires the publisher API key that owns the specified App ID to use this method. As such this API MUST be called from a secure server, and can never be used directly by clients!

GetAppPriceInfo

GET https://partner.steam-api.com/ISteamUser/GetAppPriceInfo/v1/
NameTypeRequiredDescription
keystringSteamworks Web API publisher authentication key.
steamiduint64SteamID of user
appidsstringComma-delimited list of appids (max: 100)

NOTE: This call requires a publisher API key to use this method. As such this API MUST be called from a secure server, and can never be used directly by clients!

Example Response:
{ "price_info": { "220": { "packageid": 36, "currency": "USD", "initial_price": 999, "final_price": 999, "discount_percent": 0 } } }

GetDeletedSteamIDs

GET https://partner.steam-api.com/ISteamUser/GetDeletedSteamIDs/v1/
NameTypeRequiredDescription
keystringSteamworks Web API publisher authentication key.
rowversionuint64An unsigned 64-bit value used to page through deleted accounts. Pass 0 when calling this API for the first time, then pass the value returned from the previous call for each additional request. This value will need to be stored on your server for future calls.

You can use GetDeletedSteamIDs to retrieve a list of deleted accounts that owned your game(s) before deletion. This API was created to allow for the deletion of user related data for GDPR and other personal information related purposes.

The provided Steamworks Publisher Key is used for both authentication and to generate the list of appids to check against.

GetFriendList

GET https://partner.steam-api.com/ISteamUser/GetFriendList/v1/
NameTypeRequiredDescription
keystringSteamworks Web API user authentication key.
steamiduint64SteamID of user
relationshipstringrelationship type (ex: friend)

GetPlayerBans

GET https://partner.steam-api.com/ISteamUser/GetPlayerBans/v1/
NameTypeRequiredDescription
keystringSteamworks Web API user authentication key.
steamidsstringComma-delimited list of SteamIDs

GetPlayerSummaries

GET https://partner.steam-api.com/ISteamUser/GetPlayerSummaries/v2/
NameTypeRequiredDescription
keystringSteamworks Web API user authentication key.
steamidsstringComma-delimited list of SteamIDs (max: 100)

NOTE: This call should only be used if your website needs to display information about a user. If your game client needs any of this information, please use the client APIs instead.

This method has previous versions which are no longer officially supported. They will continue to be usable but it's highly recommended that you use the latest version.
Change history:
  • Version 2 - Removes element names from arrays

The response from the call will look something like this:

"response":{ "players":[ { "steamid":"77561198355051011", "communityvisibilitystate":1, "profilestate":1, "personaname":"Mister Manager", "lastlogoff":1556305001, "profileurl":"https://steamcommunity.com/profiles/77561198355051011/", "avatar":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/32/32f70a383a437d03af91d2f01a0776adf75201b5.jpg", "avatarmedium":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/32/32f70a383a437d03af91d2f01a0776adf75201b5_medium.jpg", "avatarfull":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/32/32f70a383a437d03af91d2f01a0776adf75201b5_full.jpg", }, { "steamid":"77561197978236369", "communityvisibilitystate":3, "profilestate":1, "personaname":"Olive The Dog", "lastlogoff":1556239336, "profileurl":"https://steamcommunity.com/id/olive_the_dog/", "avatar":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/41/555d2fbb879593c0565ce0489428a09c019feffa.jpg", "avatarmedium":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/41/555d2fbb879593c0565ce0489428a09c019feffa_medium.jpg", "avatarfull":"https://steamcdn-a.akamaihd.net/steamcommunity/public/images/avatars/41/555d2fbb879593c0565ce0489428a09c019feffa_full.jpg", } ] }

GetPublisherAppOwnership

GET https://partner.steam-api.com/ISteamUser/GetPublisherAppOwnership/v3/
NameTypeRequiredDescription
keystringSteamworks Web API publisher authentication key.
steamiduint64SteamID of user


This method has previous versions which are no longer officially supported. They will continue to be usable but it's highly recommended that you use the latest version.
Change history:
  • Version 3 - Adds element sitelicense to the response

The response from the call will look something like this:

"appownership":{ "apps":[ { "appid":60, "ownsapp":true, "permanent":true, "timestamp":"2005-04-03T17:50:29Z", "ownersteamid":"76561197978236369", "sitelicense":"false" }, { "appid":220, "ownsapp":false, "permanent":false, "timestamp":"NIL", "ownersteamid":"0", "sitelicense":"true" } ] }

The JSON response will contain the following fields:

NameTypeDescription
appiduint32AppID associated with your WebAPI key
ownsappboolWhether the user currently owns your app. Will be true for ownership via purchases, CD-keys, Family Sharing, free weekends or PC Café program
permanentboolWhether the user permanently owns your app. Not true for ownership via Family Sharing, free weekends, or PC Café program
timestampstringGMT time for when the user first accquired the appID
ownersteamiduint64Indicates the true owner if user is accessing this app via Family Sharing. Otherwise will be the same steamID passed in
sitelicenseboolIndicates if user is accessing this app through the PC Cafe program

NOTE: This call requires a publisher API key to use this method. As such this API MUST be called from a secure server, and can never be used directly by clients!

GetPublisherAppOwnershipChanges

GET https://partner.steam-api.com/ISteamUser/GetPublisherAppOwnershipChanges/v1/
NameTypeRequiredDescription
keystringSteamworks Web API publisher authentication key.
packagerowversionstringThe unsigned 64-bit row version to read package changes from. The row version of data read up to will be returned for use in future calls.
cdkeyrowversionstringThe unsigned 64-bit row version to read CD Key changes from. The row version of data read up to will be returned for use in future calls.

This method can be used to determine what SteamIDs have ownership changes starting from a particular package or key row version number. From the list of SteamIDs returned, a call to GetPublisherAppOwnership can then return the associated ownership data for the applications in the group associated with the key passed in. A partner may wish to track this data in conjunction with linked Steam Accounts to better understand the state of product ownership on Steam.

To begin, make a call to GetPublisherAppOwnershipChanges passing in packagerowversion and cdkeyrowversion with the values of 0 (zero). The response from the call will look something like this:

"ownershipchanges": { "steamids": [ { "steamid": "76561198114498811" }, { "steamid": "76561198114498812" }, ... ], "packagerowversion": "12448390228", "cdkeyrowversion": "49857241147", "moredata": true }

The JSON response will contain the following fields:

NameTypeDescription
steamids/steamidstringThe list of SteamIDs for any accounts that have changed since the provided row versions. Up to 10,000 SteamIDs will be returned per call.
packagerowversionstringThe package row version that matches the last SteamID returned. Store this for future calls to GetPublisherAppOwnershipChanges
cdkeyrowversionstringThe cd key row version that matches the last SteamID returned. Store this for future calls to GetPublisherAppOwnershipChanges
moredataboolIndicates if more and newer data is available.

After this first call returns:
  1. Make a call to GetPublisherAppOwnership for each SteamID to get the actual ownership per AppID. Store or use that data as needed.
  2. Once all the SteamIDs have been processed, check the value of moredata. If it is true, make a new call to GetPublisherAppOwnershipChanges passing in the packagerowversion and cdkeyrowversion as returned from the previous call to GetPublisherAppOwnershipChanges.
  3. Repeat Step 1 and 2 until moredata returns false.
  4. Store the final packagerowversion and cdkeyrowversion values for use in future GetPublisherAppOwnershipChanges calls (e.g. 24 hours later) instead of starting at 0 (zero) again.

NOTE: This call requires a publisher API key to use this method. As such this API MUST be called from a secure server, and can never be used directly by clients!

GetUserGroupList

GET https://partner.steam-api.com/ISteamUser/GetUserGroupList/v1/
NameTypeRequiredDescription
keystringSteamworks Web API publisher authentication key.
steamiduint64SteamID of user

ResolveVanityURL

GET https://partner.steam-api.com/ISteamUser/ResolveVanityURL/v1/
NameTypeRequiredDescription
keystringSteamworks Web API user authentication key.
vanityurlstringThe vanity URL to get a SteamID for
url_typeint32The type of vanity URL. 1 (default): Individual profile, 2: Group, 3: Official game group