steamutils 1.3.25 → 1.3.26
Sign up to get free protection for your applications and to get access to all the features.
- package/.idea/deployment.xml +21 -0
- package/.idea/steamutils.iml +1 -1
- package/.idea/vcs.xml +1 -1
- package/free_packages.json +10048 -10048
- package/index.js +62 -26
- package/package.json +1 -1
- package/protos/csgo/base_gcmessages_csgo.proto +547 -547
- package/protos/csgo/c_peer2peer_netmessages.proto +55 -55
- package/protos/csgo/clientmessages.proto +48 -48
- package/protos/csgo/connectionless_netmessages.proto +19 -19
- package/protos/csgo/cs_gameevents.proto +34 -34
- package/protos/csgo/cs_usercmd.proto +34 -34
- package/protos/csgo/cstrike15_gcmessages.proto +1402 -1402
- package/protos/csgo/cstrike15_usermessages.proto +596 -596
- package/protos/csgo/demo.proto +160 -160
- package/protos/csgo/econ_gcmessages.proto +228 -228
- package/protos/csgo/engine_gcmessages.proto +14 -14
- package/protos/csgo/enums_clientserver.proto +1529 -1529
- package/protos/csgo/fatdemo.proto +125 -125
- package/protos/csgo/gameevents.proto +120 -120
- package/protos/csgo/gcsdk_gcmessages.proto +323 -323
- package/protos/csgo/gcsystemmsgs.proto +242 -242
- package/protos/csgo/netmessages.proto +604 -604
- package/protos/csgo/network_connection.proto +126 -126
- package/protos/csgo/networkbasetypes.proto +244 -244
- package/protos/csgo/networksystem_protomessages.proto +17 -17
- package/protos/csgo/steamdatagram_messages_auth.proto +65 -65
- package/protos/csgo/steamdatagram_messages_sdr.proto +534 -534
- package/protos/csgo/steammessages.proto +597 -597
- package/protos/csgo/steammessages_base.proto +301 -301
- package/protos/csgo/steammessages_cloud.steamworkssdk.proto +68 -68
- package/protos/csgo/steammessages_gamenetworkingui.proto +61 -61
- package/protos/csgo/steammessages_helprequest.steamworkssdk.proto +22 -22
- package/protos/csgo/steammessages_oauth.steamworkssdk.proto +18 -18
- package/protos/csgo/steammessages_player.steamworkssdk.proto +254 -254
- package/protos/csgo/steammessages_publishedfile.steamworkssdk.proto +233 -233
- package/protos/csgo/steammessages_steamlearn.steamworkssdk.proto +357 -357
- package/protos/csgo/steammessages_unified_base.steamworkssdk.proto +30 -30
- package/protos/csgo/steamnetworkingsockets_messages.proto +205 -205
- package/protos/csgo/steamnetworkingsockets_messages_certs.proto +39 -39
- package/protos/csgo/steamnetworkingsockets_messages_udp.proto +75 -75
- package/protos/csgo/te.proto +259 -259
- package/protos/csgo/uifontfile_format.proto +13 -13
- package/protos/csgo/usercmd.proto +38 -38
- package/protos/csgo/usermessages.proto +721 -721
- package/protos/csgo/valveextensions.proto +17 -17
- package/protos/google/protobuf/descriptor.proto +281 -281
- package/protos/steam/clientmetrics.proto +45 -45
- package/protos/steam/content_manifest.proto +62 -62
- package/protos/steam/contenthubs.proto +41 -41
- package/protos/steam/encrypted_app_ticket.proto +10 -10
- package/protos/steam/enums.proto +444 -444
- package/protos/steam/enums_clientserver.proto +1539 -1539
- package/protos/steam/enums_productinfo.proto +13 -13
- package/protos/steam/htmlmessages.proto +1027 -1027
- package/protos/steam/offline_ticket.proto +8 -8
- package/protos/steam/renderer/rendermessages.proto +893 -893
- package/protos/steam/steamdatagram_messages_auth.proto +65 -65
- package/protos/steam/steamdatagram_messages_sdr.proto +533 -533
- package/protos/steam/steammessages_accounthardware.steamclient.proto +201 -201
- package/protos/steam/steammessages_appoverview.proto +187 -187
- package/protos/steam/steammessages_auth.steamclient.proto +435 -435
- package/protos/steam/steammessages_base.proto +332 -332
- package/protos/steam/steammessages_broadcast.steamclient.proto +759 -759
- package/protos/steam/steammessages_chat.steamclient.proto +1281 -1281
- package/protos/steam/steammessages_client_objects.proto +645 -645
- package/protos/steam/steammessages_clientlanp2p.proto +42 -42
- package/protos/steam/steammessages_clientmetrics.steamclient.proto +194 -194
- package/protos/steam/steammessages_clientnotificationtypes.proto +231 -231
- package/protos/steam/steammessages_clientserver.proto +392 -392
- package/protos/steam/steammessages_clientserver_2.proto +760 -760
- package/protos/steam/steammessages_clientserver_appinfo.proto +131 -131
- package/protos/steam/steammessages_clientserver_friends.proto +260 -260
- package/protos/steam/steammessages_clientserver_gameservers.proto +159 -159
- package/protos/steam/steammessages_clientserver_lbs.proto +70 -70
- package/protos/steam/steammessages_clientserver_login.proto +167 -167
- package/protos/steam/steammessages_clientserver_ucm.proto +205 -205
- package/protos/steam/steammessages_clientserver_uds.proto +124 -124
- package/protos/steam/steammessages_clientserver_ufs.proto +172 -172
- package/protos/steam/steammessages_clientserver_userstats.proto +80 -80
- package/protos/steam/steammessages_clientsettings.proto +168 -168
- package/protos/steam/steammessages_cloud.steamclient.proto +513 -513
- package/protos/steam/steammessages_contentsystem.steamclient.proto +115 -115
- package/protos/steam/steammessages_credentials.steamclient.proto +115 -115
- package/protos/steam/steammessages_datapublisher.steamclient.proto +116 -116
- package/protos/steam/steammessages_depotbuilder.steamclient.proto +118 -118
- package/protos/steam/steammessages_deviceauth.steamclient.proto +203 -203
- package/protos/steam/steammessages_econ.steamclient.proto +150 -150
- package/protos/steam/steammessages_friendmessages.steamclient.proto +168 -168
- package/protos/steam/steammessages_gamenetworking.steamclient.proto +32 -32
- package/protos/steam/steammessages_gamenetworkingui.proto +61 -61
- package/protos/steam/steammessages_gamenotifications.steamclient.proto +156 -156
- package/protos/steam/steammessages_gameservers.steamclient.proto +152 -152
- package/protos/steam/steammessages_hiddevices.proto +157 -157
- package/protos/steam/steammessages_inventory.steamclient.proto +224 -224
- package/protos/steam/steammessages_linkfilter.steamclient.proto +49 -49
- package/protos/steam/steammessages_lobbymatchmaking.steamclient.proto +33 -33
- package/protos/steam/steammessages_market.steamclient.proto +26 -26
- package/protos/steam/steammessages_marketingmessages.steamclient.proto +274 -274
- package/protos/steam/steammessages_offline.steamclient.proto +40 -40
- package/protos/steam/steammessages_parental.steamclient.proto +228 -228
- package/protos/steam/steammessages_parties.steamclient.proto +94 -94
- package/protos/steam/steammessages_partnerapps.steamclient.proto +138 -138
- package/protos/steam/steammessages_player.steamclient.proto +1060 -1060
- package/protos/steam/steammessages_publishedfile.steamclient.proto +813 -813
- package/protos/steam/steammessages_qms.steamclient.proto +125 -125
- package/protos/steam/steammessages_remoteclient.proto +99 -99
- package/protos/steam/steammessages_remoteclient_discovery.proto +235 -235
- package/protos/steam/steammessages_remoteclient_service.steamclient.proto +86 -86
- package/protos/steam/steammessages_remoteclient_service_messages.proto +217 -217
- package/protos/steam/steammessages_remoteplay.proto +976 -976
- package/protos/steam/steammessages_secrets.steamclient.proto +39 -39
- package/protos/steam/steammessages_shader.steamclient.proto +108 -108
- package/protos/steam/steammessages_site_license.steamclient.proto +128 -128
- package/protos/steam/steammessages_sitelicenseclient.proto +38 -38
- package/protos/steam/steammessages_siteserverui.proto +130 -130
- package/protos/steam/steammessages_star.steamclient.proto +64 -64
- package/protos/steam/steammessages_steamtv.steamclient.proto +630 -630
- package/protos/steam/steammessages_store.steamclient.proto +371 -371
- package/protos/steam/steammessages_storebrowse.steamclient.proto +402 -402
- package/protos/steam/steammessages_timedtrial.steamclient.proto +50 -50
- package/protos/steam/steammessages_twofactor.steamclient.proto +186 -186
- package/protos/steam/steammessages_unified_base.steamclient.proto +33 -33
- package/protos/steam/steammessages_unified_test.steamclient.proto +61 -61
- package/protos/steam/steammessages_useraccount.steamclient.proto +249 -249
- package/protos/steam/steammessages_vac.steamclient.proto +44 -44
- package/protos/steam/steammessages_video.steamclient.proto +171 -171
- package/protos/steam/steammessages_virtualcontroller.proto +138 -138
- package/protos/steam/steammessages_workshop.steamclient.proto +23 -23
- package/protos/steam/steamnetworkingsockets_messages.proto +205 -205
- package/protos/steam/steamnetworkingsockets_messages_certs.proto +39 -39
- package/protos/steam/steamnetworkingsockets_messages_udp.proto +75 -75
- package/protos/steam/webuimessages_base.proto +24 -24
- package/protos/steam/webuimessages_gamenotes.proto +21 -21
- package/protos/steam/webuimessages_steamengine.proto +32 -32
- package/protos/steam/webuimessages_storagedevicemanager.proto +110 -110
- package/protos/steam/webuimessages_systemmanager.proto +17 -17
- package/protos/steam/webuimessages_transport.proto +18 -18
- package/protos/steam/webuimessages_transportvalidation.proto +97 -97
- package/protos/webui/common.proto +5508 -5508
- package/protos/webui/common_base.proto +27 -27
- package/protos/webui/service_accountlinking.proto +27 -27
- package/protos/webui/service_accountprivacy.proto +42 -42
- package/protos/webui/service_auction.proto +97 -97
- package/protos/webui/service_authentication.proto +222 -222
- package/protos/webui/service_authenticationsupport.proto +74 -74
- package/protos/webui/service_broadcast.proto +562 -562
- package/protos/webui/service_chat.proto +11 -11
- package/protos/webui/service_chatroom.proto +810 -810
- package/protos/webui/service_chatusability.proto +107 -107
- package/protos/webui/service_clan.proto +41 -41
- package/protos/webui/service_clanchatrooms.proto +25 -25
- package/protos/webui/service_clanfaqs.proto +202 -202
- package/protos/webui/service_clientcomm.proto +150 -150
- package/protos/webui/service_clientmetrics.proto +63 -63
- package/protos/webui/service_cloud.proto +222 -222
- package/protos/webui/service_cloudconfigstore.proto +51 -51
- package/protos/webui/service_cloudgaming.proto +30 -30
- package/protos/webui/service_community.proto +365 -365
- package/protos/webui/service_econ.proto +134 -134
- package/protos/webui/service_embedded.proto +24 -24
- package/protos/webui/service_experimentservice.proto +6 -6
- package/protos/webui/service_fovasvideo.proto +15 -15
- package/protos/webui/service_friendmessages.proto +133 -133
- package/protos/webui/service_friendslist.proto +70 -70
- package/protos/webui/service_gamenotes.proto +15 -15
- package/protos/webui/service_helprequestlogs.proto +26 -26
- package/protos/webui/service_loyaltyrewards.proto +252 -252
- package/protos/webui/service_marketingmessages.proto +184 -184
- package/protos/webui/service_mobileapp.proto +18 -18
- package/protos/webui/service_mobileauth.proto +24 -24
- package/protos/webui/service_mobiledevice.proto +26 -26
- package/protos/webui/service_mobileperaccount.proto +31 -31
- package/protos/webui/service_news.proto +101 -101
- package/protos/webui/service_parental.proto +178 -178
- package/protos/webui/service_partnermembershipinvite.proto +29 -29
- package/protos/webui/service_partnerstorebrowse.proto +6 -6
- package/protos/webui/service_phone.proto +51 -51
- package/protos/webui/service_physicalgoods.proto +15 -15
- package/protos/webui/service_player.proto +885 -885
- package/protos/webui/service_promotioneventinvites.proto +50 -50
- package/protos/webui/service_promotionplanning.proto +72 -72
- package/protos/webui/service_publishedfile.proto +687 -687
- package/protos/webui/service_publishing.proto +119 -119
- package/protos/webui/service_quest.proto +127 -127
- package/protos/webui/service_salefeature.proto +315 -315
- package/protos/webui/service_saleitemrewards.proto +54 -54
- package/protos/webui/service_shoppingcart.proto +108 -108
- package/protos/webui/service_steamawards.proto +19 -19
- package/protos/webui/service_steamcharts.proto +75 -75
- package/protos/webui/service_steamengine.proto +36 -36
- package/protos/webui/service_steamlearn.proto +727 -727
- package/protos/webui/service_steamnotification.proto +84 -84
- package/protos/webui/service_steamtv.proto +495 -495
- package/protos/webui/service_steamvrvoicechat.proto +67 -67
- package/protos/webui/service_steamvrwebrtc.proto +48 -48
- package/protos/webui/service_storagedevicemanager.proto +104 -104
- package/protos/webui/service_store.proto +289 -289
- package/protos/webui/service_storeappsimilarity.proto +76 -76
- package/protos/webui/service_storebrowse.proto +73 -73
- package/protos/webui/service_storequery.proto +97 -97
- package/protos/webui/service_storesales.proto +15 -15
- package/protos/webui/service_storetopsellers.proto +44 -44
- package/protos/webui/service_systemmanager.proto +11 -11
- package/protos/webui/service_test_transporterror.proto +6 -6
- package/protos/webui/service_transportauth.proto +12 -12
- package/protos/webui/service_transportvalidation.proto +69 -69
- package/protos/webui/service_twofactor.proto +181 -181
- package/protos/webui/service_useraccount.proto +138 -138
- package/protos/webui/service_usergameactivity.proto +34 -34
- package/protos/webui/service_usergamenotes.proto +53 -53
- package/protos/webui/service_usernews.proto +68 -68
- package/protos/webui/service_userreviews.proto +96 -96
- package/protos/webui/service_video.proto +128 -128
- package/protos/webui/service_voicechat.proto +139 -139
- package/protos/webui/service_webrtc.proto +52 -52
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
@@ -1,402 +1,402 @@
|
|
1
|
-
import "steammessages_base.proto";
|
2
|
-
import "steammessages_unified_base.steamclient.proto";
|
3
|
-
import "enums_productinfo.proto";
|
4
|
-
import "enums.proto";
|
5
|
-
import "contenthubs.proto";
|
6
|
-
|
7
|
-
option cc_generic_services = true;
|
8
|
-
|
9
|
-
enum EStoreItemType {
|
10
|
-
k_EStoreItemType_Invalid = -1;
|
11
|
-
k_EStoreItemType_App = 0;
|
12
|
-
k_EStoreItemType_Package = 1;
|
13
|
-
k_EStoreItemType_Bundle = 2;
|
14
|
-
k_EStoreItemType_Mtx = 3;
|
15
|
-
k_EStoreItemType_Tag = 4;
|
16
|
-
k_EStoreItemType_Creator = 5;
|
17
|
-
k_EStoreItemType_HubCategory = 6;
|
18
|
-
}
|
19
|
-
|
20
|
-
enum EStoreAppType {
|
21
|
-
k_EStoreAppType_Game = 0;
|
22
|
-
k_EStoreAppType_Demo = 1;
|
23
|
-
k_EStoreAppType_Mod = 2;
|
24
|
-
k_EStoreAppType_Movie = 3;
|
25
|
-
k_EStoreAppType_DLC = 4;
|
26
|
-
k_EStoreAppType_Guide = 5;
|
27
|
-
k_EStoreAppType_Software = 6;
|
28
|
-
k_EStoreAppType_Video = 7;
|
29
|
-
k_EStoreAppType_Series = 8;
|
30
|
-
k_EStoreAppType_Episode = 9;
|
31
|
-
k_EStoreAppType_Hardware = 10;
|
32
|
-
k_EStoreAppType_Music = 11;
|
33
|
-
k_EStoreAppType_Beta = 12;
|
34
|
-
k_EStoreAppType_Tool = 13;
|
35
|
-
k_EStoreAppType_Advertising = 14;
|
36
|
-
}
|
37
|
-
|
38
|
-
enum EUserReviewScore {
|
39
|
-
k_EUserReviewScore_None = 0;
|
40
|
-
k_EUserReviewScore_OverwhelminglyNegative = 1;
|
41
|
-
k_EUserReviewScore_VeryNegative = 2;
|
42
|
-
k_EUserReviewScore_Negative = 3;
|
43
|
-
k_EUserReviewScore_MostlyNegative = 4;
|
44
|
-
k_EUserReviewScore_Mixed = 5;
|
45
|
-
k_EUserReviewScore_MostlyPositive = 6;
|
46
|
-
k_EUserReviewScore_Positive = 7;
|
47
|
-
k_EUserReviewScore_VeryPositive = 8;
|
48
|
-
k_EUserReviewScore_OverwhelminglyPositive = 9;
|
49
|
-
}
|
50
|
-
|
51
|
-
enum EStoreCategoryType {
|
52
|
-
k_EStoreCategoryType_Category = 0;
|
53
|
-
k_EStoreCategoryType_SupportedPlayers = 1;
|
54
|
-
k_EStoreCategoryType_Feature = 2;
|
55
|
-
k_EStoreCategoryType_ControllerSupport = 3;
|
56
|
-
k_EStoreCategoryType_CloudGaming = 4;
|
57
|
-
k_EStoreCategoryType_MAX = 5;
|
58
|
-
}
|
59
|
-
|
60
|
-
message StoreItemID {
|
61
|
-
optional uint32 appid = 1;
|
62
|
-
optional uint32 packageid = 2;
|
63
|
-
optional uint32 bundleid = 3;
|
64
|
-
optional uint32 tagid = 4;
|
65
|
-
optional uint32 creatorid = 5;
|
66
|
-
optional uint32 hubcategoryid = 6;
|
67
|
-
}
|
68
|
-
|
69
|
-
message StoreBrowseContext {
|
70
|
-
optional string language = 1;
|
71
|
-
optional int32 elanguage = 2 [(description) = "ELanguage"];
|
72
|
-
optional string country_code = 3 [(description) = "2-character country code; required"];
|
73
|
-
optional int32 steam_realm = 4 [(description) = "ESteamRealm"];
|
74
|
-
}
|
75
|
-
|
76
|
-
message StoreBrowseItemDataRequest {
|
77
|
-
optional bool include_assets = 1;
|
78
|
-
optional bool include_release = 2;
|
79
|
-
optional bool include_platforms = 3;
|
80
|
-
optional bool include_all_purchase_options = 4;
|
81
|
-
optional bool include_screenshots = 5;
|
82
|
-
optional bool include_trailers = 6;
|
83
|
-
optional bool include_ratings = 7;
|
84
|
-
optional int32 include_tag_count = 8 [(description) = "Count of tags to return, as tagids. Maximum 20."];
|
85
|
-
optional bool include_reviews = 9;
|
86
|
-
optional bool include_basic_info = 10 [(description) = "Include short description, publisher, developers"];
|
87
|
-
optional bool include_supported_languages = 11 [(description) = "includes the games support for languages: supported, full_audio, subtitles"];
|
88
|
-
optional bool include_full_description = 12;
|
89
|
-
optional bool include_included_items = 13 [(description) = "For packages and bundles, return the apps and packages included as well. Pass included_item_data_request for more details on the included items."];
|
90
|
-
optional .StoreBrowseItemDataRequest included_item_data_request = 14 [(description) = "The data to return for included items."];
|
91
|
-
}
|
92
|
-
|
93
|
-
message CStoreBrowse_GetItems_Request {
|
94
|
-
repeated .StoreItemID ids = 1;
|
95
|
-
optional .StoreBrowseContext context = 2;
|
96
|
-
optional .StoreBrowseItemDataRequest data_request = 3;
|
97
|
-
}
|
98
|
-
|
99
|
-
message StoreItem {
|
100
|
-
message RelatedItems {
|
101
|
-
optional uint32 parent_appid = 1 [(description) = "For DLC, Demos, etc, this is the main app."];
|
102
|
-
}
|
103
|
-
|
104
|
-
message IncludedItems {
|
105
|
-
repeated .StoreItem included_apps = 1 [(description) = "All apps included, if this is a package or bundle"];
|
106
|
-
repeated .StoreItem included_packages = 2 [(description) = "All packages included, if this is a bundle"];
|
107
|
-
}
|
108
|
-
|
109
|
-
message Categories {
|
110
|
-
repeated uint32 supported_player_categoryids = 2 [(description) = "Categories like Single Player, Multiplayer, MMO"];
|
111
|
-
repeated uint32 feature_categoryids = 3 [(description) = "Categories indicating supported features like Steam Cloud, VAC, Achievements, etc"];
|
112
|
-
repeated uint32 controller_categoryids = 4 [(description) = "Categories indicating controller support and full controller support."];
|
113
|
-
}
|
114
|
-
|
115
|
-
message Reviews {
|
116
|
-
message StoreReviewSummary {
|
117
|
-
optional uint32 review_count = 1;
|
118
|
-
optional int32 percent_positive = 2 [(description) = "0-100"];
|
119
|
-
optional .EUserReviewScore review_score = 3 [default = k_EUserReviewScore_None];
|
120
|
-
optional string review_score_label = 4 [(description) = "A string like 'Mixed', 'Negative', 'Overwhelmingly Positive'"];
|
121
|
-
}
|
122
|
-
|
123
|
-
optional .StoreItem.Reviews.StoreReviewSummary summary_filtered = 1 [(description) = "Review summary with review bombs removed (if any). Always present (if include_reviews set in request)"];
|
124
|
-
optional .StoreItem.Reviews.StoreReviewSummary summary_unfiltered = 2 [(description) = "Review summary with review bombs included. Only present if there are review bombs."];
|
125
|
-
}
|
126
|
-
|
127
|
-
message BasicInfo {
|
128
|
-
message CreatorHomeLink {
|
129
|
-
optional string name = 1;
|
130
|
-
optional uint32 creator_clan_account_id = 2 [(description) = "Optioanl field indicating this name is associated this the creator home via the clan account id"];
|
131
|
-
}
|
132
|
-
|
133
|
-
optional string short_description = 1;
|
134
|
-
repeated .StoreItem.BasicInfo.CreatorHomeLink publishers = 2;
|
135
|
-
repeated .StoreItem.BasicInfo.CreatorHomeLink developers = 3;
|
136
|
-
repeated .StoreItem.BasicInfo.CreatorHomeLink franchises = 4;
|
137
|
-
optional string capsule_headline = 5 [(description) = "A custom string specified by the partner for display on or around a capsule on the store, e.g. 'Just Updated!'"];
|
138
|
-
}
|
139
|
-
|
140
|
-
message Tag {
|
141
|
-
optional uint32 tagid = 1;
|
142
|
-
optional uint32 weight = 2;
|
143
|
-
}
|
144
|
-
|
145
|
-
message Assets {
|
146
|
-
optional string asset_url_format = 1 [(description) = "Format for URLs, should substitute the capsule name for ${FILENAME} in the URL."];
|
147
|
-
optional string main_capsule = 2;
|
148
|
-
optional string small_capsule = 3;
|
149
|
-
optional string header = 4 [(description) = "Equivalent to GetConstantRatioHeaderImage in PHP; apps will always have this, packages and bundles may not."];
|
150
|
-
optional string package_header = 5 [(description) = "A wider header used on package/bundle pages. Not set for apps."];
|
151
|
-
optional string page_background = 6;
|
152
|
-
optional string hero_capsule = 7 [(description) = "374x448"];
|
153
|
-
optional string hero_capsule_2x = 8 [(description) = "748x896 version of hero capsule."];
|
154
|
-
optional string library_capsule = 9 [(description) = "300x450 - tall library asset"];
|
155
|
-
optional string library_capsule_2x = 10 [(description) = "600x900 - tall library asset"];
|
156
|
-
optional string library_hero = 11 [(description) = "960x310 or 1920x620 - library detail background asset"];
|
157
|
-
optional string library_hero_2x = 12 [(description) = "1920x620 or 3840x1240 - library detail background asset"];
|
158
|
-
optional string community_icon = 13 [(description) = "32x32 jpg uploading via steamworks under community assets"];
|
159
|
-
optional string clan_avatar = 14;
|
160
|
-
}
|
161
|
-
|
162
|
-
message ReleaseInfo {
|
163
|
-
optional uint32 steam_release_date = 1 [(description) = "The date this item first released on the Steam store. For Early Access graduates, this is their graduation day."];
|
164
|
-
optional uint32 original_release_date = 2 [(description) = "Optional; the date this item first released elsewhere, typically back catalog items."];
|
165
|
-
optional uint32 original_steam_release_date = 3 [(description) = "For Early Access graduates, the date the game first appeared on Steam."];
|
166
|
-
optional bool is_coming_soon = 4 [(description) = "Is the app coming soon? This flag should be preferred to doing time comparisons against steam_release_date."];
|
167
|
-
optional bool is_preload = 5 [(description) = "Can the app be preloaded? Only applies to Coming Soon titles."];
|
168
|
-
optional string custom_release_date_message = 6 [(description) = "Custom release date string. steam_release_date will be unset if this is set."];
|
169
|
-
optional bool is_abridged_release_date = 7 [(description) = "Release date should be displayed as month-year only. steam_release_date is the last day of the month."];
|
170
|
-
optional string coming_soon_display = 8 [(description) = "One of 'date_full', 'date_month', 'date_quarter', 'date_year', 'text_comingsoon', 'text_tba'"];
|
171
|
-
optional bool is_early_access = 10;
|
172
|
-
optional uint32 mac_release_date = 20;
|
173
|
-
optional uint32 linux_release_date = 21;
|
174
|
-
}
|
175
|
-
|
176
|
-
message Platforms {
|
177
|
-
message VRSupport {
|
178
|
-
optional bool vrhmd = 1;
|
179
|
-
optional bool vrhmd_only = 2;
|
180
|
-
optional bool htc_vive = 40;
|
181
|
-
optional bool oculus_rift = 41;
|
182
|
-
optional bool windows_mr = 42;
|
183
|
-
optional bool valve_index = 43;
|
184
|
-
}
|
185
|
-
|
186
|
-
optional bool windows = 1;
|
187
|
-
optional bool mac = 2;
|
188
|
-
optional bool steamos_linux = 3;
|
189
|
-
optional .StoreItem.Platforms.VRSupport vr_support = 10;
|
190
|
-
optional .ESteamDeckCompatibilityCategory steam_deck_compat_category = 11 [default = k_ESteamDeckCompatibilityCategory_Unknown];
|
191
|
-
}
|
192
|
-
|
193
|
-
message PurchaseOption {
|
194
|
-
message Discount {
|
195
|
-
optional int64 discount_amount = 1;
|
196
|
-
optional string discount_description = 2;
|
197
|
-
optional uint32 discount_end_date = 3;
|
198
|
-
}
|
199
|
-
|
200
|
-
optional int32 packageid = 1;
|
201
|
-
optional int32 bundleid = 2;
|
202
|
-
optional string purchase_option_name = 3 [(description) = "The name of the package or bundle"];
|
203
|
-
optional int64 final_price_in_cents = 5 [(description) = "Always set. Includes any applicable non user-specific discounts."];
|
204
|
-
optional int64 original_price_in_cents = 6 [(description) = "If discounted, this is the price the item would normally cost."];
|
205
|
-
optional int64 user_final_price_in_cents = 7;
|
206
|
-
optional string formatted_final_price = 8 [(description) = "Always set. Formatted with currency symbol and decimal, like '$10.00'."];
|
207
|
-
optional string formatted_original_price = 9;
|
208
|
-
optional int32 discount_pct = 10 [(description) = "If discounted, calculated from final price and original price."];
|
209
|
-
optional int32 user_discount_pct = 11;
|
210
|
-
optional int32 bundle_discount_pct = 12 [(description) = "If this is a bundle, the savings from buying the bundle. If no bundle items are on active discount, this will be the same as discount_pct."];
|
211
|
-
repeated .StoreItem.PurchaseOption.Discount active_discounts = 20 [(description) = "Discounts included in discounted_price_in_cents."];
|
212
|
-
repeated .StoreItem.PurchaseOption.Discount user_active_discounts = 21 [(description) = "Additional discounts included in user_discounted_price_in_cents."];
|
213
|
-
repeated .StoreItem.PurchaseOption.Discount inactive_discounts = 22 [(description) = "Additional user-specific discounts that do not apply to the current user."];
|
214
|
-
optional bool user_can_purchase = 30;
|
215
|
-
optional bool user_can_purchase_as_gift = 31;
|
216
|
-
optional bool is_commercial_license = 40 [(description) = "This is a commercial license"];
|
217
|
-
optional bool should_suppress_discount_pct = 41 [(description) = "Don't show the discount percentage on a store capsule for this item."];
|
218
|
-
optional bool hide_discount_pct_for_compliance = 42 [default = false, (description) = "Don't show the discount percent because there was a discount in the last 30 days."];
|
219
|
-
optional int32 included_game_count = 43 [(description) = "How many games are included in this purchase option."];
|
220
|
-
optional int64 lowest_recent_price_in_cents = 44 [(description) = "Lowest recent price in cents. If not set, then there is no data so we ignore."];
|
221
|
-
}
|
222
|
-
|
223
|
-
message Screenshots {
|
224
|
-
message Screenshot {
|
225
|
-
optional string filename = 1 [(description) = "Path to file on media CDN. Can access sized version by appending to SHA: '.1920x1080', '.600x338', '.116x65'"];
|
226
|
-
optional int32 ordinal = 2 [(description) = "Screenshots should be displayed in order of ascending ordinal; they are returned in-order but client may need to merge all_ages and mature_content_screenshots."];
|
227
|
-
}
|
228
|
-
|
229
|
-
repeated .StoreItem.Screenshots.Screenshot all_ages_screenshots = 2 [(description) = "Screenshots suitable for all ages."];
|
230
|
-
repeated .StoreItem.Screenshots.Screenshot mature_content_screenshots = 3 [(description) = "Screenshots that may contain mature content; these should only be shown after verifying age (age gate)."];
|
231
|
-
}
|
232
|
-
|
233
|
-
message Trailers {
|
234
|
-
message VideoSource {
|
235
|
-
optional string filename = 1 [(description) = "Substitute into trailer_url_format"];
|
236
|
-
optional string type = 2 [(description) = "'video/webm' or 'video/mp4'; can just put this directly in to a <source> tag."];
|
237
|
-
}
|
238
|
-
|
239
|
-
message Trailer {
|
240
|
-
optional string trailer_name = 1;
|
241
|
-
optional string trailer_url_format = 2 [(description) = "Format for URLs, should substitute filename for ${FILENAME} in the URL."];
|
242
|
-
repeated .StoreItem.Trailers.VideoSource trailer_480p = 3;
|
243
|
-
repeated .StoreItem.Trailers.VideoSource trailer_max = 4;
|
244
|
-
repeated .StoreItem.Trailers.VideoSource microtrailer = 5;
|
245
|
-
optional string screenshot_medium = 10 [(description) = "293x165px. Use trailer_url_format."];
|
246
|
-
optional string screenshot_full = 11 [(description) = "Same size as trailer_max. Use trailer_url_format."];
|
247
|
-
optional int32 trailer_base_id = 12 [(description) = "Trailer ID. For localized trailers, this will be the original trailer's ID"];
|
248
|
-
}
|
249
|
-
|
250
|
-
repeated .StoreItem.Trailers.Trailer highlights = 1 [(description) = "Primary trailers for this app"];
|
251
|
-
repeated .StoreItem.Trailers.Trailer other_trailers = 2 [(description) = "Additional trailers; on the app page, these are shown after screenshots (highlights shown before)"];
|
252
|
-
}
|
253
|
-
|
254
|
-
message SupportedLanguage {
|
255
|
-
optional int32 elanguage = 1 [(description) = "ELanguage"];
|
256
|
-
optional bool supported = 2;
|
257
|
-
optional bool full_audio = 3;
|
258
|
-
optional bool subtitles = 4;
|
259
|
-
}
|
260
|
-
|
261
|
-
message FreeWeekend {
|
262
|
-
optional uint32 start_time = 1 [(description) = "When the free weekend starts."];
|
263
|
-
optional uint32 end_time = 2 [(description) = "When the free weekend ends."];
|
264
|
-
optional string text = 3 [(description) = "Text to show as a description of the free weekend."];
|
265
|
-
}
|
266
|
-
|
267
|
-
optional .EStoreItemType item_type = 1 [default = k_EStoreItemType_Invalid];
|
268
|
-
optional uint32 id = 2;
|
269
|
-
optional uint32 success = 3 [(description) = "EResult of this lookup action"];
|
270
|
-
optional bool visible = 4;
|
271
|
-
optional bool unvailable_for_country_restriction = 5 [(description) = "Indicates this app is visible in other regions, but not the requested reagion"];
|
272
|
-
optional string name = 6;
|
273
|
-
optional string store_url_path = 7 [(description) = "The URL of this item's store page, to be appended to STORE_BASE_URL."];
|
274
|
-
optional uint32 appid = 9 [(description) = "If this is an app, or a single-app package, the steamworks appid."];
|
275
|
-
optional .EStoreAppType type = 10 [default = k_EStoreAppType_Game, (description) = "Type of app (Game, Software, Music). For packages/bundles, this will be the most interesting type (eg Game + Soundtrack bundle will have type Game)"];
|
276
|
-
repeated .EStoreAppType included_types = 11 [(description) = "For packages/bundles, all types of included items"];
|
277
|
-
repeated uint32 included_appids = 12 [(description) = "For packages/bundles, all included appids"];
|
278
|
-
optional bool is_free = 13;
|
279
|
-
optional bool is_early_access = 14;
|
280
|
-
optional .StoreItem.RelatedItems related_items = 15;
|
281
|
-
optional .StoreItem.IncludedItems included_items = 16 [(description) = "Items included in this package/bundle, if included_items datarequest was passed."];
|
282
|
-
repeated .EContentDescriptorID content_descriptorids = 20;
|
283
|
-
repeated uint32 tagids = 21;
|
284
|
-
optional .StoreItem.Categories categories = 22;
|
285
|
-
optional .StoreItem.Reviews reviews = 23;
|
286
|
-
optional .StoreItem.BasicInfo basic_info = 24;
|
287
|
-
repeated .StoreItem.Tag tags = 25;
|
288
|
-
optional .StoreItem.Assets assets = 30;
|
289
|
-
optional .StoreItem.ReleaseInfo release = 31;
|
290
|
-
optional .StoreItem.Platforms platforms = 32;
|
291
|
-
optional .StoreGameRating game_rating = 33 [(description) = "Local ratings agency information, like ESRB or PEGI"];
|
292
|
-
optional .StoreItem.PurchaseOption best_purchase_option = 40 [(description) = "The cheapest way for the user to acquire this app or package (may be a bundle)."];
|
293
|
-
repeated .StoreItem.PurchaseOption purchase_options = 41 [(description) = "Different ways to buy this app or packages (packages can be purchased directly, but may also be included in bundles)."];
|
294
|
-
repeated .StoreItem.PurchaseOption accessories = 42 [(description) = "Additional packages or bundles associated with an app, but that do not contain the app."];
|
295
|
-
optional .StoreItem.Screenshots screenshots = 50;
|
296
|
-
optional .StoreItem.Trailers trailers = 51;
|
297
|
-
repeated .StoreItem.SupportedLanguage supported_languages = 52;
|
298
|
-
optional string store_url_path_override = 53 [(description) = "Navigate to this URL (relative to store home) when the store capsule for this item is clicked, instead of the default /app/... URL. Used by advertising apps that point to a sale page."];
|
299
|
-
optional .StoreItem.FreeWeekend free_weekend = 54 [(description) = "Information about a free weekend offer."];
|
300
|
-
optional bool unlisted = 55 [(description) = "If true, item is only accessible on store via a direct link"];
|
301
|
-
optional uint32 game_count = 56 [(description) = "For creators and tags, how many games belong to them"];
|
302
|
-
optional string internal_name = 57 [(description) = "For hub categories, the internal name (handle) of the category"];
|
303
|
-
optional string full_description = 58 [(description) = "About this game section on the store page"];
|
304
|
-
}
|
305
|
-
|
306
|
-
message StoreGameRating {
|
307
|
-
optional string type = 1 [(description) = "'esrb', 'pegi', ..."];
|
308
|
-
optional string rating = 2 [(description) = "'t' for teen, 'm' for mature, ..."];
|
309
|
-
repeated string descriptors = 3 [(description) = "Additional descriptors like 'Intense Violence', 'Strong Language',..."];
|
310
|
-
optional string interactive_elements = 4 [(description) = "ESRB-specific"];
|
311
|
-
optional int32 required_age = 10 [(description) = "Age in years. Store pages will prompt with an age gate"];
|
312
|
-
optional bool use_age_gate = 11;
|
313
|
-
optional string image_url = 20 [(description) = "An image corresponding to the rating."];
|
314
|
-
optional string image_target = 21 [(description) = "URL where the image should link for more information."];
|
315
|
-
}
|
316
|
-
|
317
|
-
message CStoreBrowse_GetItems_Response {
|
318
|
-
repeated .StoreItem store_items = 1;
|
319
|
-
}
|
320
|
-
|
321
|
-
message CStoreBrowse_GetStoreCategories_Request {
|
322
|
-
optional string language = 1;
|
323
|
-
optional int32 elanguage = 2 [default = -1, (description) = "ELanguage"];
|
324
|
-
}
|
325
|
-
|
326
|
-
message CStoreBrowse_GetStoreCategories_Response {
|
327
|
-
message Category {
|
328
|
-
optional uint32 categoryid = 1;
|
329
|
-
optional .EStoreCategoryType type = 2 [default = k_EStoreCategoryType_Category];
|
330
|
-
optional string internal_name = 3;
|
331
|
-
optional string display_name = 4;
|
332
|
-
optional string image_url = 5 [(description) = "Append to STORE_CDN_URL"];
|
333
|
-
optional bool show_in_search = 6 [(description) = "Indicates this category can link to search results showing all items in category."];
|
334
|
-
}
|
335
|
-
|
336
|
-
repeated .CStoreBrowse_GetStoreCategories_Response.Category categories = 1;
|
337
|
-
}
|
338
|
-
|
339
|
-
message CStoreBrowse_GetDLCForApps_Request {
|
340
|
-
optional .StoreBrowseContext context = 1;
|
341
|
-
optional .CStorePageFilter store_page_filter = 2;
|
342
|
-
repeated .StoreItemID appids = 3 [(description) = "Apps for which we want DLC information."];
|
343
|
-
optional uint64 steamid = 4 [(description) = "If specified, we want DLC information for all apps owned by this user."];
|
344
|
-
}
|
345
|
-
|
346
|
-
message CStoreBrowse_GetDLCForApps_Response {
|
347
|
-
message DLCData {
|
348
|
-
optional uint32 appid = 1;
|
349
|
-
optional uint32 parentappid = 2;
|
350
|
-
optional uint32 release_date = 3;
|
351
|
-
optional bool coming_soon = 4;
|
352
|
-
optional int64 price = 5;
|
353
|
-
optional uint32 discount = 6;
|
354
|
-
optional bool free = 7;
|
355
|
-
}
|
356
|
-
|
357
|
-
message PlaytimeForApp {
|
358
|
-
optional uint32 appid = 1;
|
359
|
-
optional uint32 playtime = 2 [(description) = "Total time played over all time."];
|
360
|
-
optional uint32 last_played = 3 [(description) = "Time last played on any platform."];
|
361
|
-
}
|
362
|
-
|
363
|
-
repeated .CStoreBrowse_GetDLCForApps_Response.DLCData dlc_data = 1;
|
364
|
-
repeated .CStoreBrowse_GetDLCForApps_Response.PlaytimeForApp playtime = 2;
|
365
|
-
}
|
366
|
-
|
367
|
-
message CStoreBrowse_GetDLCForAppsSolr_Request {
|
368
|
-
optional .StoreBrowseContext context = 1;
|
369
|
-
repeated uint32 appids = 2;
|
370
|
-
optional string flavor = 3;
|
371
|
-
optional uint32 count = 4;
|
372
|
-
optional .CStorePageFilter store_page_filter = 5;
|
373
|
-
}
|
374
|
-
|
375
|
-
message CStoreBrowse_GetDLCForAppsSolr_Response {
|
376
|
-
message DLCList {
|
377
|
-
optional uint32 parent_appid = 1;
|
378
|
-
repeated uint32 dlc_appids = 2;
|
379
|
-
}
|
380
|
-
|
381
|
-
repeated .CStoreBrowse_GetDLCForAppsSolr_Response.DLCList dlc_lists = 1;
|
382
|
-
}
|
383
|
-
|
384
|
-
service StoreBrowse {
|
385
|
-
option (service_description) = "APIs for accessing store item data";
|
386
|
-
|
387
|
-
rpc GetItems (.CStoreBrowse_GetItems_Request) returns (.CStoreBrowse_GetItems_Response) {
|
388
|
-
option (method_description) = "Get information about items on the store";
|
389
|
-
}
|
390
|
-
|
391
|
-
rpc GetStoreCategories (.CStoreBrowse_GetStoreCategories_Request) returns (.CStoreBrowse_GetStoreCategories_Response) {
|
392
|
-
option (method_description) = "Get category definitions for store. This is a public-facing API (as compared to StoreCatalog.GetCategories, which is intended for PHP)";
|
393
|
-
}
|
394
|
-
|
395
|
-
rpc GetDLCForApps (.CStoreBrowse_GetDLCForApps_Request) returns (.CStoreBrowse_GetDLCForApps_Response) {
|
396
|
-
option (method_description) = "Returns all DLC appids for games owned by the user.";
|
397
|
-
}
|
398
|
-
|
399
|
-
rpc GetDLCForAppsSolr (.CStoreBrowse_GetDLCForAppsSolr_Request) returns (.CStoreBrowse_GetDLCForAppsSolr_Response) {
|
400
|
-
option (method_description) = "Returns all DLC appids for the specified games.";
|
401
|
-
}
|
402
|
-
}
|
1
|
+
import "steammessages_base.proto";
|
2
|
+
import "steammessages_unified_base.steamclient.proto";
|
3
|
+
import "enums_productinfo.proto";
|
4
|
+
import "enums.proto";
|
5
|
+
import "contenthubs.proto";
|
6
|
+
|
7
|
+
option cc_generic_services = true;
|
8
|
+
|
9
|
+
enum EStoreItemType {
|
10
|
+
k_EStoreItemType_Invalid = -1;
|
11
|
+
k_EStoreItemType_App = 0;
|
12
|
+
k_EStoreItemType_Package = 1;
|
13
|
+
k_EStoreItemType_Bundle = 2;
|
14
|
+
k_EStoreItemType_Mtx = 3;
|
15
|
+
k_EStoreItemType_Tag = 4;
|
16
|
+
k_EStoreItemType_Creator = 5;
|
17
|
+
k_EStoreItemType_HubCategory = 6;
|
18
|
+
}
|
19
|
+
|
20
|
+
enum EStoreAppType {
|
21
|
+
k_EStoreAppType_Game = 0;
|
22
|
+
k_EStoreAppType_Demo = 1;
|
23
|
+
k_EStoreAppType_Mod = 2;
|
24
|
+
k_EStoreAppType_Movie = 3;
|
25
|
+
k_EStoreAppType_DLC = 4;
|
26
|
+
k_EStoreAppType_Guide = 5;
|
27
|
+
k_EStoreAppType_Software = 6;
|
28
|
+
k_EStoreAppType_Video = 7;
|
29
|
+
k_EStoreAppType_Series = 8;
|
30
|
+
k_EStoreAppType_Episode = 9;
|
31
|
+
k_EStoreAppType_Hardware = 10;
|
32
|
+
k_EStoreAppType_Music = 11;
|
33
|
+
k_EStoreAppType_Beta = 12;
|
34
|
+
k_EStoreAppType_Tool = 13;
|
35
|
+
k_EStoreAppType_Advertising = 14;
|
36
|
+
}
|
37
|
+
|
38
|
+
enum EUserReviewScore {
|
39
|
+
k_EUserReviewScore_None = 0;
|
40
|
+
k_EUserReviewScore_OverwhelminglyNegative = 1;
|
41
|
+
k_EUserReviewScore_VeryNegative = 2;
|
42
|
+
k_EUserReviewScore_Negative = 3;
|
43
|
+
k_EUserReviewScore_MostlyNegative = 4;
|
44
|
+
k_EUserReviewScore_Mixed = 5;
|
45
|
+
k_EUserReviewScore_MostlyPositive = 6;
|
46
|
+
k_EUserReviewScore_Positive = 7;
|
47
|
+
k_EUserReviewScore_VeryPositive = 8;
|
48
|
+
k_EUserReviewScore_OverwhelminglyPositive = 9;
|
49
|
+
}
|
50
|
+
|
51
|
+
enum EStoreCategoryType {
|
52
|
+
k_EStoreCategoryType_Category = 0;
|
53
|
+
k_EStoreCategoryType_SupportedPlayers = 1;
|
54
|
+
k_EStoreCategoryType_Feature = 2;
|
55
|
+
k_EStoreCategoryType_ControllerSupport = 3;
|
56
|
+
k_EStoreCategoryType_CloudGaming = 4;
|
57
|
+
k_EStoreCategoryType_MAX = 5;
|
58
|
+
}
|
59
|
+
|
60
|
+
message StoreItemID {
|
61
|
+
optional uint32 appid = 1;
|
62
|
+
optional uint32 packageid = 2;
|
63
|
+
optional uint32 bundleid = 3;
|
64
|
+
optional uint32 tagid = 4;
|
65
|
+
optional uint32 creatorid = 5;
|
66
|
+
optional uint32 hubcategoryid = 6;
|
67
|
+
}
|
68
|
+
|
69
|
+
message StoreBrowseContext {
|
70
|
+
optional string language = 1;
|
71
|
+
optional int32 elanguage = 2 [(description) = "ELanguage"];
|
72
|
+
optional string country_code = 3 [(description) = "2-character country code; required"];
|
73
|
+
optional int32 steam_realm = 4 [(description) = "ESteamRealm"];
|
74
|
+
}
|
75
|
+
|
76
|
+
message StoreBrowseItemDataRequest {
|
77
|
+
optional bool include_assets = 1;
|
78
|
+
optional bool include_release = 2;
|
79
|
+
optional bool include_platforms = 3;
|
80
|
+
optional bool include_all_purchase_options = 4;
|
81
|
+
optional bool include_screenshots = 5;
|
82
|
+
optional bool include_trailers = 6;
|
83
|
+
optional bool include_ratings = 7;
|
84
|
+
optional int32 include_tag_count = 8 [(description) = "Count of tags to return, as tagids. Maximum 20."];
|
85
|
+
optional bool include_reviews = 9;
|
86
|
+
optional bool include_basic_info = 10 [(description) = "Include short description, publisher, developers"];
|
87
|
+
optional bool include_supported_languages = 11 [(description) = "includes the games support for languages: supported, full_audio, subtitles"];
|
88
|
+
optional bool include_full_description = 12;
|
89
|
+
optional bool include_included_items = 13 [(description) = "For packages and bundles, return the apps and packages included as well. Pass included_item_data_request for more details on the included items."];
|
90
|
+
optional .StoreBrowseItemDataRequest included_item_data_request = 14 [(description) = "The data to return for included items."];
|
91
|
+
}
|
92
|
+
|
93
|
+
message CStoreBrowse_GetItems_Request {
|
94
|
+
repeated .StoreItemID ids = 1;
|
95
|
+
optional .StoreBrowseContext context = 2;
|
96
|
+
optional .StoreBrowseItemDataRequest data_request = 3;
|
97
|
+
}
|
98
|
+
|
99
|
+
message StoreItem {
|
100
|
+
message RelatedItems {
|
101
|
+
optional uint32 parent_appid = 1 [(description) = "For DLC, Demos, etc, this is the main app."];
|
102
|
+
}
|
103
|
+
|
104
|
+
message IncludedItems {
|
105
|
+
repeated .StoreItem included_apps = 1 [(description) = "All apps included, if this is a package or bundle"];
|
106
|
+
repeated .StoreItem included_packages = 2 [(description) = "All packages included, if this is a bundle"];
|
107
|
+
}
|
108
|
+
|
109
|
+
message Categories {
|
110
|
+
repeated uint32 supported_player_categoryids = 2 [(description) = "Categories like Single Player, Multiplayer, MMO"];
|
111
|
+
repeated uint32 feature_categoryids = 3 [(description) = "Categories indicating supported features like Steam Cloud, VAC, Achievements, etc"];
|
112
|
+
repeated uint32 controller_categoryids = 4 [(description) = "Categories indicating controller support and full controller support."];
|
113
|
+
}
|
114
|
+
|
115
|
+
message Reviews {
|
116
|
+
message StoreReviewSummary {
|
117
|
+
optional uint32 review_count = 1;
|
118
|
+
optional int32 percent_positive = 2 [(description) = "0-100"];
|
119
|
+
optional .EUserReviewScore review_score = 3 [default = k_EUserReviewScore_None];
|
120
|
+
optional string review_score_label = 4 [(description) = "A string like 'Mixed', 'Negative', 'Overwhelmingly Positive'"];
|
121
|
+
}
|
122
|
+
|
123
|
+
optional .StoreItem.Reviews.StoreReviewSummary summary_filtered = 1 [(description) = "Review summary with review bombs removed (if any). Always present (if include_reviews set in request)"];
|
124
|
+
optional .StoreItem.Reviews.StoreReviewSummary summary_unfiltered = 2 [(description) = "Review summary with review bombs included. Only present if there are review bombs."];
|
125
|
+
}
|
126
|
+
|
127
|
+
message BasicInfo {
|
128
|
+
message CreatorHomeLink {
|
129
|
+
optional string name = 1;
|
130
|
+
optional uint32 creator_clan_account_id = 2 [(description) = "Optioanl field indicating this name is associated this the creator home via the clan account id"];
|
131
|
+
}
|
132
|
+
|
133
|
+
optional string short_description = 1;
|
134
|
+
repeated .StoreItem.BasicInfo.CreatorHomeLink publishers = 2;
|
135
|
+
repeated .StoreItem.BasicInfo.CreatorHomeLink developers = 3;
|
136
|
+
repeated .StoreItem.BasicInfo.CreatorHomeLink franchises = 4;
|
137
|
+
optional string capsule_headline = 5 [(description) = "A custom string specified by the partner for display on or around a capsule on the store, e.g. 'Just Updated!'"];
|
138
|
+
}
|
139
|
+
|
140
|
+
message Tag {
|
141
|
+
optional uint32 tagid = 1;
|
142
|
+
optional uint32 weight = 2;
|
143
|
+
}
|
144
|
+
|
145
|
+
message Assets {
|
146
|
+
optional string asset_url_format = 1 [(description) = "Format for URLs, should substitute the capsule name for ${FILENAME} in the URL."];
|
147
|
+
optional string main_capsule = 2;
|
148
|
+
optional string small_capsule = 3;
|
149
|
+
optional string header = 4 [(description) = "Equivalent to GetConstantRatioHeaderImage in PHP; apps will always have this, packages and bundles may not."];
|
150
|
+
optional string package_header = 5 [(description) = "A wider header used on package/bundle pages. Not set for apps."];
|
151
|
+
optional string page_background = 6;
|
152
|
+
optional string hero_capsule = 7 [(description) = "374x448"];
|
153
|
+
optional string hero_capsule_2x = 8 [(description) = "748x896 version of hero capsule."];
|
154
|
+
optional string library_capsule = 9 [(description) = "300x450 - tall library asset"];
|
155
|
+
optional string library_capsule_2x = 10 [(description) = "600x900 - tall library asset"];
|
156
|
+
optional string library_hero = 11 [(description) = "960x310 or 1920x620 - library detail background asset"];
|
157
|
+
optional string library_hero_2x = 12 [(description) = "1920x620 or 3840x1240 - library detail background asset"];
|
158
|
+
optional string community_icon = 13 [(description) = "32x32 jpg uploading via steamworks under community assets"];
|
159
|
+
optional string clan_avatar = 14;
|
160
|
+
}
|
161
|
+
|
162
|
+
message ReleaseInfo {
|
163
|
+
optional uint32 steam_release_date = 1 [(description) = "The date this item first released on the Steam store. For Early Access graduates, this is their graduation day."];
|
164
|
+
optional uint32 original_release_date = 2 [(description) = "Optional; the date this item first released elsewhere, typically back catalog items."];
|
165
|
+
optional uint32 original_steam_release_date = 3 [(description) = "For Early Access graduates, the date the game first appeared on Steam."];
|
166
|
+
optional bool is_coming_soon = 4 [(description) = "Is the app coming soon? This flag should be preferred to doing time comparisons against steam_release_date."];
|
167
|
+
optional bool is_preload = 5 [(description) = "Can the app be preloaded? Only applies to Coming Soon titles."];
|
168
|
+
optional string custom_release_date_message = 6 [(description) = "Custom release date string. steam_release_date will be unset if this is set."];
|
169
|
+
optional bool is_abridged_release_date = 7 [(description) = "Release date should be displayed as month-year only. steam_release_date is the last day of the month."];
|
170
|
+
optional string coming_soon_display = 8 [(description) = "One of 'date_full', 'date_month', 'date_quarter', 'date_year', 'text_comingsoon', 'text_tba'"];
|
171
|
+
optional bool is_early_access = 10;
|
172
|
+
optional uint32 mac_release_date = 20;
|
173
|
+
optional uint32 linux_release_date = 21;
|
174
|
+
}
|
175
|
+
|
176
|
+
message Platforms {
|
177
|
+
message VRSupport {
|
178
|
+
optional bool vrhmd = 1;
|
179
|
+
optional bool vrhmd_only = 2;
|
180
|
+
optional bool htc_vive = 40;
|
181
|
+
optional bool oculus_rift = 41;
|
182
|
+
optional bool windows_mr = 42;
|
183
|
+
optional bool valve_index = 43;
|
184
|
+
}
|
185
|
+
|
186
|
+
optional bool windows = 1;
|
187
|
+
optional bool mac = 2;
|
188
|
+
optional bool steamos_linux = 3;
|
189
|
+
optional .StoreItem.Platforms.VRSupport vr_support = 10;
|
190
|
+
optional .ESteamDeckCompatibilityCategory steam_deck_compat_category = 11 [default = k_ESteamDeckCompatibilityCategory_Unknown];
|
191
|
+
}
|
192
|
+
|
193
|
+
message PurchaseOption {
|
194
|
+
message Discount {
|
195
|
+
optional int64 discount_amount = 1;
|
196
|
+
optional string discount_description = 2;
|
197
|
+
optional uint32 discount_end_date = 3;
|
198
|
+
}
|
199
|
+
|
200
|
+
optional int32 packageid = 1;
|
201
|
+
optional int32 bundleid = 2;
|
202
|
+
optional string purchase_option_name = 3 [(description) = "The name of the package or bundle"];
|
203
|
+
optional int64 final_price_in_cents = 5 [(description) = "Always set. Includes any applicable non user-specific discounts."];
|
204
|
+
optional int64 original_price_in_cents = 6 [(description) = "If discounted, this is the price the item would normally cost."];
|
205
|
+
optional int64 user_final_price_in_cents = 7;
|
206
|
+
optional string formatted_final_price = 8 [(description) = "Always set. Formatted with currency symbol and decimal, like '$10.00'."];
|
207
|
+
optional string formatted_original_price = 9;
|
208
|
+
optional int32 discount_pct = 10 [(description) = "If discounted, calculated from final price and original price."];
|
209
|
+
optional int32 user_discount_pct = 11;
|
210
|
+
optional int32 bundle_discount_pct = 12 [(description) = "If this is a bundle, the savings from buying the bundle. If no bundle items are on active discount, this will be the same as discount_pct."];
|
211
|
+
repeated .StoreItem.PurchaseOption.Discount active_discounts = 20 [(description) = "Discounts included in discounted_price_in_cents."];
|
212
|
+
repeated .StoreItem.PurchaseOption.Discount user_active_discounts = 21 [(description) = "Additional discounts included in user_discounted_price_in_cents."];
|
213
|
+
repeated .StoreItem.PurchaseOption.Discount inactive_discounts = 22 [(description) = "Additional user-specific discounts that do not apply to the current user."];
|
214
|
+
optional bool user_can_purchase = 30;
|
215
|
+
optional bool user_can_purchase_as_gift = 31;
|
216
|
+
optional bool is_commercial_license = 40 [(description) = "This is a commercial license"];
|
217
|
+
optional bool should_suppress_discount_pct = 41 [(description) = "Don't show the discount percentage on a store capsule for this item."];
|
218
|
+
optional bool hide_discount_pct_for_compliance = 42 [default = false, (description) = "Don't show the discount percent because there was a discount in the last 30 days."];
|
219
|
+
optional int32 included_game_count = 43 [(description) = "How many games are included in this purchase option."];
|
220
|
+
optional int64 lowest_recent_price_in_cents = 44 [(description) = "Lowest recent price in cents. If not set, then there is no data so we ignore."];
|
221
|
+
}
|
222
|
+
|
223
|
+
message Screenshots {
|
224
|
+
message Screenshot {
|
225
|
+
optional string filename = 1 [(description) = "Path to file on media CDN. Can access sized version by appending to SHA: '.1920x1080', '.600x338', '.116x65'"];
|
226
|
+
optional int32 ordinal = 2 [(description) = "Screenshots should be displayed in order of ascending ordinal; they are returned in-order but client may need to merge all_ages and mature_content_screenshots."];
|
227
|
+
}
|
228
|
+
|
229
|
+
repeated .StoreItem.Screenshots.Screenshot all_ages_screenshots = 2 [(description) = "Screenshots suitable for all ages."];
|
230
|
+
repeated .StoreItem.Screenshots.Screenshot mature_content_screenshots = 3 [(description) = "Screenshots that may contain mature content; these should only be shown after verifying age (age gate)."];
|
231
|
+
}
|
232
|
+
|
233
|
+
message Trailers {
|
234
|
+
message VideoSource {
|
235
|
+
optional string filename = 1 [(description) = "Substitute into trailer_url_format"];
|
236
|
+
optional string type = 2 [(description) = "'video/webm' or 'video/mp4'; can just put this directly in to a <source> tag."];
|
237
|
+
}
|
238
|
+
|
239
|
+
message Trailer {
|
240
|
+
optional string trailer_name = 1;
|
241
|
+
optional string trailer_url_format = 2 [(description) = "Format for URLs, should substitute filename for ${FILENAME} in the URL."];
|
242
|
+
repeated .StoreItem.Trailers.VideoSource trailer_480p = 3;
|
243
|
+
repeated .StoreItem.Trailers.VideoSource trailer_max = 4;
|
244
|
+
repeated .StoreItem.Trailers.VideoSource microtrailer = 5;
|
245
|
+
optional string screenshot_medium = 10 [(description) = "293x165px. Use trailer_url_format."];
|
246
|
+
optional string screenshot_full = 11 [(description) = "Same size as trailer_max. Use trailer_url_format."];
|
247
|
+
optional int32 trailer_base_id = 12 [(description) = "Trailer ID. For localized trailers, this will be the original trailer's ID"];
|
248
|
+
}
|
249
|
+
|
250
|
+
repeated .StoreItem.Trailers.Trailer highlights = 1 [(description) = "Primary trailers for this app"];
|
251
|
+
repeated .StoreItem.Trailers.Trailer other_trailers = 2 [(description) = "Additional trailers; on the app page, these are shown after screenshots (highlights shown before)"];
|
252
|
+
}
|
253
|
+
|
254
|
+
message SupportedLanguage {
|
255
|
+
optional int32 elanguage = 1 [(description) = "ELanguage"];
|
256
|
+
optional bool supported = 2;
|
257
|
+
optional bool full_audio = 3;
|
258
|
+
optional bool subtitles = 4;
|
259
|
+
}
|
260
|
+
|
261
|
+
message FreeWeekend {
|
262
|
+
optional uint32 start_time = 1 [(description) = "When the free weekend starts."];
|
263
|
+
optional uint32 end_time = 2 [(description) = "When the free weekend ends."];
|
264
|
+
optional string text = 3 [(description) = "Text to show as a description of the free weekend."];
|
265
|
+
}
|
266
|
+
|
267
|
+
optional .EStoreItemType item_type = 1 [default = k_EStoreItemType_Invalid];
|
268
|
+
optional uint32 id = 2;
|
269
|
+
optional uint32 success = 3 [(description) = "EResult of this lookup action"];
|
270
|
+
optional bool visible = 4;
|
271
|
+
optional bool unvailable_for_country_restriction = 5 [(description) = "Indicates this app is visible in other regions, but not the requested reagion"];
|
272
|
+
optional string name = 6;
|
273
|
+
optional string store_url_path = 7 [(description) = "The URL of this item's store page, to be appended to STORE_BASE_URL."];
|
274
|
+
optional uint32 appid = 9 [(description) = "If this is an app, or a single-app package, the steamworks appid."];
|
275
|
+
optional .EStoreAppType type = 10 [default = k_EStoreAppType_Game, (description) = "Type of app (Game, Software, Music). For packages/bundles, this will be the most interesting type (eg Game + Soundtrack bundle will have type Game)"];
|
276
|
+
repeated .EStoreAppType included_types = 11 [(description) = "For packages/bundles, all types of included items"];
|
277
|
+
repeated uint32 included_appids = 12 [(description) = "For packages/bundles, all included appids"];
|
278
|
+
optional bool is_free = 13;
|
279
|
+
optional bool is_early_access = 14;
|
280
|
+
optional .StoreItem.RelatedItems related_items = 15;
|
281
|
+
optional .StoreItem.IncludedItems included_items = 16 [(description) = "Items included in this package/bundle, if included_items datarequest was passed."];
|
282
|
+
repeated .EContentDescriptorID content_descriptorids = 20;
|
283
|
+
repeated uint32 tagids = 21;
|
284
|
+
optional .StoreItem.Categories categories = 22;
|
285
|
+
optional .StoreItem.Reviews reviews = 23;
|
286
|
+
optional .StoreItem.BasicInfo basic_info = 24;
|
287
|
+
repeated .StoreItem.Tag tags = 25;
|
288
|
+
optional .StoreItem.Assets assets = 30;
|
289
|
+
optional .StoreItem.ReleaseInfo release = 31;
|
290
|
+
optional .StoreItem.Platforms platforms = 32;
|
291
|
+
optional .StoreGameRating game_rating = 33 [(description) = "Local ratings agency information, like ESRB or PEGI"];
|
292
|
+
optional .StoreItem.PurchaseOption best_purchase_option = 40 [(description) = "The cheapest way for the user to acquire this app or package (may be a bundle)."];
|
293
|
+
repeated .StoreItem.PurchaseOption purchase_options = 41 [(description) = "Different ways to buy this app or packages (packages can be purchased directly, but may also be included in bundles)."];
|
294
|
+
repeated .StoreItem.PurchaseOption accessories = 42 [(description) = "Additional packages or bundles associated with an app, but that do not contain the app."];
|
295
|
+
optional .StoreItem.Screenshots screenshots = 50;
|
296
|
+
optional .StoreItem.Trailers trailers = 51;
|
297
|
+
repeated .StoreItem.SupportedLanguage supported_languages = 52;
|
298
|
+
optional string store_url_path_override = 53 [(description) = "Navigate to this URL (relative to store home) when the store capsule for this item is clicked, instead of the default /app/... URL. Used by advertising apps that point to a sale page."];
|
299
|
+
optional .StoreItem.FreeWeekend free_weekend = 54 [(description) = "Information about a free weekend offer."];
|
300
|
+
optional bool unlisted = 55 [(description) = "If true, item is only accessible on store via a direct link"];
|
301
|
+
optional uint32 game_count = 56 [(description) = "For creators and tags, how many games belong to them"];
|
302
|
+
optional string internal_name = 57 [(description) = "For hub categories, the internal name (handle) of the category"];
|
303
|
+
optional string full_description = 58 [(description) = "About this game section on the store page"];
|
304
|
+
}
|
305
|
+
|
306
|
+
message StoreGameRating {
|
307
|
+
optional string type = 1 [(description) = "'esrb', 'pegi', ..."];
|
308
|
+
optional string rating = 2 [(description) = "'t' for teen, 'm' for mature, ..."];
|
309
|
+
repeated string descriptors = 3 [(description) = "Additional descriptors like 'Intense Violence', 'Strong Language',..."];
|
310
|
+
optional string interactive_elements = 4 [(description) = "ESRB-specific"];
|
311
|
+
optional int32 required_age = 10 [(description) = "Age in years. Store pages will prompt with an age gate"];
|
312
|
+
optional bool use_age_gate = 11;
|
313
|
+
optional string image_url = 20 [(description) = "An image corresponding to the rating."];
|
314
|
+
optional string image_target = 21 [(description) = "URL where the image should link for more information."];
|
315
|
+
}
|
316
|
+
|
317
|
+
message CStoreBrowse_GetItems_Response {
|
318
|
+
repeated .StoreItem store_items = 1;
|
319
|
+
}
|
320
|
+
|
321
|
+
message CStoreBrowse_GetStoreCategories_Request {
|
322
|
+
optional string language = 1;
|
323
|
+
optional int32 elanguage = 2 [default = -1, (description) = "ELanguage"];
|
324
|
+
}
|
325
|
+
|
326
|
+
message CStoreBrowse_GetStoreCategories_Response {
|
327
|
+
message Category {
|
328
|
+
optional uint32 categoryid = 1;
|
329
|
+
optional .EStoreCategoryType type = 2 [default = k_EStoreCategoryType_Category];
|
330
|
+
optional string internal_name = 3;
|
331
|
+
optional string display_name = 4;
|
332
|
+
optional string image_url = 5 [(description) = "Append to STORE_CDN_URL"];
|
333
|
+
optional bool show_in_search = 6 [(description) = "Indicates this category can link to search results showing all items in category."];
|
334
|
+
}
|
335
|
+
|
336
|
+
repeated .CStoreBrowse_GetStoreCategories_Response.Category categories = 1;
|
337
|
+
}
|
338
|
+
|
339
|
+
message CStoreBrowse_GetDLCForApps_Request {
|
340
|
+
optional .StoreBrowseContext context = 1;
|
341
|
+
optional .CStorePageFilter store_page_filter = 2;
|
342
|
+
repeated .StoreItemID appids = 3 [(description) = "Apps for which we want DLC information."];
|
343
|
+
optional uint64 steamid = 4 [(description) = "If specified, we want DLC information for all apps owned by this user."];
|
344
|
+
}
|
345
|
+
|
346
|
+
message CStoreBrowse_GetDLCForApps_Response {
|
347
|
+
message DLCData {
|
348
|
+
optional uint32 appid = 1;
|
349
|
+
optional uint32 parentappid = 2;
|
350
|
+
optional uint32 release_date = 3;
|
351
|
+
optional bool coming_soon = 4;
|
352
|
+
optional int64 price = 5;
|
353
|
+
optional uint32 discount = 6;
|
354
|
+
optional bool free = 7;
|
355
|
+
}
|
356
|
+
|
357
|
+
message PlaytimeForApp {
|
358
|
+
optional uint32 appid = 1;
|
359
|
+
optional uint32 playtime = 2 [(description) = "Total time played over all time."];
|
360
|
+
optional uint32 last_played = 3 [(description) = "Time last played on any platform."];
|
361
|
+
}
|
362
|
+
|
363
|
+
repeated .CStoreBrowse_GetDLCForApps_Response.DLCData dlc_data = 1;
|
364
|
+
repeated .CStoreBrowse_GetDLCForApps_Response.PlaytimeForApp playtime = 2;
|
365
|
+
}
|
366
|
+
|
367
|
+
message CStoreBrowse_GetDLCForAppsSolr_Request {
|
368
|
+
optional .StoreBrowseContext context = 1;
|
369
|
+
repeated uint32 appids = 2;
|
370
|
+
optional string flavor = 3;
|
371
|
+
optional uint32 count = 4;
|
372
|
+
optional .CStorePageFilter store_page_filter = 5;
|
373
|
+
}
|
374
|
+
|
375
|
+
message CStoreBrowse_GetDLCForAppsSolr_Response {
|
376
|
+
message DLCList {
|
377
|
+
optional uint32 parent_appid = 1;
|
378
|
+
repeated uint32 dlc_appids = 2;
|
379
|
+
}
|
380
|
+
|
381
|
+
repeated .CStoreBrowse_GetDLCForAppsSolr_Response.DLCList dlc_lists = 1;
|
382
|
+
}
|
383
|
+
|
384
|
+
service StoreBrowse {
|
385
|
+
option (service_description) = "APIs for accessing store item data";
|
386
|
+
|
387
|
+
rpc GetItems (.CStoreBrowse_GetItems_Request) returns (.CStoreBrowse_GetItems_Response) {
|
388
|
+
option (method_description) = "Get information about items on the store";
|
389
|
+
}
|
390
|
+
|
391
|
+
rpc GetStoreCategories (.CStoreBrowse_GetStoreCategories_Request) returns (.CStoreBrowse_GetStoreCategories_Response) {
|
392
|
+
option (method_description) = "Get category definitions for store. This is a public-facing API (as compared to StoreCatalog.GetCategories, which is intended for PHP)";
|
393
|
+
}
|
394
|
+
|
395
|
+
rpc GetDLCForApps (.CStoreBrowse_GetDLCForApps_Request) returns (.CStoreBrowse_GetDLCForApps_Response) {
|
396
|
+
option (method_description) = "Returns all DLC appids for games owned by the user.";
|
397
|
+
}
|
398
|
+
|
399
|
+
rpc GetDLCForAppsSolr (.CStoreBrowse_GetDLCForAppsSolr_Request) returns (.CStoreBrowse_GetDLCForAppsSolr_Response) {
|
400
|
+
option (method_description) = "Returns all DLC appids for the specified games.";
|
401
|
+
}
|
402
|
+
}
|