[h4]Submitting requests[/h4] All requests should be sent using HTTP 1.1 GET or POST using a TLS secure connection. The Content-Type should be "application/x-www-form-urlencoded" and the POST parameters should be in the body of the request in standard form urlencoding format. …
Please review our documentaion on [doclink=features/microtransactions#3]Anticpating Fraud[/doclink] and ensure that you've taken steps to prevent the most common types of fraud. [/list] [section=status_values]Appendix A: Status Values[/section] These are the possible status values returned by the [webapi]ISteamMicroTxn[/webapi] Web API. …
[subsection]Header File[/subsection] We first define a structure to hold our stats data received from steam, define stat types in a handy enum and then provide a macro for creating stats objects. This data maps directly to what is found on the [url=https://partner.steamgames.com/apps/stats/]Stats Configuration[/url] page. [code=cpp] #define _STAT_ID( id,type,name ) { id, type, name, 0, 0, 0, 0 } enum EStatTypes { STAT_INT = 0, STAT_FLOAT = 1, STAT_AVGRATE = 2, }; struct Stat_t { int m_ID; EStatTypes m_eStatType; const char *m_pchStatName; int m_iValue; float m_flValue; float m_flAvgNumerator; float m_flAvgDenominator; }; [/code] Next we define a helper class that will wrap all of the Steam Stats API calls as well as creating all of the [doclink=sdk/api#callbacks]Steam callbacks[/doclink]. …
[/b] These are separate tax rates that are applied depending on the content type of your sales. The royalty copyright rate will apply to US sourced sales on games and related DLCs. The royalty film rate will apply to US sourced sales on film and video. …
[/b] Please see the [doclink=#CurrentRates][/doclink] section below for the list of countries where this type of tax is collected and the applicable tax rate. The list is updated as new laws become effective. In all other countries, we are selling cross-border and are not required to collect. …
[section=SetItemPaymentRules]SetItemPaymentRules[/section] [code=http]POST https://partner.steam-api.com/IWorkshopService/SetItemPaymentRules/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=GetItemDailyRevenue]GetItemDailyRevenue[/section] [code=http]GET https://partner.steam-api.com/IWorkshopService/GetItemDailyRevenue/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=SetVolume]SetVolume[/subsection] [code=cpp]void SetVolume( float flVolume );[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]flVolume[/b][/td][td]float[/td][td]The volume percentage to set from [b]0.0[/b] to [b]1.0[/b].…
[subsection=VolumeHasChanged_t]VolumeHasChanged_t[/subsection] [table] [tr][th]Name[/th][th]Type[/th][th]Description[/th][/tr] [tr][td][b]m_flNewVolume[/b][/td][td]float[/td][td][/td][/tr] [/table] [section=enums]Enums[/section] These are enums which are defined for use with ISteamMusic. …
Using it, you can: [list] [*] Define the initial statistics and achievements [*] Add additional stats and achievements [*] Update achievement names, descriptions, and icons [*] Update statistic parameters and constraints (max/min values, moving-average window sizes, etc) [/list] Stats have the following properties: [list] [*] [b]ID[/b] - An automatically-generated numerical ID for each stat. [*] [b]Type[/b] - The type of this Stat - INT, FLOAT, or [doclink=#AVGRATE]AVGRATE[/doclink]. [*] [b]API Name[/b] - The string used to access this stat using the API. [*] [b]Set By[/b] - Sets who can modify the stat. …
The Steam Game Overlay will display a notification panel to the user. [/list] [subsection=AVGRATE]The AVGRATE stat type[/subsection] This type of stat provides some unique and very useful functionality, but it requires a little bit more detail to explain. …
[subsection]Community Tabs[/subsection] Community hubs are organized into different tabs based on the type of content they contain. By default, these tabs will show the most popular content posted over the previous week. [list] [*][b]All[/b] - The front page of your hub. …
These settings control the features that your different group member types are able to use. You can access these permissions from the Hub Admin panel by selecting [i]Edit Group Permissions[/i] [*][b]Adding moderators[/b] Once you have a good idea of what features are accessible by which member types, you'll want to promote other members of your team. …
When your official configurations have been posted they will appear in the "Custom Configuration" section: [docimg=steamworks_steam_input_branch_settings.png]steamworks_steam_input_branch_settings.png[/docimg] For each configuration you can get a direct link, see what controller type it is for, control which beta branches it is available on, or remove it entirely. If you create a new official configuration, you can use the remove / add functions in this section to replace an existing one. …
[docimg=steamworks_steam_input_optin_settings.png]steamworks_steam_input_optin_settings.png[/docimg] Checking these boxes will cause those controller types to make use of Steam Input rather than their standard gamepad input protocols. [subsection]Updating your official configurations[/subsection] There are two ways to update your configuration. …
[docimg=BundlePurchaseOption2.jpg]BundlePurchaseOption2.jpg[/docimg] There are two types of Bundles to handle common scenarios: [olist] [*] [b]Complete The Set[/b] - Customers that purchase this type of Bundle will pay for, and receive, just the items in that bundle that they don't already have in their Steam library. …
You must enter a name, a discount, the list of packages to include, and pick the type of bundle. Note that you need the "Manage pricing and discounts" permission for any game you wish to add to a bundle. …
[section=AuthenticateUser]AuthenticateUser[/section] [code=http]POST https://partner.steam-api.com/ISteamUserAuth/AuthenticateUser/v1/[/code] [table] [tr][th]Name[/th][th]Type[/th][th]Required[/th][th]Description[/th][/tr] [tr][td][b]steamid[/b][/td][td]uint64[/td][td]✔[/td][td]Should be the users steamid, unencrypted.…
[/td][/tr] [/table] [section=AuthenticateUserTicket]AuthenticateUserTicket[/section] [code=http]GET https://partner.steam-api.com/ISteamUserAuth/AuthenticateUserTicket/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[/td][/tr] [tr][td][b]appid[/b][/td][td]uint32[/td][td]✔[/td][td]appid of game[/td][/tr] [tr][td][b]ticket[/b][/td][td]string[/td][td]✔[/td][td]Convert the binary ticket data from GetAuthTicketForWebApi into a hexadecimal string and pass that string in as this parameter.…
This document describes where various types of events can appear. Events are your communication channel with your players and prospective players on Steam. You can author a single event with images and metadata attached to it, and it will automatically be pushed out to all the relevant locations across Steam. …
Steam players have the ability to personalize the games and event types they will see. They can increase or decrease the frequency of events about games that appear in their 'What's New' section. To present the best event to your fan on their home, you need to be mindful of when older events should no longer appear in this section. …
[section=CreateSession]CreateSession[/section] [code=http]POST https://partner.steam-api.com/IGameNotificationsService/CreateSession/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.…
[b]Example Response:[/b] [code=xml] { "response": { } } [/code] [b]Calling Example:[/b] [code] { "sessionid": "10" } [/code] [section=DeleteSessionBatch]DeleteSessionBatch[/section] [code=http]POST https://partner.steam-api.com/IGameNotificationsService/DeleteSessionBatch/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.…
Do not pass the App ID of the workshop item creation tool if that is a separate App ID. [*] [apitype]ISteamRemoteStorage::EWorkshopFileType[/apitype] is an enumeration type that defines how the shared file will be shared with the community. The valid values are: [list] [*] [apitype]ISteamRemoteStorage::k_EWorkshopFileTypeCommunity[/apitype] - This file type is used to describe files that will be uploaded by users and made available to download by anyone in the community. Common usage of this would be to share user created mods. [*] [apitype]ISteamRemoteStorage::k_EWorkshopFileTypeMicrotransaction[/apitype] - This file type is used to describe files that are uploaded by users, but intended only for the game to consider adding as official content. …
[section=ItemVoteSummary]ItemVoteSummary[/section] [code=http]POST https://partner.steam-api.com/ISteamPublishedItemVoting/ItemVoteSummary/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=UserVoteSummary]UserVoteSummary[/section] [code=http]POST https://partner.steam-api.com/ISteamPublishedItemVoting/UserVoteSummary/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.…
. [*] [api]steamnetworkingtypes[/api] is a header that has many common types and utilities. [*] [doclink=features/multiplayer/steamdatagramrelay]Steam Datagram Relay[/doclink] is a service for relaying your game traffic over the Valve backbone. …
This API works best when used with [doclink=features/multiplayer/matchmaking][/doclink], depending on the types of packets you could route everything through one player that is acting as the host (typically the lobby owner) or game server, or send everything out directly to each player. …
[section]Creating[/section] To distribute your dedicated game server through Steam, there are a few necessary configurations to be made. [olist] [*] Create a new App ID of type TOOL that will be used solely for the dedicated server for the game. You can do this yourself by visiting the "All Associated Packages, DLC, Demos and Tools" section for your app and clicking "Create new Tool" button. [*] Inside that new App, click Edit Steamworks Settings. …
[section]Releasing[/section] Your dedicated server has a release checklist similar to other types of products in Steamworks. You'll need to complete the required items listed on the right-hand side of your app landing page for the tool. …
[section=GetAllApprovalRequests]GetAllApprovalRequests[/section] [code=http]GET https://partner.steam-api.com/IPublishedFileModerationService/GetAllApprovalRequests/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=ProcessApprovalRequest]ProcessApprovalRequest[/section] [code=http]POST https://partner.steam-api.com/IPublishedFileModerationService/ProcessApprovalRequest/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]Configuring Location of Broadcast Player[/section] By default, broadcasts will appear at the very top of your sale page. But you can add a 'broadcast' type section to your page (further instructions below) to display livestreams in a specific spot on your page (if, for example, you wish to show more information above the broadcast player). This 'broadcast' type section will automatically include livestreams from games that are part of your sale and from specific accounts that you approve. …
The developer can upload configuration for multiple different controller types -- such as PlayStation 4 controller, Steam Controller, and Xbox 360/One controllers, and on the first run, Steam will detect your device and select the appropriate configuration. [callout=red] [b]NOTE:[/b] By default, all configurations for controller models other than the one you're currently using are hidden, but you can select "Show Other Controller Types" to force them to appear. It generally isn't a good idea to try to use a configuration meant for another physical device, however. …
This is important for a few reasons: [list] [*]This categorization will not only impact [b]where and how[/b] the event shows up, but also help players understand the event’s[b] functional context[/b]. Not every type of event needs to be presented in the same way to players, so we’ve designed the system to accommodate everything from small patch notes to the biggest update of the year. [*]Some types of events (such as livestreams or in-game discounts) have end dates, so selecting that type of event will allow you to specify when the promotion ends, and prompt the event to stop appearing. …
[subsection]Editor[/subsection] Once you've picked a category, you'll find a robust set of tools to create and customize your event. This includes a new type of header image at the top of your event (which gets used in a few other places), and a snappy preview mode that lets you quickly switch between editing and previewing your event detail page. …