[list] [*] The specified stat exists in App Admin on the Steamworks website, and the changes are published. [*] [api]ISteamGameServerStats::RequestUserStats[/api] has completed and successfully returned its callback. [*] The type passed to this function must match the type listed in the App Admin panel of the Steamworks website. [/list] [subsection=RequestUserStats]RequestUserStats[/subsection] [code=cpp]SteamAPICall_t RequestUserStats( CSteamID steamIDUser );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]steamIDUser[/b][/td][td][apitype]steam_api::CSteamID[/apitype][/td][td]The Steam ID of the user to request the stats for.…
[list] [*] The specified stat exists in App Admin on the Steamworks website, and the changes are published. [*] [api]ISteamGameServerStats::RequestUserStats[/api] has completed and successfully returned its callback for the specified user. [*] The type passed to this function must match the type listed in the App Admin panel of the Steamworks website. [*] The stat must be allowed to be set by game server. …
[/list] [h4]Steam Overlay / Big Picture web browser:[/h4] [list] [*] Same as Standard Web Browser with no initial sign-in step; user cannot change account [/list] [h4]In-game web browser with Steamworks API authentication cookie:[/h4] [list] [*] If wallet currency does not match, immediate redirect to return url with result code indicating mismatch [*] Web page displays notice to use the Steam Overlay to authorize the purchase [*] Steam Overlay will activate automatically with a purchase/cancel dialog box [*] Overlay closes, flow continues as Standard Web Browser after user selects Purchase or Cancel [/list] [subsection]Example HTML[/subsection] [code] <form action="https://store.steampowered.com/itemcart/checkout" method="post"> <input type="hidden" name="appid" value="234560"> <input type="hidden" name="cart" value="1001,1006*2"> <input type="hidden" name="total" value="USD499"> <input type="hidden" name="sandbox" value="0"> <input type="hidden" name="return" value="http://mystore.com/checkout.php?fromsteam=1&cartid=BA13522FE31&result=[RESULT]&orderid=[ORDERID]&steamid=[STEAMID]&name=[USERNAME]&cc=[CURRENCY]&auth=[AUTH]"> <input type="hidden" name="auth" value="9a38954f503bf38a16024a9ae9328e8fa780f5be"> <input type="hidden" name="lang" value="en"> <input type="image" src="checkout.png" alt="Checkout"> </form> [/code] [list] [*] appid - is your App ID number. [*] cart - is item definition index numbers separated by commas, with optional xN or *N quantity suffix. …
[/td][/tr] [/tr] [/table] AddItem is used to add new items directly in a user's inventory. For each itemdef, an instance of that type is created and added to the target account. Items of type 'bundle' or 'generator' are unpacked at the time they are added. The response message provides information about the item or items that were actually inserted in the inventory. …
[/td][/tr] [/table] Structure of the [code-inline]updates[/code-inline] property: [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]itemid[/b][/td][td]uint64[/td][td]✔[/td][td]The id of the item being modified.…
Individual fields for CPartnerFinancials_SalesResult will only be filled for relevant line_item_type and package_sale_type values, demarcated below via the Package, MicroTxn, and CD-Key columns. [b][u]How to determine a CPartnerFinancials_SalesResult Category[/u][/b] [b]Package:[/b] line_item_type = "Package" and package_sale_type = "Steam" [b]MicroTxn:[/b] line_item_type = "MicroTxn" [b]CD-Key:[/b] line_item_type = "Package" and package_sale_type = "Retail" [b][u]Identifying Fields[/u][/b] Each CPartnerFinancials_DetailedSalesResult entry has within it a set of identifying fields (eg. packageid, appid, country_code, etc.) in addition to aggregated values (eg. gross_units_sold, gross_units_returned, gross_sales_usd etc.) …
Equivalent to "ItemID" from the old CSV feed.[/td][/tr] [tr][td]✔[/td][td][b]package_sale_type[/b][/td][td]string[/td][td]✔[/td][td][/td][td]✔[/td][td]The type of redemption, Steam sale or Retail key. Max size - 64 characters.…
[table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]m_nAppID[/b][/td][td][apitype]steam_api::AppId_t[/apitype][/td][td]App ID of the DLC that was installed.…
[table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]m_unAppID[/b][/td][td][apitype]steam_api::AppId_t[/apitype][/td][td]AppID that is in a timed trial.…
[subsection=BReleaseSteamPipe]BReleaseSteamPipe[/subsection] [code=cpp]bool BReleaseSteamPipe( HSteamPipe hSteamPipe );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]hSteamPipe[/b][/td][td][apitype]ISteamClient::HSteamPipe[/apitype][/td][td]The pipe to release.…
[subsection=CreateLocalUser]CreateLocalUser[/subsection] [code=cpp]HSteamUser CreateLocalUser( HSteamPipe *phSteamPipe, EAccountType eAccountType );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]phSteamPipe[/b][/td][td][apitype]ISteamClient::HSteamPipe[/apitype] *[/td][td][/td][/tr] [tr][td][b]eAccountType[/b][/td][td][apitype]steam_api::EAccountType[/apitype][/td][td][/td][/tr] [/table] Create a Steam user that won't be shared with anyone else. …
[/td][/tr] [/table] Here's a description of the various activation types: [table] [tr][th]Activation Type[/th][th]Description[/th][/tr] [tr][td]Regular Press[/td][td]Regular Press Activator is the default type. …
[/td][/tr] [/table] These settings are specific to certain activation types: [table] [tr][th]Name[/th][th]Values[/th][th]Activation Type[/th][th]Description[/th][/tr] [tr][td]Interruptable[/td][td]Off, On[/td][td]Regular Press, Release Press[/td][td]Interruptable activators can be paused or stopped by other activators. …
[table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]m_SteamID[/b][/td][td][apitype]steam_api::CSteamID[/apitype][/td][td]The Steam ID of the user that is wanting to connect.…
This information can be used to determine which server is bad. [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]m_eResult[/b][/td][td][apitype]steam_api::EResult[/apitype][/td][td]The result of the operation.…
[section=EnumerateUserSubscribedFiles]EnumerateUserSubscribedFiles[/section] [code=http]POST https://partner.steam-api.com/ISteamRemoteStorage/EnumerateUserSubscribedFiles/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Steamworks Web API publisher authentication key.…
[section=SubscribePublishedFile]SubscribePublishedFile[/section] [code=http]POST https://partner.steam-api.com/ISteamRemoteStorage/SubscribePublishedFile/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Steamworks Web API publisher authentication key.…
[subsection=ESteamNetworkingIdentityType]enum ESteamNetworkingIdentityType[/subsection] Different types of identities that a remote host can have. Most of the time on Steam, this will be a CSteamID. …
[code] struct SteamNetworkingIdentity { /// Type of identity. ESteamNetworkingIdentityType m_eType; // // Get/Set in various formats. // void Clear(); bool IsInvalid() const; // Return true if we are the invalid type. …
[/td][/tr] [tr=k_ESteamHardwareDefaultConfigSteamFrame][td][b]k_ESteamHardwareDefaultConfigSteamFrame[/b][/td][td]7[/td][td]Steam Frame default configuration.[/td][/tr] [/table] [subsection=ESteamHardwareType]ESteamHardwareType[/subsection] Steam API call failure results returned by [api]ISteamUtils::IsRunningOnSteamHardware[/api]. [table] [tr][th]Name[/th][th]Value[/th][th]Description[/th][/tr] [tr=k_ESteamHardwareTypeNone][td][b]k_ESteamHardwareTypeNone[/b][/td][td]0[/td][td]Not playing on Steam hardware device.[/td][/tr] [tr=k_ESteamHardwareTypeSteamDeck][td][b]k_ESteamHardwareTypeSteamDeck[/b][/td][td]1[/td][td]Running on a Steam Deck.[/td][/tr] [tr=k_ESteamHardwareTypeSteamMachine][td][b]k_ESteamHardwareTypeSteamMachine[/b][/td][td]2[/td][td]Running on a Steam Machine.…
[subsection=CancelQuery]CancelQuery[/subsection] [code=cpp]void CancelQuery( HServerListRequest hRequest );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]hRequest[/b][/td][td][apitype]ISteamMatchmaking::HServerListRequest[/apitype][/td][td]The handle to the server list request.…
[/td][/tr] [tr=eNoServersListedOnMasterServer][td][b]eNoServersListedOnMasterServer[/b][/td][td]2[/td][td]Only for the internet query type, returned in response callback if no servers of this type match.[/td][/tr] [/table] [section=constants]Constants[/section] These are constants which are defined for use with ISteamMatchmakingServers. …
[section=DeleteLeaderboard]DeleteLeaderboard[/section] [code=http]POST https://partner.steam-api.com/ISteamLeaderboards/DeleteLeaderboard/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Steamworks Web API publisher authentication key.…
[section=ResetLeaderboard]ResetLeaderboard[/section] [code=http]POST https://partner.steam-api.com/ISteamLeaderboards/ResetLeaderboard/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Steamworks Web API publisher authentication key.…
Begin with a "start_index" of zero, and iterate if necessary if the user has more than "count" files. The response has two fields: [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]files[/b][/td][td]see below[/td][td]A list of file details[/td][/tr] [tr][td][b]total_files[/b][/td][td]uint32[/td][td]The total number of files the user has in Steam Cloud for your app.…
[subsection]Delete[/subsection] Example: [code] POST https://api.steampowered.com/ICloudService/Delete/v1/ HTTP/1.1 Host: api.steampowered.com Content-Type: application/x-www-form-urlencoded Content-Length: <body length> access_token=<token>&input_json={ "appid": "1234", "filename": "%25WinAppDataLocal%25Foobar%2FGamename%2Fcloud%2Fgames%2Fsave.sav" } [/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]access_token[/b][/td][td]string[/td][td]✔[/td][td]OAuth access token for the user[/td][/tr] [tr][td][b]appid[/b][/td][td]uint32[/td][td]✔[/td][td]Your App ID[/td][/tr] [tr][td][b]filename[/b][/td][td]string[/td][td]✔[/td][td]filename of the file to delete[/td][/tr] [/table] This API will delete the specified file from the user's Steam Cloud. …
[section=GetRecentlyPlayedGames]GetRecentlyPlayedGames[/section] [code=http]GET https://partner.steam-api.com/IPlayerService/GetRecentlyPlayedGames/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Steamworks Web API user authentication key.…
[section=GetSteamLevel]GetSteamLevel[/section] [code=http]GET https:/partner.steam-api.com/IPlayerService/GetSteamLevel/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Steamworks Web API user authentication key.…
For positional based leaderboards, use Ascending. For high-score, use Descending. [*]Display Type - Determines the types of data to be displayed with the leaderboard. Select from Numeric, Seconds or Milliseconds. [*]Writes - If this is set to Trusted, the leaderboard scores cannot be set by clients, and can only be set by via SetLeaderboardScore WebAPI. …
Once a leaderboard has been created, you can modify the sort method and display type for a leaderboard through the Game Admin. When FindOrCreateLeaderboard is called for an existing leaderboard, the sort method and display type parameters are ignored. …
[subsection=GetOPFSettings]GetOPFSettings[/subsection] [code=cpp]void GetOPFSettings( AppId_t unVideoAppID );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]unVideoAppID[/b][/td][td][apitype]steam_api::AppId_t[/apitype][/td][td]The video app ID to get the OPF details of.…
After receiving this you can use [api]ISteamVideo::GetOPFStringForApp[/api] to access the OPF details. [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]m_eResult[/b][/td][td][apitype]steam_api::EResult[/apitype][/td][td]The result of the operation. …
[/td][/tr] [tr][td][b]pchContentType[/b][/td][td]const char *[/td][td]Sets the value of the calls "content-type" http header.[/td][/tr] [tr][td][b]pubBody[/b][/td][td][apitype]steam_api::uint8[/apitype] *[/td][td]The raw POST body data to set.…
Setting this raw body makes it the only contents for the post, the [code-inline]pchContentType[/code-inline] parameter will set the "content-type" header for the request to inform the server how to interpret the body. …
To authenticate a user, redirect the user to [code]https://steamcommunity.com/oauth/login?response_type=token&client_id=client_id_here&state=whatever_you_want[/code] Adding [code-inline]&mobileminimal=1[/code-inline] to the above request is recommended for embedded browsers, as it removes some of the Steam site navigation UI that will not be relevant when the OAuth page is presented directly to a user within your game. If you include the state parameter, it will be passed back to the redirect URI after the user has confirmed or denied access. Note that the authorization code grant type is also supported, by using the response_type=code during login. If the user grants access, they will be redirected back to you at [code]http://redirect/uri/here#access_token=token_here&token_type=steam&state=whatever_you_want[/code] The token should be treated as an opaque string. …
[section=GetPlayerAchievements]GetPlayerAchievements[/section] [code=http]GET https://partner.steam-api.com/ISteamUserStats/GetPlayerAchievements/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Steamworks Web API user authentication key.…
[section=GetSchemaForGame]GetSchemaForGame[/section] [code=http]GET https://partner.steam-api.com/ISteamUserStats/GetSchemaForGame/v2/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]key[/b][/td][td]string[/td][td]✔[/td][td]Steamworks Web API user authentication key.…