Intro - steam 1.4.4¶
May 16, 2023
A python module for interacting with various parts of Steam.
Supports Python 2.7+
and 3.4+
.
Features¶
- SteamClient - communication with the steam network based on
gevent
- CDNClient - access to Steam content depots
- WebAuth - authentication for access to
store.steampowered.com
andsteamcommunity.com
- WebAPI - simple API for Steam’s Web API with automatic population of interfaces
- SteamAuthenticator - enable/disable/manage two factor authentication for Steam accounts
- SteamID - convert between the various ID representations with ease
- Master Server Query Protocol - query masters servers directly or via
SteamClient
Checkout the User guide for examples, or the API Reference for details.
For questions, issues, or general curiosity, visit the repo at https://github.com/ValvePython/steam.
Like using the command line? Try steamctl tool
Quick install¶
For system specific details, see Installation Details.
Install latest version from PYPI:
# with SteamClient dependecies
pip install -U steam[client]
# without (only when using parts that do no rely on gevent, and protobufs)
pip install -U steam
Install the current dev version from github
:
# cutting edge from master
pip install git+https://github.com/ValvePython/steam#egg=steam
# specific version tag (e.g. v1.0.0)
pip install git+https://github.com/ValvePython/steam@v1.0.0#egg=steam[client]
# without SteamClient extras
pip install git+https://github.com/ValvePython/steam@v1.0.0#egg=steam
Intro - steam 1.4.4¶
May 16, 2023
A python module for interacting with various parts of Steam.
Supports Python 2.7+
and 3.4+
.
Features¶
- SteamClient - communication with the steam network based on
gevent
- CDNClient - access to Steam content depots
- WebAuth - authentication for access to
store.steampowered.com
andsteamcommunity.com
- WebAPI - simple API for Steam’s Web API with automatic population of interfaces
- SteamAuthenticator - enable/disable/manage two factor authentication for Steam accounts
- SteamID - convert between the various ID representations with ease
- Master Server Query Protocol - query masters servers directly or via
SteamClient
Checkout the User guide for examples, or the API Reference for details.
For questions, issues, or general curiosity, visit the repo at https://github.com/ValvePython/steam.
Like using the command line? Try steamctl tool
Quick install¶
For system specific details, see Installation Details.
Install latest version from PYPI:
# with SteamClient dependecies
pip install -U steam[client]
# without (only when using parts that do no rely on gevent, and protobufs)
pip install -U steam
Install the current dev version from github
:
# cutting edge from master
pip install git+https://github.com/ValvePython/steam#egg=steam
# specific version tag (e.g. v1.0.0)
pip install git+https://github.com/ValvePython/steam@v1.0.0#egg=steam[client]
# without SteamClient extras
pip install git+https://github.com/ValvePython/steam@v1.0.0#egg=steam
Table of Contents¶
Installation Details¶
Linux¶
Steps assume that python
and pip
are already installed.
- Install dependencies (see sections below)
- Run
pip install steam
Note
Consider using virtualenv in order to keep you system packages untouched.
Windows¶
Cygwin¶
- Download cygwin installer from https://cygwin.com/install.html
- During the setup select these additional packages
python3
python3-setuptools
- Install pip
- Open cygwin terminal
- Run
easy_install-3.4 pip
- Run
pip install steam
Note
Consider using virtualenv in order to keep you system packages untouched.
Note
Installation may take a while as a number of dependecies will be compiled
Native Python¶
- Download & install python 3.5 from https://www.python.org/downloads/windows/
Note
Installing for all users will require administrator rights
- Then from
cmd
runpip install steam
User guide¶
Welcome to the quick start section.
The aim here is to give you a very quick
overview of the functionality available in the steam
module.
SteamID¶
SteamID
can be used to convert the universal steam id
to its’ various representations.
Converting between representations¶
>>> from steam.steamid import SteamID
>>> SteamID()
SteamID(id=0, type='Invalid', universe='Invalid', instance=0)
>>> SteamID(12345) # accountid
>>> SteamID('12345')
>>> SteamID('STEAM_1:1:6172') # steam2
SteamID(id=12345, type='Individual', universe='Public', instance=1)
>>> SteamID(103582791429521412) # steam64
>>> SteamID('103582791429521412')
>>> SteamID('[g:1:4]') # steam3
SteamID(id=4, type='Clan', universe='Public', instance=0)
>>> group = SteamID('[g:1:4]')
>>> group.id # accountid
4
>>> group.as_32 # accountid
4
>>> group.as_64
103582791429521412
>>> int(group)
103582791429521412
>>> str(group)
'103582791429521412'
>>> group.as_steam2 # only works for 'Individual' accounts
'STEAM_1:0:2'
>>> group.as_steam3
'[g:1:4]'
>>> group.community_url
'https://steamcommunity.com/gid/103582791429521412'
Resolving community urls to SteamID
¶
The steam.steamid
submodule provides function to resolve community urls.
Here are some examples:
>>> SteamID.from_url('https://steamcommunity.com/id/drunkenf00l')
>>> steam.steamid.from_url('https://steamcommunity.com/id/drunkenf00l')
SteamID(id=8193745, type='Individual', universe='Public', instance=1)
>>> steam.steamid.steam64_from_url('http://steamcommunity.com/profiles/76561197968459473')
'76561197968459473'
WebAPI¶
WebAPI
is a thin Wrapper around Steam Web API. Requires API Key. Upon initialization the
instance will fetch all available interfaces and populate the namespace.
Obtaining a key¶
Any steam user can get a key by visiting http://steamcommunity.com/dev/apikey.
The only requirement is that the user has verified their email.
Then the key can be used on the public
WebAPI. See steam.webapi.APIHost
Note
Interface availability depends on the key
.
Unless the schema is loaded manually.
Calling an endpoint¶
>>> from steam.webapi import WebAPI
>>> api = WebAPI(key="<your api key>")
# instance.<interface>.<method>
>>> api.ISteamWebAPIUtil.GetServerInfo()
>>> api.call('ISteamWebAPIUtil.GetServerInfo')
{u'servertimestring': u'Sun Jul 05 22:37:25 2015', u'servertime': 1436161045}
>>> api.ISteamUser.ResolveVanityURL(vanityurl="valve", url_type=2)
>>> api.call('ISteamUser.ResolveVanityURL', vanityurl="valve", url_type=2)
{u'response': {u'steamid': u'103582791429521412', u'success': 1}}
# call a specific version of the method
>>> api.ISteamUser.ResolveVanityURL_v1(vanityurl="valve", url_type=2)
>>> api.call('ISteamUser.ResolveVanityURL_v1', vanityurl="valve", url_type=2)
It’s not necessary to provide the key when calling any interface method.
key
, format
, raw
, http_timeout
parameters can be specified on WebAPI
to affect
all method calls, or when calling a specific method.
Some methods have parameters which need to be a list
.
Trying to call nonexistent method will raise an AttributeError
.
Supported formats by web api are: json
(default), vdf
, xml
The response will be deserialized using the appropriate module unless raw
is
True
.
WebAPI documentation¶
>>> api.ISteamUser.ResolveVanityURL.__doc__ # method doc
"""
ResolveVanityURL (v0001)
Parameters:
key string required
- access key
url_type int32 optional
- The type of vanity URL. 1 (default): Individual profile, 2: Group, 3: Official game group
vanityurl string required
- The vanity URL to get a SteamID for
"""
# or calling doc() will print it
>>> api.ISteamUser.ResolveVanityURL.doc() # method doc
>>> api.ISteamUser.doc() # interface and all methods
>>> api.doc() # all available interfaces
For a more complete list of all available interfaces and methods visit: https://steamapi.xpaw.me/
SteamClient¶
gevent
based implementation for interacting with the Steam network.
The library comes with some Steam client features implemented, see client for more details.
Warning
SteamClient
no longer applies gevent monkey patches by default.
See steam.monkey
for details how make stdlib gevent cooperative.
CLI example¶
In this example, the user will be prompted for credential and once logged in will the account name. After that we logout.
from steam.client import SteamClient
from steam.enums.emsg import EMsg
client = SteamClient()
@client.on(EMsg.ClientVACBanStatus)
def print_vac_status(msg):
print("Number of VAC Bans: %s" % msg.body.numBans)
client.cli_login()
print("Logged on as: %s" % client.user.name)
print("Community profile: %s" % client.steam_id.community_url)
print("Last logon: %s" % client.user.last_logon)
print("Last logoff: %s" % client.user.last_logoff)
print("Number of friends: %d" % len(client.friends))
client.logout()
You can find more examples at https://github.com/ValvePython/steam/tree/master/recipes
Sending a message¶
Example of sending a protobuf message and handling the response.
send_message_and_wait()
will send a message and block until the specified event.
from steam.enums import EResult
from steam.core.msg import MsgProto
from steam.enums.emsg import EMsg
message = MsgProto(EMsg.ClientAddFriend)
message.body.steamid_to_add = 76561197960265728
resp = client.send_message_and_wait(message, EMsg.ClientAddFriendResponse)
if resp.eresult == EResult.OK:
print "Send a friend request to %s (%d)" % (repr(resp.body.persona_name_added),
resp.body.steam_id_added,
)
else:
print "Error: %s" % EResult(resp.eresult)
Alternatively, a callback can be registered to handle the response event every time.
@client.on(EMsg.ClientAddFriendResponse)
def handle_add_response(msg):
pass
# OR
client.on(EMsg.ClientAddFriendResponse, handle_add_response)
Logging¶
It is often useful to see the message that are coming in and going on. Here is how to enable debug logging to the console.
import logging
logging.basicConfig(format='[%(asctime)s] %(levelname)s %(name)s: %(message)s', level=logging.DEBUG)
For more complicated logging
configurations, consult the python documentation.
By default the SteamClient
will not log the contents of messages.
To enable that simply set SteamClient.verbose_debug
to True
on your SteamClient
instance.
client = SteamClient()
client.verbose_debug = True
When there are multiple instances, they will all log under the same logger name. We can override the default logger instances with new one and give it a different name.
client1 = SteamClient()
client2 = SteamClient()
client1._LOG = logging.getLogger("SC#1")
client2._LOG = logging.getLogger("SC#2")
Web Authentication¶
There are currently two paths for gaining access to steam websites.
Either using WebAuth
, or via a SteamClient.get_web_session()
instance.
session = client.get_web_session() # returns requests.Session
session.get('https://store.steampowered.com')
For more details about WebAuth
, see steam.webauth
API Reference¶
client¶
Implementation of Steam client based on gevent
Warning
steam.client
no longer patches stdlib to make it gevent cooperative.
This provides flexibility if you want to use SteamClient
with async or other modules.
If you want to monkey patch anyway use steam.monkey.patch_minimal()
Note
Additional features are located in separate submodules. All functionality from builtins
is inherited by default.
Note
Optional features are available as mixins
. This allows the client to remain light yet flexible.
-
class
steam.client.
SteamClient
¶ Bases:
steam.core.cm.CMClient
,steam.client.builtins.BuiltinBase
-
EVENT_AUTH_CODE_REQUIRED
= 'auth_code_required'¶ When either email or 2FA code is needed for login
-
EVENT_CHANNEL_SECURED
= 'channel_secured'¶
-
EVENT_CHAT_MESSAGE
= 'chat_message'¶
-
EVENT_CONNECTED
= 'connected'¶
-
EVENT_DISCONNECTED
= 'disconnected'¶
-
EVENT_EMSG
= 0¶
-
EVENT_ERROR
= 'error'¶
-
EVENT_LOGGED_ON
= 'logged_on'¶ After successful login
-
EVENT_NEW_LOGIN_KEY
= 'new_login_key'¶ After a new login key is accepted
-
EVENT_RECONNECT
= 'reconnect'¶
-
PROTOCOL_TCP
= 0¶
-
PROTOCOL_UDP
= 1¶
-
anonymous_login
()¶ Login as anonymous user
Returns: logon result, see CMsgClientLogonResponse.eresult Return type: EResult
-
auto_discovery
= True¶
-
cell_id
= 0¶
-
change_status
(**kwargs)¶ Set name, persona state, flags
Note
Changing persona state will also change
persona_state
Parameters: - persona_state (
EPersonaState
) – persona state (Online/Offline/Away/etc) - player_name (
str
) – profile name - persona_state_flags (
EPersonaStateFlag
) – persona state flags
- persona_state (
-
channel_hmac
= None¶
-
channel_key
= None¶
-
channel_secured
= False¶
-
chat_mode
= 2¶ chat mode (0=old chat, 2=new chat)
-
cli_login
(username='', password='')¶ Generates CLI prompts to complete the login process
Parameters: Returns: logon result, see CMsgClientLogonResponse.eresult
Return type: Example console output after calling
cli_login()
In [5]: client.cli_login() Steam username: myusername Password: Steam is down. Keep retrying? [y/n]: y Invalid password for 'myusername'. Enter password: Enter email code: 123 Incorrect code. Enter email code: K6VKF Out[5]: <EResult.OK: 1>
-
cm_servers
= None¶
-
connect
(*args, **kwargs)¶ Attempt to establish connection, see
CMClient.connect()
-
connected
= False¶
-
count_listeners
(event)¶ Returns a count of how many listeners are registered registed for a specific event
Parameters: event – event identifier Returns: number of listeners Return type: int
-
credential_location
= None¶ location for sentry
-
current_games_played
= []¶
-
current_jobid
= 0¶
-
current_server_addr
= None¶
-
disconnect
(*args, **kwargs)¶ Close connection, see
CMClient.disconnect()
-
emit
(event, *args)¶ Emit event with some arguments
Parameters: - event (any type) – event identifier
- args – any or no arguments
-
games_played
(app_ids)¶ Set the apps being played by the user
Parameters: app_ids ( list
) – a list of application idsThese app ids will be recorded in
current_games_played
.
-
get_access_tokens
(app_ids=[], package_ids=[])¶ Get access tokens
Parameters: Returns: dict with
apps
andpackages
containing their access tokens, see example belowReturn type: dict
,None
{'apps': {123: 8888888886, ...}, 'packages': {456: 6666666666, ...} }
-
get_app_ticket
(app_id)¶ Get app ownership ticket
Parameters: app_id ( int
) – app idReturns: CMsgClientGetAppOwnershipTicketResponse Return type: proto message
-
get_cdn_auth_token
(depot_id, hostname)¶ Get CDN authentication token
Note
This token is no longer needed for access to CDN files
Parameters: Returns: Return type: proto message
-
get_changes_since
(change_number, app_changes=True, package_changes=False)¶ Get changes since a change number
Parameters: Returns: Return type: proto message instance, or
None
on timeout
-
get_depot_key
(app_id, depot_id)¶ Get depot decryption key
Parameters: Returns: Return type: proto message
-
get_encrypted_app_ticket
(app_id, userdata)¶ Gets the encrypted app ticket :param app_id: app id :type app_id:
int
:param userdata: userdata :type userdata:bytes
:return: EncryptedAppTicket <https://github.com/ValvePython/steam/blob/39627fe883feeed2206016bacd92cf0e4580ead6/protobufs/encrypted_app_ticket.proto>_ :rtype: proto message
-
get_leaderboard
(app_id, name)¶ New in version 0.8.2.
Find a leaderboard
Parameters: Returns: leaderboard instance
Return type: SteamLeaderboard
Raises: LookupError
on message timeout or error
-
get_player_count
(app_id, timeout=5)¶ Get numbers of players for app id
Parameters: app_id ( int
) – app idReturns: number of players Return type: int
,EResult
-
get_product_info
(apps=[], packages=[], meta_data_only=False, raw=False, auto_access_tokens=True, timeout=15)¶ Get product info for apps and packages
Parameters: - apps (
list
) – items in the list should be either justapp_id
, ordict
- packages (
list
) – items in the list should be either justpackage_id
, ordict
- meta_data_only (
bool
) – only meta data will be returned in the reponse (e.g. change number, missing_token, sha1) - raw (
bool
) – Data buffer for each app is returned as bytes in its’ original form. Apps buffer is text VDF, and package buffer is binary VDF - auto_access_token (
bool
) – automatically request and fill access tokens
Returns: dict with
apps
andpackages
containing their info, see example belowReturn type: dict
,None
{'apps': {570: {...}, ...}, 'packages': {123: {...}, ...} }
Access token is needed to access full information for certain apps, and also package info. Each app and package has its’ own access token. If a token is required then
_missing_token=True
in the response.App access tokens are obtained by calling
get_access_tokens()
, and are returned only when the account has a license for the specified app. Example code:result = client.get_product_info(apps=[123]) if result['apps'][123]['_missing_token']: tokens = client.get_access_token(apps=[123]) result = client.get_product_info(apps=[{'appid': 123, 'access_token': tokens['apps'][123] }])
Note
It is best to just request access token for all apps, before sending a product info request.
Package tokens are located in the account license list. See
licenses
result = client.get_product_info(packages=[{'packageid': 123, 'access_token': client.licenses[123].access_token, }])
- apps (
-
get_sentry
(username)¶ Returns contents of sentry file for the given username
Note
returns
None
ifcredential_location
is not set, or file is not found/inaccessibleParameters: username (str) – username Returns: sentry file contents, or None
Return type: bytes
,None
-
get_user
(steam_id, fetch_persona_state=True)¶ Get
SteamUser
instance forsteam id
Parameters: Returns: SteamUser instance
Return type:
-
get_web_session
(language='english')¶ Get a
requests.Session
that is ready for useNote
Auth cookies will only be send to
(help|store).steampowered.com
andsteamcommunity.com
domainsNote
The session is valid only while
SteamClient
instance is logged on.Parameters: language ( str
) – localization language for steam pagesReturns: authenticated Session ready for use Return type: requests.Session
,None
Get web authentication cookies via WebAPI’s
AuthenticateUser
Note
The cookies are valid only while
SteamClient
instance is logged on.Returns: dict with authentication cookies Return type: dict
,None
-
idle
()¶ Yeild in the current greenlet and let other greenlets run
-
licenses
= None¶
-
logged_on
= None¶ indicates logged on status. Listen to
logged_on
when change toTrue
-
login
(username, password='', login_key=None, auth_code=None, two_factor_code=None, login_id=None)¶ Login as a specific user
Parameters: Returns: logon result, see CMsgClientLogonResponse.eresult
Return type: Note
Failure to login will result in the server dropping the connection,
error
event is firedauth_code_required
event is fired when 2FA or Email code is needed. Here is example code of how to handle the situation.@steamclient.on(steamclient.EVENT_AUTH_CODE_REQUIRED) def auth_code_prompt(is_2fa, code_mismatch): if is_2fa: code = input("Enter 2FA Code: ") steamclient.login(username, password, two_factor_code=code) else: code = input("Enter Email Code: ") steamclient.login(username, password, auth_code=code)
Codes are required every time a user logins if sentry is not setup. See
set_credential_location()
-
login_key
= None¶ can be used for subsequent logins (no 2FA code will be required)
-
logout
()¶ Logout from steam. Doesn’t nothing if not logged on.
Note
The server will drop the connection immediatelly upon logout.
-
on
(event, callback=None, once=False)¶ Registers a callback for the specified event
Parameters: - event – event name
- callback – callback function
Can be as function decorator if only
event
param is specified.@instaceOfSomeClass.on("some event") def handle_event(): pass instaceOfSomeClass.on("some event", handle_event)
To listen for any event, use
None
as event identifier.
-
once
(event, callback=None)¶ Register a callback, but call it exactly one time
See
eventemitter.EventEmitter.on()
-
persona_state
= 1¶
-
reconnect
(maxdelay=30, retry=0)¶ Implements explonential backoff delay before attempting to connect. It is otherwise identical to calling
CMClient.connect()
. The delay is reset upon a successful login.Parameters: - maxdelay (
int
) – maximum delay in seconds before connect (0-120s) - retry (
int
) – seeCMClient.connect()
Returns: successful connection
Return type: - maxdelay (
-
register_product_key
(key)¶ Register/Redeem a CD-Key
Parameters: key ( str
) – CD-KeyReturns: format (eresult, result_details, receipt_info)
Return type: tuple
Example
receipt_info
:{'BasePrice': 0, 'CurrencyCode': 0, 'ErrorHeadline': '', 'ErrorLinkText': '', 'ErrorLinkURL': '', 'ErrorString': '', 'LineItemCount': 1, 'PaymentMethod': 1, 'PurchaseStatus': 1, 'ResultDetail': 0, 'Shipping': 0, 'Tax': 0, 'TotalDiscount': 0, 'TransactionID': UINT_64(111111111111111111), 'TransactionTime': 1473000000, 'lineitems': {'0': {'ItemDescription': 'Half-Life 3', 'TransactionID': UINT_64(11111111111111111), 'packageid': 1234}}, 'packageid': -1}
-
relogin
()¶ Login without needing credentials, essentially remember password. The
login_key
is acquired after successful login and it will be automatically acknowledged. Listen for thenew_login_key
event. After that the client can relogin using this method.Note
Only works when
relogin_available
isTrue
.if client.relogin_available: client.relogin() else: client.login(user, pass)
Returns: login result Return type: EResult
-
remove_all_listeners
(event=None)¶ Removes all registered callbacks, or all registered callbacks for a specific event
Parameters: event – event identifier
-
remove_listener
(event, callback)¶ Removes callback for the specified event
Parameters: - event – event identifier
- callback (function, method or
gevent.event.AsyncResult
) – callback reference
-
request_free_license
(app_ids)¶ Request license for free app(s)
Parameters: app_ids ( list
) – list of app idsReturns: format ( EResult
, result_details, receipt_info)Return type: tuple
-
request_persona_state
(steam_ids, state_flags=863)¶ Request persona state data
Parameters: - steam_ids (
list
) – list of steam ids - state_flags (
EClientPersonaStateFlag
) – client state flags
- steam_ids (
-
run_forever
()¶ Transfer control the gevent event loop
This is useful when the application is setup and ment to run for a long time
-
send
(message, body_params=None)¶ Send a message to CM
Parameters:
-
send_job
(message, body_params=None)¶ Send a message as a job
Note
Not all messages are jobs, you’ll have to find out which are which
Parameters: Returns: jobid
event identifierReturn type: To catch the response just listen for the
jobid
event.jobid = steamclient.send_job(my_message) resp = steamclient.wait_event(jobid, timeout=15) if resp: (message,) = resp
-
send_job_and_wait
(message, body_params=None, timeout=None, raises=False)¶ Send a message as a job and wait for the response.
Note
Not all messages are jobs, you’ll have to find out which are which
Parameters: Returns: response proto message
Return type: Raises:
-
send_message_and_wait
(message, response_emsg, body_params=None, timeout=None, raises=False)¶ Send a message to CM and wait for a defined answer.
Parameters: Returns: response proto message
Return type: Raises:
-
send_um
(method_name, params=None)¶ Send service method request
Parameters: Returns: job_id
identifierReturn type: Listen for
jobid
on this object to catch the response.
-
send_um_and_wait
(method_name, params=None, timeout=10, raises=False)¶ Send service method request and wait for response
Parameters: - method_name (
str
) – method name (e.g.Player.GetGameBadgeLevels#1
) - params (
dict
) – message parameters - timeout (
int
) – (optional) seconds to wait - raises (
bool
) – (optional) On timeout ifFalse
returnNone
, else raisegevent.Timeout
Returns: response message
Return type: proto message instance
Raises: - method_name (
-
session_id
= None¶
-
set_credential_location
(path)¶ Sets folder location for sentry files
Needs to be set explicitly for sentries to be created.
-
set_ui_mode
(uimode)¶ Set UI mode. Show little icon next to name in friend list. (e.g phone, controller, other)
Parameters: uimode ( EClientUIMode
) – UI mode integerThese app ids will be recorded in
current_games_played
.
-
sleep
(seconds)¶ Yeild and sleep N seconds. Allows other greenlets to run
-
steam_id
= SteamID(id=0, type='Invalid', universe='Invalid', instance=0)¶
-
store_sentry
(username, sentry_bytes)¶ Store sentry bytes under a username
Parameters: username (str) – username Returns: Whenver the operation succeed Return type: bool
-
user
= None¶
-
username
= None¶ username when logged on
-
verbose_debug
= False¶
-
wait_event
(event, timeout=None, raises=False)¶ Blocks until an event and returns the results
Parameters: Returns: returns event arguments in tuple
Return type: None
, ortuple
Raises: gevent.Timeout
Handling timeout
args = ee.wait_event('my event', timeout=5) if args is None: print "Timeout!"
-
wait_msg
(event, timeout=None, raises=None)¶ Wait for a message, similiar to
wait_event()
Parameters: - event (
EMsg
orstr
) – event id - timeout (
int
) – seconds to wait before timeout - raises (
bool
) – On timeout whenFalse
returnsNone
, else raisegevent.Timeout
Returns: returns a message or
None
Return type: None
, or proto messageRaises: - event (
-
-
steam.client.
random
() → x in the interval [0, 1).¶
builtins¶
All high level features of steam.client.SteamClient
are implemented here in separate submodules.
Apps¶
-
class
steam.client.builtins.apps.
Apps
(*args, **kwargs)¶ Bases:
object
-
get_player_count
(app_id, timeout=5)¶ Get numbers of players for app id
Parameters: app_id ( int
) – app idReturns: number of players Return type: int
,EResult
-
get_product_info
(apps=[], packages=[], meta_data_only=False, raw=False, auto_access_tokens=True, timeout=15)¶ Get product info for apps and packages
Parameters: - apps (
list
) – items in the list should be either justapp_id
, ordict
- packages (
list
) – items in the list should be either justpackage_id
, ordict
- meta_data_only (
bool
) – only meta data will be returned in the reponse (e.g. change number, missing_token, sha1) - raw (
bool
) – Data buffer for each app is returned as bytes in its’ original form. Apps buffer is text VDF, and package buffer is binary VDF - auto_access_token (
bool
) – automatically request and fill access tokens
Returns: dict with
apps
andpackages
containing their info, see example belowReturn type: dict
,None
{'apps': {570: {...}, ...}, 'packages': {123: {...}, ...} }
Access token is needed to access full information for certain apps, and also package info. Each app and package has its’ own access token. If a token is required then
_missing_token=True
in the response.App access tokens are obtained by calling
get_access_tokens()
, and are returned only when the account has a license for the specified app. Example code:result = client.get_product_info(apps=[123]) if result['apps'][123]['_missing_token']: tokens = client.get_access_token(apps=[123]) result = client.get_product_info(apps=[{'appid': 123, 'access_token': tokens['apps'][123] }])
Note
It is best to just request access token for all apps, before sending a product info request.
Package tokens are located in the account license list. See
licenses
result = client.get_product_info(packages=[{'packageid': 123, 'access_token': client.licenses[123].access_token, }])
- apps (
-
get_changes_since
(change_number, app_changes=True, package_changes=False)¶ Get changes since a change number
Parameters: Returns: Return type: proto message instance, or
None
on timeout
-
get_app_ticket
(app_id)¶ Get app ownership ticket
Parameters: app_id ( int
) – app idReturns: CMsgClientGetAppOwnershipTicketResponse Return type: proto message
-
get_encrypted_app_ticket
(app_id, userdata)¶ Gets the encrypted app ticket :param app_id: app id :type app_id:
int
:param userdata: userdata :type userdata:bytes
:return: EncryptedAppTicket <https://github.com/ValvePython/steam/blob/39627fe883feeed2206016bacd92cf0e4580ead6/protobufs/encrypted_app_ticket.proto>_ :rtype: proto message
-
get_depot_key
(app_id, depot_id)¶ Get depot decryption key
Parameters: Returns: Return type: proto message
-
get_cdn_auth_token
(depot_id, hostname)¶ Get CDN authentication token
Note
This token is no longer needed for access to CDN files
Parameters: Returns: Return type: proto message
-
get_access_tokens
(app_ids=[], package_ids=[])¶ Get access tokens
Parameters: Returns: dict with
apps
andpackages
containing their access tokens, see example belowReturn type: dict
,None
{'apps': {123: 8888888886, ...}, 'packages': {456: 6666666666, ...} }
-
register_product_key
(key)¶ Register/Redeem a CD-Key
Parameters: key ( str
) – CD-KeyReturns: format (eresult, result_details, receipt_info)
Return type: tuple
Example
receipt_info
:{'BasePrice': 0, 'CurrencyCode': 0, 'ErrorHeadline': '', 'ErrorLinkText': '', 'ErrorLinkURL': '', 'ErrorString': '', 'LineItemCount': 1, 'PaymentMethod': 1, 'PurchaseStatus': 1, 'ResultDetail': 0, 'Shipping': 0, 'Tax': 0, 'TotalDiscount': 0, 'TransactionID': UINT_64(111111111111111111), 'TransactionTime': 1473000000, 'lineitems': {'0': {'ItemDescription': 'Half-Life 3', 'TransactionID': UINT_64(11111111111111111), 'packageid': 1234}}, 'packageid': -1}
-
User¶
-
class
steam.client.builtins.user.
User
(*args, **kwargs)¶ Bases:
object
-
EVENT_CHAT_MESSAGE
= 'chat_message'¶ On new private chat message
Parameters:
-
persona_state
= 1¶ current persona state
-
change_status
(**kwargs)¶ Set name, persona state, flags
Note
Changing persona state will also change
persona_state
Parameters: - persona_state (
EPersonaState
) – persona state (Online/Offline/Away/etc) - player_name (
str
) – profile name - persona_state_flags (
EPersonaStateFlag
) – persona state flags
- persona_state (
-
request_persona_state
(steam_ids, state_flags=863)¶ Request persona state data
Parameters: - steam_ids (
list
) – list of steam ids - state_flags (
EClientPersonaStateFlag
) – client state flags
- steam_ids (
-
get_user
(steam_id, fetch_persona_state=True)¶ Get
SteamUser
instance forsteam id
Parameters: Returns: SteamUser instance
Return type:
-
games_played
(app_ids)¶ Set the apps being played by the user
Parameters: app_ids ( list
) – a list of application idsThese app ids will be recorded in
current_games_played
.
-
set_ui_mode
(uimode)¶ Set UI mode. Show little icon next to name in friend list. (e.g phone, controller, other)
Parameters: uimode ( EClientUIMode
) – UI mode integerThese app ids will be recorded in
current_games_played
.
-
Web¶
Web related features
-
class
steam.client.builtins.web.
Web
(*args, **kwargs)¶ Bases:
object
Get web authentication cookies via WebAPI’s
AuthenticateUser
Note
The cookies are valid only while
SteamClient
instance is logged on.Returns: dict with authentication cookies Return type: dict
,None
-
get_web_session
(language='english')¶ Get a
requests.Session
that is ready for useNote
Auth cookies will only be send to
(help|store).steampowered.com
andsteamcommunity.com
domainsNote
The session is valid only while
SteamClient
instance is logged on.Parameters: language ( str
) – localization language for steam pagesReturns: authenticated Session ready for use Return type: requests.Session
,None
Unified Messages¶
Methods to call service methods, also known as unified messages
Example code:
# the easy way
response = client.send_um_and_wait('Player.GetGameBadgeLevels#1', {
'property': 1,
'something': 'value',
})
print(response.body)
# the other way
jobid = client.send_um('Player.GetGameBadgeLevels#1', {'something': 1})
response = client.wait_event(jobid)
The backend might error out, but we still get response. Here is how to check for error:
if response.header.eresult != EResult.OK:
print(response.header.error_message)
-
class
steam.client.builtins.unified_messages.
UnifiedMessages
(*args, **kwargs)¶ Bases:
object
-
send_um
(method_name, params=None)¶ Send service method request
Parameters: Returns: job_id
identifierReturn type: Listen for
jobid
on this object to catch the response.
-
send_um_and_wait
(method_name, params=None, timeout=10, raises=False)¶ Send service method request and wait for response
Parameters: - method_name (
str
) – method name (e.g.Player.GetGameBadgeLevels#1
) - params (
dict
) – message parameters - timeout (
int
) – (optional) seconds to wait - raises (
bool
) – (optional) On timeout ifFalse
returnNone
, else raisegevent.Timeout
Returns: response message
Return type: proto message instance
Raises: - method_name (
-
Leaderboards¶
Reading the leaderboards with SteamLeaderboard
is as easy as iterating over a list.
-
class
steam.client.builtins.leaderboards.
Leaderboards
(*args, **kwargs)¶ Bases:
object
-
get_leaderboard
(app_id, name)¶ New in version 0.8.2.
Find a leaderboard
Parameters: Returns: leaderboard instance
Return type: Raises: LookupError
on message timeout or error
-
-
class
steam.client.builtins.leaderboards.
SteamLeaderboard
(steam, app_id, name, data=None)¶ Bases:
object
New in version 0.8.2.
Steam leaderboard object. Generated via
Leaderboards.get_leaderboard()
Works more or less like alist
to access entries.Note
Each slice will produce a message to steam. Steam and protobufs might not like large slices. Avoid accessing individual entries by index and instead use iteration or well sized slices.
Example usage:
lb = client.get_leaderboard(...) for entry in lb[:100]: # top 100 print entry
-
class
ELeaderboardDataRequest
¶ Bases:
steam.enums.base.SteamIntEnum
An enumeration.
-
Friends
= 2¶
-
Global
= 0¶
-
GlobalAroundUser
= 1¶
-
Users
= 3¶
-
-
class
ELeaderboardSortMethod
¶ Bases:
steam.enums.base.SteamIntEnum
An enumeration.
-
Ascending
= 1¶
-
Descending
= 2¶
-
NONE
= 0¶
-
-
class
ELeaderboardDisplayType
¶ Bases:
steam.enums.base.SteamIntEnum
An enumeration.
-
NONE
= 0¶
-
Numeric
= 1¶
-
TimeMilliSeconds
= 3¶
-
TimeSeconds
= 2¶
-
-
name
= ''¶ leaderboard name
-
id
= 0¶ leaderboard id
-
entry_count
= 0¶
-
data_request
= 0¶
-
app_id
= 0¶
-
sort_method
= 0¶
-
display_type
= 0¶
-
get_entries
(start=0, end=0, data_request=None, steam_ids=None)¶ Get leaderboard entries.
Parameters: - start (
int
) – start entry, not index (e.g. rank 1 isstart=1
) - end (
int
) – end entry, not index (e.g. only one entry thenstart=1,end=1
) - data_request (
steam.enums.common.ELeaderboardDataRequest
) – data being requested - steam_ids – list of steam ids when using
ELeaderboardDataRequest.Users
Returns: a list of entries, see
CMsgClientLBSGetLBEntriesResponse
Return type: Raises: LookupError
on message timeout or error- start (
-
get_iter
(times, seconds, chunk_size=2000)¶ Make a iterator over the entries
See
steam.util.throttle.ConstantRateLimit
fortimes
andseconds
parameters.Parameters: chunk_size ( int
) – number of entries per requestReturns: generator object Return type: generator
The iterator essentially buffers
chuck_size
number of entries, and ensures we are not sending messages too fast. For example, the__iter__
method on this class usesget_iter(1, 1, 2000)
-
class
Game Servers¶
Listing and information about game servers through Steam
Note
Multiple filters can be joined to together (Eg. \app\730\white\1\empty\1
)
Filter code | What it does |
---|---|
\nor\[x] | A special filter, specifies that servers matching any of the following [x] conditions should not be returned |
\nand\[x] | A special filter, specifies that servers matching all of the following [x] conditions should not be returned |
\dedicated\1 | Servers running dedicated |
\secure\1 | Servers using anti-cheat technology (VAC, but potentially others as well) |
\gamedir\[mod] | Servers running the specified modification (ex. cstrike) |
\map\[map] | Servers running the specified map (ex. cs_italy) |
\linux\1 | Servers running on a Linux platform |
\password\0 | Servers that are not password protected |
\empty\1 | Servers that are not empty |
\full\1 | Servers that are not full |
\proxy\1 | Servers that are spectator proxies |
\appid\[appid] | Servers that are running game [appid] |
\napp\[appid] | Servers that are NOT running game [appid] (This was introduced to block Left 4 Dead games from the Steam Server Browser) |
\noplayers\1 | Servers that are empty |
\white\1 | Servers that are whitelisted |
\gametype\[tag,…] | Servers with all of the given tag(s) in sv_tags |
\gamedata\[tag,…] | Servers with all of the given tag(s) in their ‘hidden’ tags (L4D2) |
\gamedataor\[tag,…] | Servers with any of the given tag(s) in their ‘hidden’ tags (L4D2) |
\name_match\[hostname] | Servers with their hostname matching [hostname] (can use * as a wildcard) |
\version_match\[version] | Servers running version [version] (can use * as a wildcard) |
\collapse_addr_hash\1 | Return only one server for each unique IP address matched |
\gameaddr\[ip] | Return only servers on the specified IP address (port supported and optional) |
-
class
steam.client.builtins.gameservers.
GameServers
(*args, **kwargs)¶ Bases:
object
-
gameservers
= None¶ instance of
SteamGameServers
-
-
class
steam.client.builtins.gameservers.
SteamGameServers
(steam)¶ Bases:
object
-
query
(filter_text, max_servers=10, timeout=30, **kw)¶ Query game servers
https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol
Note
When specifying
filter_text
use raw strings otherwise python won’t treat backslashes as literal characters (e.g.query(r'\appid\730\white\1')
)Parameters: Returns: list of servers, see below. (
None
is returned steam doesn’t respond)Return type: list
,None
Sample response:
[{'auth_players': 0, 'server_ip': '1.2.3.4', 'query_port': 27015}, {'auth_players': 6, 'server_ip': '1:2:3:4::5', 'query_port': 27016}, ... ]
-
get_server_list
(filter_text, max_servers=10, timeout=20)¶ Get list of servers. Works similiarly to
query()
, but the response has more details.Parameters: Returns: list of servers, see below. (
None
is returned steam doesn’t respond)Return type: list
,None
Raises: Sample response:
[{'addr': '1.2.3.4:27067', 'appid': 730, 'bots': 0, 'dedicated': True, 'gamedir': 'csgo', 'gameport': 27067, 'gametype': 'valve_ds,empty,secure', 'map': 'de_dust2', 'max_players': 10, 'name': 'Valve CS:GO Asia Server (srcdsXXX.XXX.XXX)', 'os': 'l', 'players': 0, 'product': 'csgo', 'region': 5, 'secure': True, 'steamid': SteamID(id=3279818759, type='AnonGameServer', universe='Public', instance=7011), 'version': '1.35.4.0'} ]
-
get_ips_from_steamids
(server_steam_ids, timeout=30)¶ Resolve IPs from SteamIDs
Parameters: Returns: map of ips to steamids
Return type: Raises: Sample response:
{SteamID(id=123456, type='AnonGameServer', universe='Public', instance=1234): '1.2.3.4:27060'}
-
get_steamids_from_ips
(server_ips, timeout=30)¶ Resolve SteamIDs from IPs
Parameters: Returns: map of steamids to ips
Return type: Raises: Sample response:
{'1.2.3.4:27060': SteamID(id=123456, type='AnonGameServer', universe='Public', instance=1234)}
-
Friends¶
-
class
steam.client.builtins.friends.
Friends
(*args, **kwargs)¶ Bases:
object
-
friends
= None¶ SteamFriendlist
instance
-
-
class
steam.client.builtins.friends.
SteamFriendlist
(client, logger_name='SteamFriendList')¶ Bases:
eventemitter.EventEmitter
SteamFriendlist is an object that keeps state of user’s friend list. It’s essentially a
list
ofSteamUser
. You can iterate over it, check if it contains a particularsteam id
, or getSteamUser
for asteam id
.-
EVENT_READY
= 'ready'¶ Friend list is ready for use
-
EVENT_FRIEND_INVITE
= 'friend_invite'¶ New or existing friend invite
Parameters: user ( SteamUser
) – steam user instance
-
EVENT_FRIEND_NEW
= 'friend_new'¶ Friendship established (after being accepted, or accepting)
Parameters: user ( SteamUser
) – steam user instance
-
EVENT_FRIEND_REMOVED
= 'friend_removed'¶ No longer a friend (removed by either side)
Parameters: user ( SteamUser
) – steam user instance
-
EVENT_FRIEND_ADD_RESULT
= 'friend_add_result'¶ Result response after adding a friend
Parameters:
-
ready
= False¶ indicates whether friend list is ready for use
-
emit
(event, *args)¶ Emit event with some arguments
Parameters: - event (any type) – event identifier
- args – any or no arguments
-
add
(steamid_or_accountname_or_email)¶ Add/Accept a steam user to be your friend. When someone sends you an invite, use this method to accept it.
Parameters: steamid_or_accountname_or_email ( int
,SteamID
,SteamUser
,str
) – steamid, account name, or emailNote
Adding by email doesn’t not work. It’s only mentioned for the sake of completeness.
-
cdn¶
The CDNClient
class provides a simple API for downloading Steam content from SteamPipe
Initializing CDNClient
requires a logged in SteamClient
instance
Warning
This module uses requests
library, which is not gevent cooperative by default.
It is high recommended that you use steam.monkey.patch_minimal()
.
See example below
Getting depot manifests for an app
>>> mycdn.get_manifests(570)
[<CDNDepotManifest('Dota 2 Content', app_id=570, depot_id=373301, gid=6397590570861788404, creation_time='2019-06-29 16:03:11')>,
<CDNDepotManifest('Dota 2 Content 2', app_id=570, depot_id=381451, gid=5769691971272474272, creation_time='2019-06-29 00:19:02')>,
<CDNDepotManifest('Dota 2 Content 3', app_id=570, depot_id=381452, gid=3194393866044592918, creation_time='2019-06-27 00:05:38')>,
<CDNDepotManifest('Dota 2 Content 4', app_id=570, depot_id=381453, gid=8005824150061180163, creation_time='2019-06-08 07:49:57')>,
<CDNDepotManifest('Dota 2 Content 5', app_id=570, depot_id=381454, gid=9003299908441378336, creation_time='2019-06-26 18:56:19')>,
<CDNDepotManifest('Dota 2 Content 6', app_id=570, depot_id=381455, gid=8000458746487720619, creation_time='2019-06-29 00:19:43')>,
<CDNDepotManifest('Dota 2 Win32', app_id=570, depot_id=373302, gid=3561463682334619841, creation_time='2019-06-29 00:16:28')>,
<CDNDepotManifest('Dota 2 Win64', app_id=570, depot_id=373303, gid=6464064782313084040, creation_time='2019-06-29 00:16:43')>,
<CDNDepotManifest('Dota 2 Mac', app_id=570, depot_id=373304, gid=5979018571482579541, creation_time='2019-06-29 00:16:59')>,
<CDNDepotManifest('Dota 2 English', app_id=570, depot_id=373305, gid=4435851250675935801, creation_time='2015-06-01 20:15:37')>,
<CDNDepotManifest('Dota 2 Linux', app_id=570, depot_id=373306, gid=4859464855297921815, creation_time='2019-06-29 00:17:25')>,
<CDNDepotManifest('Dota 2 Korean', app_id=570, depot_id=373308, gid=8598853793233320583, creation_time='2019-03-05 17:16:49')>,
<CDNDepotManifest('Dota 2 Simplified Chinese', app_id=570, depot_id=373309, gid=6975893321745168138, creation_time='2019-06-25 21:40:37')>,
<CDNDepotManifest('Dota 2 Russian', app_id=570, depot_id=381456, gid=5425063725991897591, creation_time='2019-03-05 17:19:53')>,
<CDNDepotManifest('Dota 2 Workshop tools', app_id=570, depot_id=381450, gid=8629205096668418087, creation_time='2019-06-29 16:04:18')>,
<CDNDepotManifest('Dota 2 OpenGL Windows', app_id=570, depot_id=401531, gid=6502316736107281444, creation_time='2019-06-07 19:04:08')>,
<CDNDepotManifest('Dota 2 Vulkan Common', app_id=570, depot_id=401535, gid=6405492872419215600, creation_time='2019-06-07 19:04:11')>,
<CDNDepotManifest('Dota 2 Vulkan Win64', app_id=570, depot_id=401536, gid=3821288251412129608, creation_time='2019-06-25 21:42:29')>,
<CDNDepotManifest('Dota 2 Vulkan Linux64', app_id=570, depot_id=401537, gid=3144805829218032316, creation_time='2019-06-17 16:54:43')>,
<CDNDepotManifest('Dota 2 VR', app_id=570, depot_id=313255, gid=706332602567268673, creation_time='2017-10-04 18:52:14')>,
<CDNDepotManifest('Dota 2 Vulkan Mac', app_id=570, depot_id=401538, gid=2223235822414824351, creation_time='2019-06-11 19:37:19')>]
>>> mycdn.get_manifests(570, filter_func=lambda depot_id, info: 'Dota 2 Content' in info['name'])
[<CDNDepotManifest('Dota 2 Content', app_id=570, depot_id=373301, gid=6397590570861788404, creation_time='2019-06-29 16:03:11')>,
<CDNDepotManifest('Dota 2 Content 2', app_id=570, depot_id=381451, gid=5769691971272474272, creation_time='2019-06-29 00:19:02')>,
<CDNDepotManifest('Dota 2 Content 3', app_id=570, depot_id=381452, gid=3194393866044592918, creation_time='2019-06-27 00:05:38')>,
<CDNDepotManifest('Dota 2 Content 4', app_id=570, depot_id=381453, gid=8005824150061180163, creation_time='2019-06-08 07:49:57')>,
<CDNDepotManifest('Dota 2 Content 5', app_id=570, depot_id=381454, gid=9003299908441378336, creation_time='2019-06-26 18:56:19')>,
<CDNDepotManifest('Dota 2 Content 6', app_id=570, depot_id=381455, gid=8000458746487720619, creation_time='2019-06-29 00:19:43')>]
Listing files
>>> file_list = mycdn.iter_files(570)
>>> list(file_list)[:10]
[<CDNDepotFile(570, 373301, 6397590570861788404, 'game\dota_addons\dungeon\particles\test_particle\generic_attack_crit_blur_rope.vpcf_c', 2134)>,
<CDNDepotFile(570, 373301, 6397590570861788404, 'game\dota_addons\dungeon\materials\blends\mud_brick_normal_psd_5cc4fe8b.vtex_c', 351444)>,
<CDNDepotFile(570, 373301, 6397590570861788404, 'game\dota_addons\hero_demo\scripts\vscripts\la_spawn_enemy_at_target.lua', 1230)>,
<CDNDepotFile(570, 373301, 6397590570861788404, 'game\dota_addons\winter_2018\particles\dark_moon\darkmoon_last_hit_effect_damage_flash_b.vpcf_c', 1386)>,
<CDNDepotFile(570, 373301, 6397590570861788404, 'game\dota_addons\dungeon\scripts\vscripts\abilities\siltbreaker_line_wave.lua', 3305)>,
<CDNDepotFile(570, 373301, 6397590570861788404, 'game\dota_addons\dungeon\materials\models\heroes\broodmother\broodmother_body_poison.vmat_c', 10888)>,
<CDNDepotFile(570, 373301, 6397590570861788404, 'game\dota\resource\cursor\workshop\sltv_shaker_cursor_pack\cursor_spell_default.ani', 4362)>,
<CDNDepotFile(570, 373301, 6397590570861788404, 'game\dota_addons\overthrow\panorama\images\custom_game\team_icons\team_icon_tiger_01_png.vtex_c', 18340)>,
<CDNDepotFile(570, 373301, 6397590570861788404, 'game\dota\resource\cursor\valve\ti7\cursor_attack_illegal.bmp', 4152)>,
<CDNDepotFile(570, 373301, 6397590570861788404, 'game\dota_addons\winter_2018\models\creeps\ice_biome\undeadtusk\undead_tuskskeleton01.vmdl_c', 13516)>
Reading a file directly from SteamPipe
>>> file_list = mycdn.iter_files(570, r'game\dota\gameinfo.gi')
>>> myfile = next(file_list)
<CDNDepotFile(570, 373301, 6397590570861788404, 'game\dota\gameinfo.gi', 6808)>
>>> print(myfile.read(80).decode('utf-8'))
"GameInfo"
{
game "Dota 2"
title "Dota 2"
gamelogo 1
type multiplayer_only
...
-
class
steam.client.cdn.
CDNClient
(client)¶ Bases:
object
CDNClient allows loading and reading of manifests for Steam apps are used to list and download content
Parameters: client ( SteamClient
) – logged in SteamClient instance-
DepotManifestClass
¶ alias of
CDNDepotManifest
-
app_depots
= None¶ app depot info
-
beta_passwords
= None¶ beta branch decryption keys
-
cdn_cmd
(command, args)¶ Run CDN command request
Parameters: Returns: requests response
Return type: requests.Response
Raises: SteamError – on error
-
cell_id
= 0¶ Cell ID to use, initialized from SteamClient instance
-
check_beta_password
(app_id, password)¶ Check branch beta password to unlock encrypted branches
Parameters: Returns: result
Return type:
-
clear_cache
()¶ Cleared cached information. Next call on methods with caching will return fresh data
-
depot_keys
= None¶ depot decryption keys
-
fetch_content_servers
(num_servers=20)¶ Update CS server list
Parameters: num_servers (int) – numbers of CS server to fetch
-
get_app_depot_info
(app_id)¶
-
get_chunk
(app_id, depot_id, chunk_id)¶ Download a single content chunk
Parameters: Returns: chunk data
Return type: Raises: SteamError – error message
-
get_content_server
(rotate=False)¶ Get a CS server for content download
Parameters: rotate (bool) – forcefully rotate server list and get a new server
-
get_depot_key
(app_id, depot_id)¶ Get depot key, which is needed to decrypt files
Parameters: Returns: returns decryption key
Return type: Raises: SteamError – error message
-
get_manifest
(app_id, depot_id, manifest_gid, decrypt=True, manifest_request_code=0)¶ Download a manifest file
Parameters: Returns: manifest instance
Return type:
-
get_manifest_for_workshop_item
(item_id)¶ Get the manifest file for a worshop item that is hosted on SteamPipe
Parameters: item_id (int) – Workshop ID Returns: manifest instance Return type: CDNDepotManifest
Raises: ManifestError, SteamError
-
get_manifest_request_code
(app_id, depot_id, manifest_gid, branch='public', branch_password_hash=None)¶ Get manifest request code for authenticating manifest download
Parameters: Returns: manifest request code
Return type:
-
get_manifests
(app_id, branch='public', password=None, filter_func=None, decrypt=True)¶ Get a list of CDNDepotManifest for app
Parameters: Returns: list of
CDNDepotManifest
Return type: Raises: ManifestError, SteamError
-
gpool
= None¶ task pool
-
has_license_for_depot
(depot_id)¶ Check if there is license for depot
Parameters: depot_id (int) – depot ID Returns: True if we have license Return type: bool
-
iter_files
(app_id, filename_filter=None, branch='public', password=None, filter_func=None)¶ Like
get_manifests()
but returns a iterator that goes through all the files in all the manifest.Parameters: Returns: generator of of CDN files
Return type:
-
licensed_app_ids
= None¶ app_ids that the SteamClient instance has access to
-
licensed_depot_ids
= None¶ depot_ids that the SteamClient instance has access to
-
load_licenses
()¶ Read licenses from SteamClient instance, required for determining accessible content
-
manifests
= None¶ CDNDepotManifest instances
-
servers
= deque([])¶ CS Server list
-
steam
= None¶ SteamClient instance
-
-
class
steam.client.cdn.
CDNDepotFile
(manifest, file_mapping)¶ Bases:
steam.core.manifest.DepotFile
File-like object proxy for content files located on SteamPipe
Parameters: - manifest (
CDNDepotManifest
) – parrent manifest instance - file_mapping (ContentManifestPayload.FileMapping) – file mapping instance from manifest
-
flags
¶ File flags
Type: EDepotFileFlag
-
next
()¶
-
read
(length=-1)¶ Read bytes from the file
Parameters: length (int) – number of bytes to read. Read the whole file if not set Returns: file data Return type: bytes
-
seek
(offset, whence=0)¶ Seen file
Parameters: - offset (int) – file offset
- whence (int) – offset mode, see
io.IOBase.seek()
- manifest (
-
class
steam.client.cdn.
CDNDepotManifest
(cdn_client, app_id, data)¶ Bases:
steam.core.manifest.DepotManifest
Holds manifest metadata and file list.
Parameters: -
DepotFileClass
¶ alias of
CDNDepotFile
-
PROTOBUF_ENDOFMANIFEST_MAGIC
= 851711403¶
-
PROTOBUF_METADATA_MAGIC
= 524817086¶
-
PROTOBUF_PAYLOAD_MAGIC
= 1911953360¶
-
PROTOBUF_SIGNATURE_MAGIC
= 461486103¶
-
decrypt_filenames
(depot_key)¶ Decrypt all filenames in the manifest
Parameters: depot_key (bytes) – depot key Raises: RuntimeError
-
deserialize
(data)¶ Deserialize a manifest (compressed or uncompressed)
Parameters: data (bytes) – manifest data
-
name
= None¶ set only by
CDNClient.get_manifests()
-
-
class
steam.client.cdn.
ContentServer
¶ Bases:
object
-
cell_id
= 0¶
-
host
= None¶
-
https
= False¶
-
load
= None¶
-
port
= None¶
-
type
= None¶
-
vhost
= None¶
-
weighted_load
= None¶
-
-
steam.client.cdn.
decrypt_manifest_gid_2
(encrypted_gid, password)¶ Decrypt manifest gid v2 bytes
Parameters: - encrypted_gid (bytes) – encrypted gid v2 bytes
- password (byt) – encryption password
Returns: manifest gid
Return type:
-
steam.client.cdn.
get_content_servers_from_cs
(cell_id, host='cs.steamcontent.com', port=80, num_servers=20, session=None)¶ Get a list of CS servers from a single CS server
Parameters: Returns: list of CS servers
Return type:
-
steam.client.cdn.
get_content_servers_from_webapi
(cell_id, num_servers=20)¶ Get a list of CS servers from Steam WebAPI
Parameters: Returns: list of CS servers
Return type:
gc¶
GameCoordinator
is used to proxy messages from/to GC.
It takes care of the encapsulation details, but on its own is not
enough to communicate with a given GC.
Example implementation of Dota 2 GC client with inheritance.
import myDotaModule
from steam.client import SteamClient
from steam.core.msg import GCMsgHdrProto
from steam.client.gc import GameCoordinator
class ExampleDotaClient(GameCoordinator):
def __init__(self, steam):
GameCoordinator.__init__(self, steam, 570)
def _process_gc_message(self, emsg, header, body):
if emsg == 4004: # EMsgGCClientWelcome
message = myDotaModule.gcsdk_gcmessages_pb2.CMsgClientWelcome()
message.ParseFromString(body)
print message
def send_hello(self):
header = GCMsgHdrProto(4006) # EMsgGCClientHello
body = myDotaModule.gcsdk_gcmessages_pb2.CMsgClientHello()
self.send(header, body.SerializeToString())
client = SteamClient()
dota = ExampleDotaClient(client)
client.login()
client.games_played([570])
dota.send_hello()
The above code assumes that we have a myDotaModule
that contains the appropriate
protobufs needed to (de)serialize message for communication with GC.
-
class
steam.client.gc.
GameCoordinator
(steam_client, app_id)¶ Bases:
eventemitter.EventEmitter
GameCoordinator
is used to proxy messages from/to GCParameters: - steam_client (
steam.client.SteamClient
) – steam client instance - app_id (
int
) – app id of the application
Incoming messages are emitted as events using their
EMsg
as an event identifier.Parameters: - header (
steam.core.msg.GCMsgHdr
) – message header - body (
bytes
) – raw message body
-
emit
(event, *args)¶ Emit event with some arguments
Parameters: - event (any type) – event identifier
- args – any or no arguments
- steam_client (
user¶
-
class
steam.client.user.
SteamUser
(steam_id, steam)¶ Bases:
object
A data model for a Steam user. Holds user persona state, and related actions
Note
This is an internal object that can be obtained by
SteamClient.get_user()
-
relationship
= 0¶ friendship status
-
steam_id
= SteamID(id=0, type='Invalid', universe='Invalid', instance=0)¶ steam id
-
get_ps
(field_name, wait_pstate=True)¶ Get property from PersonaState
-
last_logon
¶ Return type: datetime
,None
-
last_logoff
¶ Return type: datetime
,None
-
state
¶ Personsa state (e.g. Online, Offline, Away, Busy, etc)
Return type: EPersonaState
-
get_avatar_url
(size=2)¶ Get URL to avatar picture
Parameters: size ( int
) – possible values are0
,1
, or2
corresponding to small, medium, largeReturns: url to avatar Return type: str
-
send_message
(message)¶ Send chat message to this steam user
Parameters: message (str) – message to send
-
block
()¶ Block user
-
unblock
()¶ Unblock user
-
core¶
cm¶
-
class
steam.core.cm.
CMClient
(protocol=0)¶ Bases:
eventemitter.EventEmitter
CMClient provides a secure message channel to Steam CM servers Can be used as mixing or on it’s own.
Incoming messages are parsed and emitted as events using their
steam.enums.emsg.EMsg
as event identifier-
EVENT_CONNECTED
= 'connected'¶ Connection establed to CM server
-
EVENT_DISCONNECTED
= 'disconnected'¶ Connection closed
-
EVENT_CHANNEL_SECURED
= 'channel_secured'¶ After successful completion of encryption handshake
-
PROTOCOL_TCP
= 0¶ TCP protocol enum
-
PROTOCOL_UDP
= 1¶ UDP protocol enum
-
verbose_debug
= False¶ print message connects in debug
-
auto_discovery
= True¶ enables automatic CM discovery
-
current_server_addr
= None¶ (ip, port) tuple
-
connected
= False¶ True
if connected to CM
-
channel_secured
= False¶ True
once secure channel handshake is complete
-
channel_key
= None¶ channel encryption key
-
channel_hmac
= None¶ HMAC secret
-
steam_id
= SteamID(id=0, type='Invalid', universe='Invalid', instance=0)¶ SteamID
of the current user
-
session_id
= None¶ session id when logged in
-
cell_id
= 0¶ cell id provided by CM
-
cm_servers
= None¶ a instance of
CMServerList
-
emit
(event, *args)¶ Emit event with some arguments
Parameters: - event (any type) – event identifier
- args – any or no arguments
-
connect
(retry=0, delay=0)¶ Initiate connection to CM. Blocks until connected unless
retry
is specified.Parameters: Returns: successful connection
Return type:
-
disconnect
()¶ Close connection
-
send
(message)¶ Send a message
Parameters: message ( steam.core.msg.Msg
,steam.core.msg.MsgProto
) – a message instance
-
sleep
(seconds)¶ Yeild and sleep N seconds. Allows other greenlets to run
-
idle
()¶ Yeild in the current greenlet and let other greenlets run
-
-
class
steam.core.cm.
CMServerList
¶ Bases:
object
Managing object for CM servers
Comes with built in list of CM server to bootstrap a connection
To get a server address from the list simply iterate over it
servers = CMServerList() for server_addr in servers: pass
The good servers are returned first, then bad ones. After failing to connect call
mark_bad()
with the server addr. When connection succeeds break out of the loop.-
Good
= 1¶
-
Bad
= 2¶
-
last_updated
= 0¶ timestamp of when the list was last updated
-
cell_id
= 0¶ cell id of the server list
-
bad_timestamp
= 300¶ how long bad mark lasts in seconds
-
clear
()¶ Clears the server list
-
bootstrap_from_dns
()¶ Fetches CM server list from WebAPI and replaces the current one
-
bootstrap_from_webapi
(cell_id=0)¶ Fetches CM server list from WebAPI and replaces the current one
Parameters: cellid ( int
) – cell id (0 = global)Returns: booststrap success Return type: bool
-
reset_all
()¶ Reset status for all servers in the list
-
mark_good
(server_addr)¶ Mark server address as good
Parameters: server_addr ( tuple
) – (ip, port) tuple
-
connection¶
-
class
steam.core.connection.
Connection
¶ Bases:
object
-
MAGIC
= b'VT01'¶
-
FMT
= '<I4s'¶
-
FMT_SIZE
= 8¶
-
local_address
¶
-
connect
(server_addr)¶
-
disconnect
()¶
-
put_message
(message)¶
-
-
class
steam.core.connection.
TCPConnection
¶
-
class
steam.core.connection.
UDPConnection
¶
crypto¶
All function in this module take and return bytes
-
class
steam.core.crypto.
UniverseKey
¶ Public keys for Universes
-
Public
= RsaKey(n=157243575616349276747301754768309867177831122156025923746844676060406588352107224217333901959919174986455773957425614730531751228977954133934190386306482548943067736608585548911467384424773932642576067292137056263003121836768211312089498275802694267916711103128551999842076575732754013467986241640244933837449, e=17)¶
-
-
steam.core.crypto.
pad
(s)¶
-
steam.core.crypto.
unpad
(s)¶
-
steam.core.crypto.
generate_session_key
(hmac_secret=b'')¶ Parameters: hmac_secret ( bytes
) – optional HMACReturns: (session_key, encrypted_session_key) tuple Return type: tuple
-
steam.core.crypto.
symmetric_encrypt
(message, key)¶
-
steam.core.crypto.
symmetric_encrypt_ecb
(message, key)¶
-
steam.core.crypto.
symmetric_encrypt_HMAC
(message, key, hmac_secret)¶
-
steam.core.crypto.
symmetric_encrypt_iv
(iv, key)¶
-
steam.core.crypto.
symmetric_encrypt_with_iv
(message, key, iv)¶
-
steam.core.crypto.
symmetric_decrypt
(cyphertext, key)¶
-
steam.core.crypto.
symmetric_decrypt_ecb
(cyphertext, key)¶
-
steam.core.crypto.
symmetric_decrypt_HMAC
(cyphertext, key, hmac_secret)¶ Raises: RuntimeError
when HMAC verification fails
-
steam.core.crypto.
symmetric_decrypt_iv
(cyphertext, key)¶
-
steam.core.crypto.
symmetric_decrypt_with_iv
(cyphertext, key, iv)¶
-
steam.core.crypto.
hmac_sha1
(secret, data)¶
-
steam.core.crypto.
sha1_hash
(data)¶
-
steam.core.crypto.
md5_hash
(data)¶
-
steam.core.crypto.
rsa_publickey
(mod, exp)¶
-
steam.core.crypto.
pkcs1v15_encrypt
(key, message)¶
manifest¶
-
class
steam.core.manifest.
DepotFile
(manifest, file_mapping)¶ Bases:
object
Depot file
Parameters: - manifest (
DepotManifest
) – depot manifest - file_mapping (ContentManifestPayload.FileMapping) – depot file mapping instance
-
flags
¶ File flags
Type: EDepotFileFlag
- manifest (
-
class
steam.core.manifest.
DepotManifest
(data=None)¶ Bases:
object
Represents depot manifest
Parameters: data (bytes) – manifest data -
PROTOBUF_PAYLOAD_MAGIC
= 1911953360¶
-
PROTOBUF_METADATA_MAGIC
= 524817086¶
-
PROTOBUF_SIGNATURE_MAGIC
= 461486103¶
-
PROTOBUF_ENDOFMANIFEST_MAGIC
= 851711403¶
-
decrypt_filenames
(depot_key)¶ Decrypt all filenames in the manifest
Parameters: depot_key (bytes) – depot key Raises: RuntimeError
-
deserialize
(data)¶ Deserialize a manifest (compressed or uncompressed)
Parameters: data (bytes) – manifest data
-
msg¶
-
steam.core.msg.
get_cmsg
(emsg)¶ Get protobuf for a given EMsg
Parameters: emsg ( steam.enums.emsg.EMsg
,int
) – EMsgReturns: protobuf message
enums¶
This module contains various value enumerations.
They are all based on IntEnum
, which gives them int
properties.
They can be compared to int
and used in places there int
is required.
Like for example, protobuf message.
They also provide a easy way to resolve a name or value for a specific enum.
>>> EResult.OK
<EResult.OK: 1>
>>> EResult(1)
<EResult.OK: 1>
>>> EResult['OK']
<EResult.OK: 1>
>>> EResult.OK == 1
True
Note
all enums from steam.enum.common
can be imported directly from steam.enum
enums.common¶
-
class
steam.enums.common.
EResult
¶ Doc: https://partner.steamgames.com/doc/api/steam_api#EResult
-
Invalid
= 0¶
-
OK
= 1¶ success
-
Fail
= 2¶ generic failure
-
NoConnection
= 3¶ no/failed network connection
-
InvalidPassword
= 5¶ password/ticket is invalid
-
LoggedInElsewhere
= 6¶ same user logged in elsewhere
-
InvalidProtocolVer
= 7¶ protocol version is incorrect
-
InvalidParam
= 8¶ a parameter is incorrect
-
FileNotFound
= 9¶ file was not found
-
Busy
= 10¶ called method busy - action not taken
-
InvalidState
= 11¶ called object was in an invalid state
-
InvalidName
= 12¶ name is invalid
-
InvalidEmail
= 13¶ email is invalid
-
DuplicateName
= 14¶ name is not unique
-
AccessDenied
= 15¶ access is denied
-
Timeout
= 16¶ operation timed out
-
Banned
= 17¶ VAC2 banned
-
AccountNotFound
= 18¶ account not found
-
InvalidSteamID
= 19¶ steamID is invalid
The requested service is currently unavailable
-
NotLoggedOn
= 21¶ The user is not logged on
-
Pending
= 22¶ Request is pending (may be in process, or waiting on third party)
-
EncryptionFailure
= 23¶ Encryption or Decryption failed
-
InsufficientPrivilege
= 24¶ Insufficient privilege
-
LimitExceeded
= 25¶ Too much of a good thing
-
Revoked
= 26¶ Access has been revoked (used for revoked guest passes)
-
Expired
= 27¶ License/Guest pass the user is trying to access is expired
-
AlreadyRedeemed
= 28¶ Guest pass has already been redeemed by account, cannot be acked again
-
DuplicateRequest
= 29¶ The request is a duplicate and the action has already occurred in the past, ignored this time
-
AlreadyOwned
= 30¶ All the games in this guest pass redemption request are already owned by the user
-
IPNotFound
= 31¶ IP address not found
-
PersistFailed
= 32¶ failed to write change to the data store
-
LockingFailed
= 33¶ failed to acquire access lock for this operation
-
LogonSessionReplaced
= 34¶
-
ConnectFailed
= 35¶
-
HandshakeFailed
= 36¶
-
IOFailure
= 37¶
-
RemoteDisconnect
= 38¶
-
ShoppingCartNotFound
= 39¶ failed to find the shopping cart requested
-
Blocked
= 40¶ a user didn’t allow it
-
Ignored
= 41¶ target is ignoring sender
-
NoMatch
= 42¶ nothing matching the request found
-
AccountDisabled
= 43¶
-
ServiceReadOnly
= 44¶ this service is not accepting content changes right now
-
AccountNotFeatured
= 45¶ account doesn’t have value, so this feature isn’t available
-
AdministratorOK
= 46¶ allowed to take this action, but only because requester is admin
-
ContentVersion
= 47¶ A Version mismatch in content transmitted within the Steam protocol.
-
TryAnotherCM
= 48¶ The current CM can’t service the user making a request, user should try another.
-
PasswordRequiredToKickSession
= 49¶ You are already logged in elsewhere, this cached credential login has failed.
-
AlreadyLoggedInElsewhere
= 50¶ You are already logged in elsewhere, you must wait
-
Suspended
= 51¶ Long running operation (content download) suspended/paused
-
Cancelled
= 52¶ Operation canceled (typically by user: content download)
-
DataCorruption
= 53¶ Operation canceled because data is ill formed or unrecoverable
-
DiskFull
= 54¶ Operation canceled - not enough disk space.
-
RemoteCallFailed
= 55¶ an remote call or IPC call failed
-
PasswordUnset
= 56¶ Password could not be verified as it’s unset server side
-
ExternalAccountUnlinked
= 57¶ External account (PSN, Facebook…) is not linked to a Steam account
-
PSNTicketInvalid
= 58¶ PSN ticket was invalid
-
ExternalAccountAlreadyLinked
= 59¶ External account (PSN, Facebook…) is already linked to some other account, must explicitly request to replace/delete the link first
-
RemoteFileConflict
= 60¶ The sync cannot resume due to a conflict between the local and remote files
-
IllegalPassword
= 61¶ The requested new password is not legal
-
SameAsPreviousValue
= 62¶ new value is the same as the old one ( secret question and answer )
-
AccountLogonDenied
= 63¶ account login denied due to 2nd factor authentication failure
-
CannotUseOldPassword
= 64¶ The requested new password is not legal
-
InvalidLoginAuthCode
= 65¶ account login denied due to auth code invalid
-
AccountLogonDeniedNoMail
= 66¶ account login denied due to 2nd factor auth failure - and no mail has been sent
-
HardwareNotCapableOfIPT
= 67¶
-
IPTInitError
= 68¶
-
ParentalControlRestricted
= 69¶ operation failed due to parental control restrictions for current user
-
FacebookQueryError
= 70¶ Facebook query returned an error
-
ExpiredLoginAuthCode
= 71¶ account login denied due to auth code expired
-
IPLoginRestrictionFailed
= 72¶
-
AccountLockedDown
= 73¶
-
AccountLogonDeniedVerifiedEmailRequired
= 74¶
-
NoMatchingURL
= 75¶
-
BadResponse
= 76¶ parse failure, missing field, etc.
-
RequirePasswordReEntry
= 77¶ The user cannot complete the action until they re-enter their password
-
ValueOutOfRange
= 78¶ the value entered is outside the acceptable range
-
UnexpectedError
= 79¶ something happened that we didn’t expect to ever happen
-
Disabled
= 80¶ The requested service has been configured to be unavailable
-
InvalidCEGSubmission
= 81¶ The set of files submitted to the CEG server are not valid !
-
RestrictedDevice
= 82¶ The device being used is not allowed to perform this action
-
RegionLocked
= 83¶ The action could not be complete because it is region restricted
-
RateLimitExceeded
= 84¶ Temporary rate limit exceeded, try again later, different from k_EResultLimitExceeded which may be permanent
-
AccountLoginDeniedNeedTwoFactor
= 85¶ Need two-factor code to login
-
ItemDeleted
= 86¶ The thing we’re trying to access has been deleted
-
AccountLoginDeniedThrottle
= 87¶ login attempt failed, try to throttle response to possible attacker
-
TwoFactorCodeMismatch
= 88¶ two factor code mismatch
-
TwoFactorActivationCodeMismatch
= 89¶ activation code for two-factor didn’t match
-
AccountAssociatedToMultiplePartners
= 90¶ account has been associated with multiple partners
-
NotModified
= 91¶ data not modified
-
NoMobileDevice
= 92¶ the account does not have a mobile device associated with it
-
TimeNotSynced
= 93¶ the time presented is out of range or tolerance
-
SMSCodeFailed
= 94¶ SMS code failure (no match, none pending, etc.)
-
AccountLimitExceeded
= 95¶ Too many accounts access this resource
-
AccountActivityLimitExceeded
= 96¶ Too many changes to this account
-
PhoneActivityLimitExceeded
= 97¶ Too many changes to this phone
-
RefundToWallet
= 98¶ Cannot refund to payment method, must use wallet
-
EmailSendFailure
= 99¶ Cannot send an email
-
NotSettled
= 100¶ Can’t perform operation till payment has settled
-
NeedCaptcha
= 101¶ Needs to provide a valid captcha
-
GSLTDenied
= 102¶ a game server login token owned by this token’s owner has been banned
-
GSOwnerDenied
= 103¶ game server owner is denied for other reason (account lock, community ban, vac ban, missing phone)
-
InvalidItemType
= 104¶ the type of thing we were requested to act on is invalid
-
IPBanned
= 105¶ the ip address has been banned from taking this action
-
GSLTExpired
= 106¶ this token has expired from disuse; can be reset for use
-
InsufficientFunds
= 107¶ user doesn’t have enough wallet funds to complete the action
-
TooManyPending
= 108¶ There are too many of this thing pending already
-
NoSiteLicensesFound
= 109¶ No site licenses found
-
WGNetworkSendExceeded
= 110¶ the WG couldn’t send a response because we exceeded max network send size
-
AccountNotFriends
= 111¶
-
LimitedUserAccount
= 112¶
-
CantRemoveItem
= 113¶
-
AccountHasBeenDeleted
= 114¶
-
AccountHasAnExistingUserCancelledLicense
= 115¶
-
-
class
steam.enums.common.
EUniverse
¶ Doc: https://partner.steamgames.com/doc/api/steam_api#EUniverse
-
Invalid
= 0¶
-
Public
= 1¶
-
Beta
= 2¶
-
Internal
= 3¶
-
Dev
= 4¶
-
Max
= 6¶
-
-
class
steam.enums.common.
EType
¶ Doc: https://partner.steamgames.com/doc/api/steam_api#EAccountType
-
Invalid
= 0¶ Used for invalid Steam IDs
-
Individual
= 1¶ single user account
-
Multiseat
= 2¶ multiseat (e.g. cybercafe) account
-
GameServer
= 3¶ game server account
-
AnonGameServer
= 4¶ anonymous game server account
-
Pending
= 5¶ pending
-
ContentServer
= 6¶ content server
-
Clan
= 7¶ Steam Group (clan)
-
Chat
= 8¶ Steam group chat or lobby
-
ConsoleUser
= 9¶ Fake SteamID for local PSN account on PS3 or Live account on 360, etc
-
AnonUser
= 10¶ Anonymous user account. (Used to create an account or reset a password)
-
Max
= 11¶
-
-
class
steam.enums.common.
EInstanceFlag
¶ An enumeration.
-
MMSLobby
= 131072¶
-
Lobby
= 262144¶
-
Clan
= 524288¶
-
-
class
steam.enums.common.
EServerType
¶ An enumeration.
-
Other_Util
= -2¶
-
Other_Client
= -3¶
-
Other_CServer
= -4¶
-
Other_CEconBase
= -5¶
-
Invalid
= -1¶
-
Shell
= 0¶
-
GM
= 1¶
-
BUM
= 2¶
-
AM
= 3¶
-
BS
= 4¶
-
VS
= 5¶
-
ATS
= 6¶
-
CM
= 7¶
-
FBS
= 8¶
-
BoxMonitor
= 9¶
-
SS
= 10¶
-
DRMS
= 11¶
-
HubOBSOLETE
= 12¶
-
Console
= 13¶
-
PICS
= 14¶
-
Client
= 15¶
-
contentstats
= 16¶
-
DP
= 17¶
-
WG
= 18¶
-
SM
= 19¶
-
SLC
= 20¶
-
UFS
= 21¶
-
Util
= 23¶
-
DSS
= 24¶
-
Community
= 24¶
-
P2PRelayOBSOLETE
= 25¶
-
AppInformation
= 26¶
-
Spare
= 27¶
-
FTS
= 28¶
-
SiteLicense
= 29¶
-
PS
= 30¶
-
IS
= 31¶
-
CCS
= 32¶
-
DFS
= 33¶
-
LBS
= 34¶
-
MDS
= 35¶
-
CS
= 36¶
-
GC
= 37¶
-
NS
= 38¶
-
OGS
= 39¶
-
WebAPI
= 40¶
-
UDS
= 41¶
-
MMS
= 42¶
-
GMS
= 43¶
-
KGS
= 44¶
-
UCM
= 45¶
-
RM
= 46¶
-
FS
= 47¶
-
Econ
= 48¶
-
Backpack
= 49¶
-
UGS
= 50¶
-
StoreFeature
= 51¶
-
MoneyStats
= 52¶
-
CRE
= 53¶
-
UMQ
= 54¶
-
Workshop
= 55¶
-
BRP
= 56¶
-
GCH
= 57¶
-
MPAS
= 58¶
-
Trade
= 59¶
-
Secrets
= 60¶
-
Logsink
= 61¶
-
Market
= 62¶
-
Quest
= 63¶
-
WDS
= 64¶
-
ACS
= 65¶
-
PNP
= 66¶
-
TaxForm
= 67¶
-
ExternalMonitor
= 68¶
-
Parental
= 69¶
-
PartnerUpload
= 70¶
-
Partner
= 71¶
-
ES
= 72¶
-
DepotWebContent
= 73¶
-
ExternalConfig
= 74¶
-
GameNotifications
= 75¶
-
MarketRepl
= 76¶
-
MarketSearch
= 77¶
-
Localization
= 78¶
-
Steam2Emulator
= 79¶
-
PublicTest
= 80¶
-
SolrMgr
= 81¶
-
BroadcastIngester
= 82¶
-
BroadcastDirectory
= 83¶
-
VideoManager
= 84¶
-
TradeOffer
= 85¶
-
BroadcastChat
= 86¶
-
Phone
= 87¶
-
AccountScore
= 88¶
-
Support
= 89¶
-
LogRequest
= 90¶
-
LogWorker
= 91¶
-
EmailDelivery
= 92¶
-
InventoryManagement
= 93¶
-
Auth
= 94¶
-
StoreCatalog
= 95¶
-
HLTVRelay
= 96¶
-
IDLS
= 97¶
-
Perf
= 98¶
-
ItemInventory
= 99¶
-
Watchdog
= 100¶
-
AccountHistory
= 101¶
-
Chat
= 102¶
-
Shader
= 103¶
-
AccountHardware
= 104¶
-
WebRTC
= 105¶
-
Giveaway
= 106¶
-
ChatRoom
= 107¶
-
VoiceChat
= 108¶
-
QMS
= 109¶
-
Trust
= 110¶
-
TimeMachine
= 111¶
-
VACDBMaster
= 112¶
-
ContentServerConfig
= 113¶
-
Minigame
= 114¶
-
MLTrain
= 115¶
-
VACTest
= 116¶
-
TaxService
= 117¶
-
MLInference
= 118¶
-
UGSAggregate
= 119¶
-
TURN
= 120¶
-
RemoteClient
= 121¶
-
BroadcastOrigin
= 122¶
-
BroadcastChannel
= 123¶
-
SteamAR
= 124¶
-
China
= 125¶
-
CrashDump
= 126¶
-
Max
= 127¶
-
-
class
steam.enums.common.
EOSType
¶ An enumeration.
-
Unknown
= -1¶
-
Web
= -700¶
-
IOSUnknown
= -600¶
-
IOS1
= -599¶
-
IOS2
= -598¶
-
IOS3
= -597¶
-
IOS4
= -596¶
-
IOS5
= -595¶
-
IOS6
= -594¶
-
IOS6_1
= -593¶
-
IOS7
= -592¶
-
IOS7_1
= -591¶
-
IOS8
= -590¶
-
IOS8_1
= -589¶
-
IOS8_2
= -588¶
-
IOS8_3
= -587¶
-
IOS8_4
= -586¶
-
IOS9
= -585¶
-
IOS9_1
= -584¶
-
IOS9_2
= -583¶
-
IOS9_3
= -582¶
-
IOS10
= -581¶
-
IOS10_1
= -580¶
-
IOS10_2
= -579¶
-
IOS10_3
= -578¶
-
IOS11
= -577¶
-
IOS11_1
= -576¶
-
IOS11_2
= -575¶
-
IOS11_3
= -574¶
-
IOS11_4
= -573¶
-
IOS12
= -572¶
-
IOS12_1
= -571¶
-
AndroidUnknown
= -500¶
-
Android6
= -499¶
-
Android7
= -498¶
-
Android8
= -497¶
-
Android9
= -496¶
-
UMQ
= -400¶
-
PS3
= -300¶
-
MacOSUnknown
= -102¶
-
MacOS104
= -101¶
-
MacOS105
= -100¶
-
MacOS1058
= -99¶
-
MacOS106
= -95¶
-
MacOS1063
= -94¶
-
MacOS1064_slgu
= -93¶
-
MacOS1067
= -92¶
-
MacOS107
= -90¶
-
MacOS108
= -89¶
-
MacOS109
= -88¶
-
MacOS1010
= -87¶
-
MacOS1011
= -86¶
-
MacOS1012
= -85¶
-
Macos1013
= -84¶
-
Macos1014
= -83¶
-
Macos1015
= -82¶
-
MacOSMax
= -1¶
-
LinuxUnknown
= -203¶
-
Linux22
= -202¶
-
Linux24
= -201¶
-
Linux26
= -200¶
-
Linux32
= -199¶
-
Linux35
= -198¶
-
Linux36
= -197¶
-
Linux310
= -196¶
-
Linux316
= -195¶
-
Linux318
= -194¶
-
Linux3x
= -193¶
-
Linux4x
= -192¶
-
Linux41
= -191¶
-
Linux44
= -190¶
-
Linux49
= -189¶
-
Linux414
= -188¶
-
Linux419
= -187¶
-
Linux5x
= -186¶
-
LinuxMax
= -101¶
-
WinUnknown
= 0¶
-
Win311
= 1¶
-
Win95
= 2¶
-
Win98
= 3¶
-
WinME
= 4¶
-
WinNT
= 5¶
-
Win2000
= 6¶
-
WinXP
= 7¶
-
Win2003
= 8¶
-
WinVista
= 9¶
-
Windows7
= 10¶
-
Win2008
= 11¶
-
Win2012
= 12¶
-
Windows8
= 13¶
-
Windows81
= 14¶
-
Win2012R2
= 15¶
-
Windows10
= 16¶
-
Win2016
= 17¶
-
WinMAX
= 18¶
-
Max
= 26¶
-
-
class
steam.enums.common.
EFriendRelationship
¶ An enumeration.
-
NONE
= 0¶
-
Blocked
= 1¶
-
RequestRecipient
= 2¶
-
Friend
= 3¶
-
RequestInitiator
= 4¶
-
Ignored
= 5¶
-
IgnoredFriend
= 6¶
-
SuggestedFriend_DEPRECATED
= 7¶
-
Max
= 8¶
-
-
class
steam.enums.common.
EAccountFlags
¶ An enumeration.
-
NormalUser
= 0¶
-
PersonaNameSet
= 1¶
-
Unbannable
= 2¶
-
PasswordSet
= 4¶
-
Support
= 8¶
-
Admin
= 16¶
-
Supervisor
= 32¶
-
AppEditor
= 64¶
-
HWIDSet
= 128¶
-
PersonalQASet
= 256¶
-
VacBeta
= 512¶
-
Debug
= 1024¶
-
Disabled
= 2048¶
-
LimitedUser
= 4096¶
-
LimitedUserForce
= 8192¶
-
EmailValidated
= 16384¶
-
MarketingTreatment
= 32768¶
-
OGGInviteOptOut
= 65536¶
-
ForcePasswordChange
= 131072¶
-
ForceEmailVerification
= 262144¶
-
LogonExtraSecurity
= 524288¶
-
LogonExtraSecurityDisabled
= 1048576¶
-
Steam2MigrationComplete
= 2097152¶
-
NeedLogs
= 4194304¶
-
Lockdown
= 8388608¶
-
MasterAppEditor
= 16777216¶
-
BannedFromWebAPI
= 33554432¶
-
ClansOnlyFromFriends
= 67108864¶
-
GlobalModerator
= 134217728¶
-
ParentalSettings
= 268435456¶
-
ThirdPartySupport
= 536870912¶
-
NeedsSSANextSteamLogon
= 1073741824¶
-
-
class
steam.enums.common.
EFriendFlags
¶ An enumeration.
-
NONE
= 0¶
-
Blocked
= 1¶
-
FriendshipRequested
= 2¶
-
Immediate
= 4¶
-
ClanMember
= 8¶
-
OnGameServer
= 16¶
-
RequestingFriendship
= 128¶
-
RequestingInfo
= 256¶
-
Ignored
= 512¶
-
IgnoredFriend
= 1024¶
-
Suggested
= 2048¶
-
ChatMember
= 4096¶
-
FlagAll
= 65535¶
-
-
class
steam.enums.common.
EPersonaState
¶ An enumeration.
-
Offline
= 0¶
-
Online
= 1¶
-
Busy
= 2¶
-
Away
= 3¶
-
Snooze
= 4¶
-
LookingToTrade
= 5¶
-
LookingToPlay
= 6¶
-
Invisible
= 7¶
-
Max
= 8¶
-
-
class
steam.enums.common.
EPersonaStateFlag
¶ An enumeration.
-
HasRichPresence
= 1¶
-
InJoinableGame
= 2¶
-
Golden
= 4¶
-
RemotePlayTogether
= 8¶
-
ClientTypeWeb
= 256¶
-
ClientTypeMobile
= 512¶
-
ClientTypeTenfoot
= 1024¶
-
ClientTypeVR
= 2048¶
-
LaunchTypeGamepad
= 4096¶
-
LaunchTypeCompatTool
= 8192¶
-
-
class
steam.enums.common.
EClientPersonaStateFlag
¶ An enumeration.
-
Status
= 1¶
-
PlayerName
= 2¶
-
QueryPort
= 4¶
-
SourceID
= 8¶
-
Presence
= 16¶
-
Metadata
= 32¶
-
LastSeen
= 64¶
-
ClanInfo
= 128¶
-
GameExtraInfo
= 256¶
-
GameDataBlob
= 512¶
-
ClanTag
= 1024¶
-
Facebook
= 2048¶
-
RichPresence
= 4096¶
-
Broadcast
= 8192¶
-
Watching
= 16384¶
-
-
class
steam.enums.common.
ELeaderboardDataRequest
¶ An enumeration.
-
Global
= 0¶
-
GlobalAroundUser
= 1¶
-
Friends
= 2¶
-
Users
= 3¶
-
-
class
steam.enums.common.
ELeaderboardSortMethod
¶ An enumeration.
-
NONE
= 0¶
-
Ascending
= 1¶
-
Descending
= 2¶
-
-
class
steam.enums.common.
ELeaderboardDisplayType
¶ An enumeration.
-
NONE
= 0¶
-
Numeric
= 1¶
-
TimeSeconds
= 2¶
-
TimeMilliSeconds
= 3¶
-
-
class
steam.enums.common.
ELeaderboardUploadScoreMethod
¶ An enumeration.
-
NONE
= 0¶
-
KeepBest
= 1¶
-
ForceUpdate
= 2¶
-
-
class
steam.enums.common.
ETwoFactorTokenType
¶ An enumeration.
-
NONE
= 0¶
-
ValveMobileApp
= 1¶
-
ThirdParty
= 2¶
-
-
class
steam.enums.common.
EChatEntryType
¶ Doc: https://partner.steamgames.com/doc/api/steam_api#EChatEntryType
-
Invalid
= 0¶
-
ChatMsg
= 1¶ Normal text message from another user
-
Typing
= 2¶ Another user is typing (not used in multi-user chat)
-
InviteGame
= 3¶ Invite from other user into that users current game
-
Emote
= 4¶ text emote message (deprecated, should be treated as ChatMsg)
-
LobbyGameStart
= 5¶ lobby game is starting (dead - listen for LobbyGameCreated_t callback instead)
-
LeftConversation
= 6¶ user has left the conversation ( closed chat window )
-
Entered
= 7¶ user has entered the conversation (used in multi-user chat and group chat)
-
WasKicked
= 8¶ user was kicked (data: 64-bit steamid of actor performing the kick)
-
WasBanned
= 9¶ user was banned (data: 64-bit steamid of actor performing the ban)
-
Disconnected
= 10¶ user disconnected
-
HistoricalChat
= 11¶ a chat message from user’s chat history or offilne message
-
Reserved1
= 12¶ No longer used
-
Reserved2
= 13¶ No longer used
-
LinkBlocked
= 14¶ a link was removed by the chat filter.
-
-
class
steam.enums.common.
EChatRoomEnterResponse
¶ Doc: https://partner.steamgames.com/doc/api/steam_api#EChatRoomEnterResponse
-
Success
= 1¶ Success
-
DoesntExist
= 2¶ Chat doesn’t exist (probably closed)
-
NotAllowed
= 3¶ General Denied - You don’t have the permissions needed to join the chat
-
Full
= 4¶ Chat room has reached its maximum size
-
Error
= 5¶ Unexpected Error
-
Banned
= 6¶ You are banned from this chat room and may not join
-
Limited
= 7¶ Joining this chat is not allowed because you are a limited user (no value on account)
-
ClanDisabled
= 8¶ Attempt to join a clan chat when the clan is locked or disabled
-
CommunityBan
= 9¶ Attempt to join a chat when the user has a community lock on their account
-
MemberBlockedYou
= 10¶ Join failed - some member in the chat has blocked you from joining
-
YouBlockedMember
= 11¶ Join failed - you have blocked some member already in the chat
-
NoRankingDataLobby
= 12¶ No longer used
-
NoRankingDataUser
= 13¶ No longer used
-
RankOutOfRange
= 14¶ No longer used
-
RatelimitExceeded
= 15¶ Join failed - to many join attempts in a very short period of time
-
-
class
steam.enums.common.
ECurrencyCode
¶ An enumeration.
-
Invalid
= 0¶
-
USD
= 1¶
-
GBP
= 2¶
-
EUR
= 3¶
-
CHF
= 4¶
-
RUB
= 5¶
-
PLN
= 6¶
-
BRL
= 7¶
-
JPY
= 8¶
-
NOK
= 9¶
-
IDR
= 10¶
-
MYR
= 11¶
-
PHP
= 12¶
-
SGD
= 13¶
-
THB
= 14¶
-
VND
= 15¶
-
KRW
= 16¶
-
TRY
= 17¶
-
UAH
= 18¶
-
MXN
= 19¶
-
CAD
= 20¶
-
AUD
= 21¶
-
NZD
= 22¶
-
CNY
= 23¶
-
INR
= 24¶
-
CLP
= 25¶
-
PEN
= 26¶
-
COP
= 27¶
-
ZAR
= 28¶
-
HKD
= 29¶
-
TWD
= 30¶
-
SAR
= 31¶
-
AED
= 32¶
-
SEK
= 33¶
-
ARS
= 34¶
-
ILS
= 35¶
-
BYN
= 36¶
-
KZT
= 37¶
-
KWD
= 38¶
-
QAR
= 39¶
-
CRC
= 40¶
-
UYU
= 41¶
-
Max
= 42¶
-
-
class
steam.enums.common.
EDepotFileFlag
¶ An enumeration.
-
UserConfig
= 1¶
-
VersionedUserConfig
= 2¶
-
Encrypted
= 4¶
-
ReadOnly
= 8¶
-
Hidden
= 16¶
-
Executable
= 32¶
-
Directory
= 64¶
-
CustomExecutable
= 128¶
-
InstallScript
= 256¶
-
Symlink
= 512¶
-
-
class
steam.enums.common.
EProtoAppType
¶ An enumeration.
-
Invalid
= 0¶
-
Game
= 1¶
-
Application
= 2¶
-
Tool
= 4¶
-
Demo
= 8¶
-
Deprected
= 16¶
-
DLC
= 32¶
-
Guide
= 64¶
-
Driver
= 128¶
-
Config
= 256¶
-
Hardware
= 512¶
-
Franchise
= 1024¶
-
Video
= 2048¶
-
Plugin
= 4096¶
-
MusicAlbum
= 8192¶
-
Series
= 16384¶
-
Comic
= 32768¶
-
Beta
= 65536¶
-
Shortcut
= 1073741824¶
-
DepotOnly
= -2147483648¶
-
-
class
steam.enums.common.
EPublishedFileInappropriateProvider
¶ An enumeration.
-
Invalid
= 0¶
-
Google
= 1¶
-
Amazon
= 2¶
-
-
class
steam.enums.common.
EPublishedFileInappropriateResult
¶ An enumeration.
-
NotScanned
= 0¶
-
VeryUnlikely
= 1¶
-
Unlikely
= 30¶
-
Possible
= 50¶
-
Likely
= 75¶
-
VeryLikely
= 100¶
-
-
class
steam.enums.common.
EPublishedFileQueryType
¶ An enumeration.
-
RankedByVote
= 0¶
-
RankedByPublicationDate
= 1¶
-
AcceptedForGameRankedByAcceptanceDate
= 2¶
-
RankedByTrend
= 3¶
-
FavoritedByFriendsRankedByPublicationDate
= 4¶
-
CreatedByFriendsRankedByPublicationDate
= 5¶
-
RankedByNumTimesReported
= 6¶
-
CreatedByFollowedUsersRankedByPublicationDate
= 7¶
-
NotYetRated
= 8¶
-
RankedByTotalUniqueSubscriptions
= 9¶
-
RankedByTotalVotesAsc
= 10¶
-
RankedByVotesUp
= 11¶
-
RankedByTextSearch
= 12¶
-
RankedByPlaytimeTrend
= 13¶
-
RankedByTotalPlaytime
= 14¶
-
RankedByAveragePlaytimeTrend
= 15¶
-
RankedByLifetimeAveragePlaytime
= 16¶
-
RankedByPlaytimeSessionsTrend
= 17¶
-
RankedByLifetimePlaytimeSessions
= 18¶
-
RankedByInappropriateContentRating
= 19¶
-
-
class
steam.enums.common.
EUserBadge
¶ An enumeration.
-
Invalid
= 0¶
-
YearsOfService
= 1¶
-
Community
= 2¶
-
Portal2PotatoARG
= 3¶
-
TreasureHunt
= 4¶
-
SummerSale2011
= 5¶
-
WinterSale2011
= 6¶
-
SummerSale2012
= 7¶
-
WinterSale2012
= 8¶
-
CommunityTranslator
= 9¶
-
CommunityModerator
= 10¶
-
ValveEmployee
= 11¶
-
GameDeveloper
= 12¶
-
GameCollector
= 13¶
-
TradingCardBetaParticipant
= 14¶
-
SteamBoxBeta
= 15¶
-
Summer2014RedTeam
= 16¶
-
Summer2014BlueTeam
= 17¶
-
Summer2014PinkTeam
= 18¶
-
Summer2014GreenTeam
= 19¶
-
Summer2014PurpleTeam
= 20¶
-
Auction2014
= 21¶
-
GoldenProfile2014
= 22¶
-
TowerAttackMiniGame
= 23¶
-
Winter2015ARG_RedHerring
= 24¶
-
SteamAwards2016Nominations
= 25¶
-
StickerCompletionist2017
= 26¶
-
SteamAwards2017Nominations
= 27¶
-
SpringCleaning2018
= 28¶
-
Salien
= 29¶
-
RetiredModerator
= 30¶
-
SteamAwards2018Nominations
= 31¶
-
ValveModerator
= 32¶
-
WinterSale2018
= 33¶
-
LunarNewYearSale2019
= 34¶
-
LunarNewYearSale2019GoldenProfile
= 35¶
-
SpringCleaning2019
= 36¶
-
SummerSale2019
= 37¶
-
SummerSale2019_TeamHare
= 38¶
-
SummerSale2019_TeamTortoise
= 39¶
-
SummerSale2019_TeamCorgi
= 40¶
-
SummerSale2019_TeamCockatiel
= 41¶
-
SummerSale2019_TeamPig
= 42¶
-
SteamAwards2019Nominations
= 43¶
-
WinterSaleEvent2019
= 44¶
-
-
class
steam.enums.common.
WorkshopEnumerationType
¶ An enumeration.
-
RankedByVote
= 0¶
-
Recent
= 1¶
-
Trending
= 2¶
-
FavoriteOfFriends
= 3¶
-
VotedByFriends
= 4¶
-
ContentByFriends
= 5¶
-
RecentFromFollowedUsers
= 6¶
-
-
class
steam.enums.common.
EPublishedFileVisibility
¶ An enumeration.
-
Public
= 0¶
-
FriendsOnly
= 1¶
-
Private
= 2¶
-
-
class
steam.enums.common.
EWorkshopFileType
¶ An enumeration.
-
First
= 0¶
-
Community
= 0¶
-
Microtransaction
= 1¶
-
Collection
= 2¶
-
Art
= 3¶
-
Video
= 4¶
-
Screenshot
= 5¶
-
Game
= 6¶
-
Software
= 7¶
-
Concept
= 8¶
-
WebGuide
= 9¶
-
IntegratedGuide
= 10¶
-
Merch
= 11¶
-
ControllerBinding
= 12¶
-
SteamworksAccessInvite
= 13¶
-
SteamVideo
= 14¶
-
GameManagedItem
= 15¶
-
Max
= 16¶
-
-
class
steam.enums.common.
EAppType
¶ An enumeration.
-
Invalid
= 0¶
-
Game
= 1¶
-
Application
= 2¶
-
Tool
= 4¶
-
Demo
= 8¶
-
Deprected
= 16¶
-
DLC
= 32¶
-
Guide
= 64¶
-
Driver
= 128¶
-
Config
= 256¶
-
Hardware
= 512¶
-
Franchise
= 1024¶
-
Video
= 2048¶
-
Plugin
= 4096¶
-
Music
= 8192¶
-
Series
= 16384¶
-
Comic
= 32768¶
-
Beta
= 65536¶
-
Shortcut
= 1073741824¶
-
DepotOnly
= -2147483648¶
-
-
class
steam.enums.common.
EClientUIMode
¶ An enumeration.
-
Desktop
= 0¶
-
BigPicture
= 1¶
-
Mobile
= 2¶
-
Web
= 3¶
-
-
class
steam.enums.common.
EPurchaseResultDetail
¶ An enumeration.
-
NoDetail
= 0¶
-
AVSFailure
= 1¶
-
InsufficientFunds
= 2¶
-
ContactSupport
= 3¶
-
Timeout
= 4¶
-
InvalidPackage
= 5¶
-
InvalidPaymentMethod
= 6¶
-
InvalidData
= 7¶
-
OthersInProgress
= 8¶
-
AlreadyPurchased
= 9¶
-
WrongPrice
= 10¶
-
FraudCheckFailed
= 11¶
-
CancelledByUser
= 12¶
-
RestrictedCountry
= 13¶
-
BadActivationCode
= 14¶
-
DuplicateActivationCode
= 15¶
-
UseOtherPaymentMethod
= 16¶
-
UseOtherFunctionSource
= 17¶
-
InvalidShippingAddress
= 18¶
-
RegionNotSupported
= 19¶
-
AcctIsBlocked
= 20¶
-
AcctNotVerified
= 21¶
-
InvalidAccount
= 22¶
-
StoreBillingCountryMismatch
= 23¶
-
DoesNotOwnRequiredApp
= 24¶
-
CanceledByNewTransaction
= 25¶
-
ForceCanceledPending
= 26¶
-
FailCurrencyTransProvider
= 27¶
-
FailedCyberCafe
= 28¶
-
NeedsPreApproval
= 29¶
-
PreApprovalDenied
= 30¶
-
WalletCurrencyMismatch
= 31¶
-
EmailNotValidated
= 32¶
-
ExpiredCard
= 33¶
-
TransactionExpired
= 34¶
-
WouldExceedMaxWallet
= 35¶
-
MustLoginPS3AppForPurchase
= 36¶
-
CannotShipToPOBox
= 37¶
-
InsufficientInventory
= 38¶
-
CannotGiftShippedGoods
= 39¶
-
CannotShipInternationally
= 40¶
-
BillingAgreementCancelled
= 41¶
-
InvalidCoupon
= 42¶
-
ExpiredCoupon
= 43¶
-
AccountLocked
= 44¶
-
OtherAbortableInProgress
= 45¶
-
ExceededSteamLimit
= 46¶
-
OverlappingPackagesInCart
= 47¶
-
NoWallet
= 48¶
-
NoCachedPaymentMethod
= 49¶
-
CannotRedeemCodeFromClient
= 50¶
-
PurchaseAmountNoSupportedByProvider
= 51¶
-
OverlappingPackagesInPendingTransaction
= 52¶
-
RateLimited
= 53¶
-
OwnsExcludedApp
= 54¶
-
CreditCardBinMismatchesType
= 55¶
-
CartValueTooHigh
= 56¶
-
BillingAgreementAlreadyExists
= 57¶
-
POSACodeNotActivated
= 58¶
-
CannotShipToCountry
= 59¶
-
HungTransactionCancelled
= 60¶
-
PaypalInternalError
= 61¶
-
UnknownGlobalCollectError
= 62¶
-
InvalidTaxAddress
= 63¶
-
PhysicalProductLimitExceeded
= 64¶
-
PurchaseCannotBeReplayed
= 65¶
-
DelayedCompletion
= 66¶
-
BundleTypeCannotBeGifted
= 67¶
-
BlockedByUSGov
= 68¶
-
ItemsReservedForCommercialUse
= 69¶
-
GiftAlreadyOwned
= 70¶
-
GiftInvalidForRecipientRegion
= 71¶
-
GiftPricingImbalance
= 72¶
-
GiftRecipientNotSpecified
= 73¶
-
ItemsNotAllowedForCommercialUse
= 74¶
-
BusinessStoreCountryCodeMismatch
= 75¶
-
UserAssociatedWithManyCafes
= 76¶
-
UserNotAssociatedWithCafe
= 77¶
-
AddressInvalid
= 78¶
-
CreditCardNumberInvalid
= 79¶
-
CannotShipToMilitaryPostOffice
= 80¶
-
BillingNameInvalidResemblesCreditCard
= 81¶
-
PaymentMethodNotSupportedForProduct
= 83¶
-
-
class
steam.enums.common.
ELicenseFlags
¶ An enumeration.
-
NONE
= 0¶
-
Renew
= 1¶
-
RenewalFailed
= 2¶
-
Pending
= 4¶
-
Expired
= 8¶
-
CancelledByUser
= 16¶
-
CancelledByAdmin
= 32¶
-
LowViolenceContent
= 64¶
-
ImportedFromSteam2
= 128¶
-
ForceRunRestriction
= 256¶
-
RegionRestrictionExpired
= 512¶
-
CancelledByFriendlyFraudLock
= 1024¶
-
NotActivated
= 2048¶
-
-
class
steam.enums.common.
ELicenseType
¶ An enumeration.
-
NoLicense
= 0¶
-
SinglePurchase
= 1¶
-
SinglePurchaseLimitedUse
= 2¶
-
RecurringCharge
= 3¶
-
RecurringChargeLimitedUse
= 4¶
-
RecurringChargeLimitedUseWithOverages
= 5¶
-
RecurringOption
= 6¶
-
LimitedUseDelayedActivation
= 7¶
-
-
class
steam.enums.common.
EBillingType
¶ An enumeration.
-
NoCost
= 0¶
-
BillOnceOnly
= 1¶
-
BillMonthly
= 2¶
-
ProofOfPrepurchaseOnly
= 3¶
-
GuestPass
= 4¶
-
HardwarePromo
= 5¶
-
Gift
= 6¶
-
AutoGrant
= 7¶
-
OEMTicket
= 8¶
-
RecurringOption
= 9¶
-
BillOnceOrCDKey
= 10¶
-
Repurchaseable
= 11¶
-
FreeOnDemand
= 12¶
-
Rental
= 13¶
-
CommercialLicense
= 14¶
-
FreeCommercialLicense
= 15¶
-
NumBillingTypes
= 16¶
-
-
class
steam.enums.common.
EPaymentMethod
¶ An enumeration.
-
NONE
= 0¶
-
ActivationCode
= 1¶
-
CreditCard
= 2¶
-
Giropay
= 3¶
-
PayPal
= 4¶
-
Ideal
= 5¶
-
PaySafeCard
= 6¶
-
Sofort
= 7¶
-
GuestPass
= 8¶
-
WebMoney
= 9¶
-
MoneyBookers
= 10¶
-
AliPay
= 11¶
-
Yandex
= 12¶
-
Kiosk
= 13¶
-
Qiwi
= 14¶
-
GameStop
= 15¶
-
HardwarePromo
= 16¶
-
MoPay
= 17¶
-
BoletoBancario
= 18¶
-
BoaCompraGold
= 19¶
-
BancoDoBrasilOnline
= 20¶
-
ItauOnline
= 21¶
-
BradescoOnline
= 22¶
-
Pagseguro
= 23¶
-
VisaBrazil
= 24¶
-
AmexBrazil
= 25¶
-
Aura
= 26¶
-
Hipercard
= 27¶
-
MastercardBrazil
= 28¶
-
DinersCardBrazil
= 29¶
-
AuthorizedDevice
= 30¶
-
MOLPoints
= 31¶
-
ClickAndBuy
= 32¶
-
Beeline
= 33¶
-
Konbini
= 34¶
-
EClubPoints
= 35¶
-
CreditCardJapan
= 36¶
-
BankTransferJapan
= 37¶
-
PayEasy
= 38¶
-
Zong
= 39¶
-
CultureVoucher
= 40¶
-
BookVoucher
= 41¶
-
HappymoneyVoucher
= 42¶
-
ConvenientStoreVoucher
= 43¶
-
GameVoucher
= 44¶
-
Multibanco
= 45¶
-
Payshop
= 46¶
-
MaestroBoaCompra
= 47¶
-
OXXO
= 48¶
-
ToditoCash
= 49¶
-
Carnet
= 50¶
-
SPEI
= 51¶
-
ThreePay
= 52¶
-
IsBank
= 53¶
-
Garanti
= 54¶
-
Akbank
= 55¶
-
YapiKredi
= 56¶
-
Halkbank
= 57¶
-
BankAsya
= 58¶
-
Finansbank
= 59¶
-
DenizBank
= 60¶
-
PTT
= 61¶
-
CashU
= 62¶
-
AutoGrant
= 64¶
-
WebMoneyJapan
= 65¶
-
OneCard
= 66¶
-
PSE
= 67¶
-
Exito
= 68¶
-
Efecty
= 69¶
-
Paloto
= 70¶
-
PinValidda
= 71¶
-
MangirKart
= 72¶
-
BancoCreditoDePeru
= 73¶
-
BBVAContinental
= 74¶
-
SafetyPay
= 75¶
-
PagoEfectivo
= 76¶
-
Trustly
= 77¶
-
UnionPay
= 78¶
-
BitCoin
= 79¶
-
Wallet
= 128¶
-
Valve
= 129¶
-
MasterComp
= 130¶
-
Promotional
= 131¶
-
MasterSubscription
= 134¶
-
Payco
= 135¶
-
MobileWalletJapan
= 136¶
-
OEMTicket
= 256¶
-
Split
= 512¶
-
Complimentary
= 1024¶
-
enums.emsg¶
The EMsg enum contains many members and takes a bit to load. For this reason it is seperate, and imported only when needed.
-
class
steam.enums.emsg.
EMsg
¶ An enumeration.
-
Invalid
= 0¶
-
Multi
= 1¶
-
ProtobufWrapped
= 2¶
-
GenericReply
= 100¶
-
BaseGeneral
= 100¶
-
DestJobFailed
= 113¶
-
Alert
= 115¶
-
SCIDRequest
= 120¶
-
SCIDResponse
= 121¶
-
JobHeartbeat
= 123¶
-
HubConnect
= 124¶
-
Subscribe
= 126¶
-
RouteMessage
= 127¶
-
RemoteSysID
= 128¶ removed
-
AMCreateAccountResponse
= 129¶ removed
-
WGRequest
= 130¶
-
WGResponse
= 131¶
-
KeepAlive
= 132¶
-
WebAPIJobRequest
= 133¶
-
WebAPIJobResponse
= 134¶
-
ClientSessionStart
= 135¶
-
ClientSessionEnd
= 136¶
-
ClientSessionUpdate
= 137¶
-
StatsDeprecated
= 138¶
-
Ping
= 139¶
-
PingResponse
= 140¶
-
Stats
= 141¶
-
RequestFullStatsBlock
= 142¶
-
LoadDBOCacheItem
= 143¶
-
LoadDBOCacheItemResponse
= 144¶
-
InvalidateDBOCacheItems
= 145¶
-
ServiceMethod
= 146¶
-
ServiceMethodResponse
= 147¶
-
ClientPackageVersions
= 148¶
-
TimestampRequest
= 149¶
-
TimestampResponse
= 150¶
-
ServiceMethodCallFromClient
= 151¶
-
ServiceMethodSendToClient
= 152¶
-
AssignSysID
= 200¶
-
BaseShell
= 200¶
-
Exit
= 201¶
-
DirRequest
= 202¶
-
DirResponse
= 203¶
-
ZipRequest
= 204¶
-
ZipResponse
= 205¶
-
UpdateRecordResponse
= 215¶
-
UpdateCreditCardRequest
= 221¶
-
UpdateUserBanResponse
= 225¶
-
PrepareToExit
= 226¶
-
ContentDescriptionUpdate
= 227¶
-
TestResetServer
= 228¶
-
UniverseChanged
= 229¶
-
ShellConfigInfoUpdate
= 230¶
-
RequestWindowsEventLogEntries
= 233¶
-
ProvideWindowsEventLogEntries
= 234¶
-
ShellSearchLogs
= 235¶
-
ShellSearchLogsResponse
= 236¶
-
ShellCheckWindowsUpdates
= 237¶
-
ShellCheckWindowsUpdatesResponse
= 238¶
-
ShellFlushUserLicenseCache
= 239¶ removed
-
TestFlushDelayedSQL
= 240¶
-
TestFlushDelayedSQLResponse
= 241¶
-
EnsureExecuteScheduledTask_TEST
= 242¶
-
EnsureExecuteScheduledTaskResponse_TEST
= 243¶
-
UpdateScheduledTaskEnableState_TEST
= 244¶
-
UpdateScheduledTaskEnableStateResponse_TEST
= 245¶
-
ContentDescriptionDeltaUpdate
= 246¶
-
Heartbeat
= 300¶
-
BaseGM
= 300¶
-
ShellFailed
= 301¶
-
ExitShells
= 307¶
-
ExitShell
= 308¶
-
GracefulExitShell
= 309¶
-
LicenseProcessingComplete
= 316¶
-
SetTestFlag
= 317¶
-
QueuedEmailsComplete
= 318¶
-
GMReportPHPError
= 319¶
-
GMDRMSync
= 320¶
-
PhysicalBoxInventory
= 321¶
-
UpdateConfigFile
= 322¶
-
TestInitDB
= 323¶
-
GMWriteConfigToSQL
= 324¶
-
GMLoadActivationCodes
= 325¶
-
GMQueueForFBS
= 326¶
-
GMSchemaConversionResults
= 327¶
-
GMSchemaConversionResultsResponse
= 328¶ removed
-
GMWriteShellFailureToSQL
= 329¶
-
GMWriteStatsToSOS
= 330¶
-
GMGetServiceMethodRouting
= 331¶
-
GMGetServiceMethodRoutingResponse
= 332¶
-
GMConvertUserWallets
= 333¶ removed
-
GMTestNextBuildSchemaConversion
= 334¶
-
GMTestNextBuildSchemaConversionResponse
= 335¶
-
ExpectShellRestart
= 336¶
-
HotFixProgress
= 337¶
-
BaseAIS
= 400¶
-
AISRefreshContentDescription
= 401¶ removed
-
AISRequestContentDescription
= 402¶
-
AISUpdateAppInfo
= 403¶
-
AISUpdatePackageCosts
= 404¶ removed
-
AISGetPackageChangeNumber
= 405¶
-
AISGetPackageChangeNumberResponse
= 406¶
-
AISAppInfoTableChanged
= 407¶ removed
-
AISUpdatePackageCostsResponse
= 408¶ removed
-
AISCreateMarketingMessage
= 409¶ removed
-
AISCreateMarketingMessageResponse
= 410¶ removed
-
AISGetMarketingMessage
= 411¶ removed
-
AISGetMarketingMessageResponse
= 412¶ removed
-
AISUpdateMarketingMessage
= 413¶ removed
-
AISUpdateMarketingMessageResponse
= 414¶ removed
-
AISRequestMarketingMessageUpdate
= 415¶ removed
-
AISDeleteMarketingMessage
= 416¶ removed
-
AISGetMarketingTreatments
= 419¶ removed
-
AISGetMarketingTreatmentsResponse
= 420¶ removed
-
AISRequestMarketingTreatmentUpdate
= 421¶ removed
-
AISTestAddPackage
= 422¶ removed
-
AIGetAppGCFlags
= 423¶
-
AIGetAppGCFlagsResponse
= 424¶
-
AIGetAppList
= 425¶
-
AIGetAppListResponse
= 426¶
-
AIGetAppInfo
= 427¶ removed
-
AIGetAppInfoResponse
= 428¶ removed
-
AISGetCouponDefinition
= 429¶
-
AISGetCouponDefinitionResponse
= 430¶
-
AISUpdateSlaveContentDescription
= 431¶
-
AISUpdateSlaveContentDescriptionResponse
= 432¶
-
AISTestEnableGC
= 433¶
-
BaseAM
= 500¶
-
AMUpdateUserBanRequest
= 504¶
-
AMAddLicense
= 505¶
-
AMBeginProcessingLicenses
= 507¶ removed
-
AMSendSystemIMToUser
= 508¶
-
AMExtendLicense
= 509¶
-
AMAddMinutesToLicense
= 510¶
-
AMCancelLicense
= 511¶
-
AMInitPurchase
= 512¶
-
AMPurchaseResponse
= 513¶
-
AMGetFinalPrice
= 514¶
-
AMGetFinalPriceResponse
= 515¶
-
AMGetLegacyGameKey
= 516¶
-
AMGetLegacyGameKeyResponse
= 517¶
-
AMFindHungTransactions
= 518¶
-
AMSetAccountTrustedRequest
= 519¶
-
AMCompletePurchase
= 521¶ removed
-
AMCancelPurchase
= 522¶
-
AMNewChallenge
= 523¶
-
AMLoadOEMTickets
= 524¶
-
AMFixPendingPurchase
= 525¶
-
AMFixPendingPurchaseResponse
= 526¶
-
AMIsUserBanned
= 527¶
-
AMRegisterKey
= 528¶
-
AMLoadActivationCodes
= 529¶
-
AMLoadActivationCodesResponse
= 530¶
-
AMLookupKeyResponse
= 531¶
-
AMLookupKey
= 532¶
-
AMChatCleanup
= 533¶
-
AMClanCleanup
= 534¶
-
AMFixPendingRefund
= 535¶
-
AMReverseChargeback
= 536¶
-
AMReverseChargebackResponse
= 537¶
-
AMClanCleanupList
= 538¶
-
AMGetLicenses
= 539¶
-
AMGetLicensesResponse
= 540¶
-
AMSendCartRepurchase
= 541¶
-
AMSendCartRepurchaseResponse
= 542¶
-
AllowUserToPlayQuery
= 550¶
-
AllowUserToPlayResponse
= 551¶
-
AMVerfiyUser
= 552¶
-
AMClientNotPlaying
= 553¶
-
AMClientRequestFriendship
= 554¶
-
AMRelayPublishStatus
= 555¶
-
AMResetCommunityContent
= 556¶ removed
-
AMPrimePersonaStateCache
= 557¶ removed
-
AMAllowUserContentQuery
= 558¶ removed
-
AMAllowUserContentResponse
= 559¶ removed
-
AMInitPurchaseResponse
= 560¶
-
AMRevokePurchaseResponse
= 561¶
-
AMLockProfile
= 562¶ removed
-
AMRefreshGuestPasses
= 563¶
-
AMInviteUserToClan
= 564¶ removed
-
AMAcknowledgeClanInvite
= 565¶ removed
-
AMGrantGuestPasses
= 566¶
-
AMClanDataUpdated
= 567¶
-
AMReloadAccount
= 568¶
-
AMClientChatMsgRelay
= 569¶
-
AMChatMulti
= 570¶
-
AMClientChatInviteRelay
= 571¶
-
AMChatInvite
= 572¶
-
AMClientJoinChatRelay
= 573¶
-
AMClientChatMemberInfoRelay
= 574¶
-
AMPublishChatMemberInfo
= 575¶
-
AMClientAcceptFriendInvite
= 576¶
-
AMChatEnter
= 577¶
-
AMClientPublishRemovalFromSource
= 578¶
-
AMChatActionResult
= 579¶
-
AMFindAccounts
= 580¶
-
AMFindAccountsResponse
= 581¶
-
AMRequestAccountData
= 582¶
-
AMRequestAccountDataResponse
= 583¶
-
AMSetAccountFlags
= 584¶
-
AMCreateClan
= 586¶
-
AMCreateClanResponse
= 587¶
-
AMGetClanDetails
= 588¶
-
AMGetClanDetailsResponse
= 589¶
-
AMSetPersonaName
= 590¶
-
AMSetAvatar
= 591¶
-
AMAuthenticateUser
= 592¶
-
AMAuthenticateUserResponse
= 593¶
-
AMGetAccountFriendsCount
= 594¶ removed
-
AMGetAccountFriendsCountResponse
= 595¶ removed
-
AMP2PIntroducerMessage
= 596¶
-
ClientChatAction
= 597¶
-
AMClientChatActionRelay
= 598¶
-
ReqChallenge
= 600¶
-
BaseVS
= 600¶
-
VACResponse
= 601¶
-
ReqChallengeTest
= 602¶
-
VSMarkCheat
= 604¶
-
VSAddCheat
= 605¶
-
VSPurgeCodeModDB
= 606¶
-
VSGetChallengeResults
= 607¶
-
VSChallengeResultText
= 608¶
-
VSReportLingerer
= 609¶
-
VSRequestManagedChallenge
= 610¶
-
VSLoadDBFinished
= 611¶
-
BaseDRMS
= 625¶
-
DRMBuildBlobRequest
= 628¶
-
DRMBuildBlobResponse
= 629¶
-
DRMResolveGuidRequest
= 630¶
-
DRMResolveGuidResponse
= 631¶
-
DRMVariabilityReport
= 633¶
-
DRMVariabilityReportResponse
= 634¶
-
DRMStabilityReport
= 635¶
-
DRMStabilityReportResponse
= 636¶
-
DRMDetailsReportRequest
= 637¶
-
DRMDetailsReportResponse
= 638¶
-
DRMProcessFile
= 639¶
-
DRMAdminUpdate
= 640¶
-
DRMAdminUpdateResponse
= 641¶
-
DRMSync
= 642¶
-
DRMSyncResponse
= 643¶
-
DRMProcessFileResponse
= 644¶
-
DRMEmptyGuidCache
= 645¶
-
DRMEmptyGuidCacheResponse
= 646¶
-
BaseCS
= 650¶
-
CSUserContentRequest
= 652¶ removed
-
BaseClient
= 700¶
-
ClientLogOn_Deprecated
= 701¶ removed
-
ClientAnonLogOn_Deprecated
= 702¶ removed
-
ClientHeartBeat
= 703¶
-
ClientVACResponse
= 704¶
-
ClientGamesPlayed_obsolete
= 705¶ removed
-
ClientLogOff
= 706¶
-
ClientNoUDPConnectivity
= 707¶
-
ClientInformOfCreateAccount
= 708¶ removed
-
ClientAckVACBan
= 709¶ removed
-
ClientConnectionStats
= 710¶
-
ClientInitPurchase
= 711¶ removed
-
ClientPingResponse
= 712¶
-
ClientRemoveFriend
= 714¶
-
ClientGamesPlayedNoDataBlob
= 715¶
-
ClientChangeStatus
= 716¶
-
ClientVacStatusResponse
= 717¶
-
ClientFriendMsg
= 718¶
-
ClientGameConnect_obsolete
= 719¶ removed
-
ClientGamesPlayed2_obsolete
= 720¶ removed
-
ClientGameEnded_obsolete
= 721¶ removed
-
ClientGetFinalPrice
= 722¶ removed
-
ClientSystemIM
= 726¶
-
ClientSystemIMAck
= 727¶
-
ClientGetLicenses
= 728¶
-
ClientCancelLicense
= 729¶ removed
-
ClientGetLegacyGameKey
= 730¶
-
ClientContentServerLogOn_Deprecated
= 731¶ removed
-
ClientAckVACBan2
= 732¶
-
ClientAckMessageByGID
= 735¶ removed
-
ClientGetPurchaseReceipts
= 736¶
-
ClientAckPurchaseReceipt
= 737¶ removed
-
ClientGamesPlayed3_obsolete
= 738¶ removed
-
ClientSendGuestPass
= 739¶ removed
-
ClientAckGuestPass
= 740¶
-
ClientRedeemGuestPass
= 741¶
-
ClientGamesPlayed
= 742¶
-
ClientRegisterKey
= 743¶
-
ClientInviteUserToClan
= 744¶
-
ClientAcknowledgeClanInvite
= 745¶
-
ClientPurchaseWithMachineID
= 746¶
-
ClientAppUsageEvent
= 747¶
-
ClientGetGiftTargetList
= 748¶ removed
-
ClientGetGiftTargetListResponse
= 749¶ removed
-
ClientLogOnResponse
= 751¶
-
ClientVACChallenge
= 753¶ removed
-
ClientSetHeartbeatRate
= 755¶
-
ClientNotLoggedOnDeprecated
= 756¶ removed
-
ClientLoggedOff
= 757¶
-
GSApprove
= 758¶
-
GSDeny
= 759¶
-
GSKick
= 760¶
-
ClientCreateAcctResponse
= 761¶
-
ClientPurchaseResponse
= 763¶
-
ClientPing
= 764¶
-
ClientNOP
= 765¶
-
ClientPersonaState
= 766¶
-
ClientFriendsList
= 767¶
-
ClientAccountInfo
= 768¶
-
ClientVacStatusQuery
= 770¶ removed
-
ClientNewsUpdate
= 771¶
-
ClientGameConnectDeny
= 773¶
-
GSStatusReply
= 774¶
-
ClientGetFinalPriceResponse
= 775¶ removed
-
ClientGameConnectTokens
= 779¶
-
ClientLicenseList
= 780¶
-
ClientCancelLicenseResponse
= 781¶ removed
-
ClientVACBanStatus
= 782¶
-
ClientCMList
= 783¶
-
ClientEncryptPct
= 784¶
-
ClientGetLegacyGameKeyResponse
= 785¶
-
ClientFavoritesList
= 786¶ removed
-
CSUserContentApprove
= 787¶ removed
-
CSUserContentDeny
= 788¶ removed
-
ClientInitPurchaseResponse
= 789¶ removed
-
ClientAddFriend
= 791¶
-
ClientAddFriendResponse
= 792¶
-
ClientInviteFriend
= 793¶ removed
-
ClientInviteFriendResponse
= 794¶ removed
-
ClientSendGuestPassResponse
= 795¶ removed
-
ClientAckGuestPassResponse
= 796¶
-
ClientRedeemGuestPassResponse
= 797¶
-
ClientUpdateGuestPassesList
= 798¶
-
ClientChatMsg
= 799¶
-
ClientChatInvite
= 800¶
-
ClientJoinChat
= 801¶
-
ClientChatMemberInfo
= 802¶
-
ClientLogOnWithCredentials_Deprecated
= 803¶ removed
-
ClientPasswordChangeResponse
= 805¶
-
ClientChatEnter
= 807¶
-
ClientFriendRemovedFromSource
= 808¶
-
ClientCreateChat
= 809¶
-
ClientCreateChatResponse
= 810¶
-
ClientUpdateChatMetadata
= 811¶ removed
-
ClientP2PIntroducerMessage
= 813¶
-
ClientChatActionResult
= 814¶
-
ClientRequestFriendData
= 815¶
-
ClientGetUserStats
= 818¶
-
ClientGetUserStatsResponse
= 819¶
-
ClientStoreUserStats
= 820¶
-
ClientStoreUserStatsResponse
= 821¶
-
ClientClanState
= 822¶
-
ClientServiceModule
= 830¶
-
ClientServiceCall
= 831¶
-
ClientServiceCallResponse
= 832¶
-
ClientPackageInfoRequest
= 833¶ removed
-
ClientPackageInfoResponse
= 834¶ removed
-
ClientNatTraversalStatEvent
= 839¶
-
ClientAppInfoRequest
= 840¶ removed
-
ClientAppInfoResponse
= 841¶ removed
-
ClientSteamUsageEvent
= 842¶
-
ClientCheckPassword
= 845¶
-
ClientResetPassword
= 846¶
-
ClientCheckPasswordResponse
= 848¶
-
ClientResetPasswordResponse
= 849¶
-
ClientSessionToken
= 850¶
-
ClientDRMProblemReport
= 851¶
-
ClientSetIgnoreFriend
= 855¶
-
ClientSetIgnoreFriendResponse
= 856¶
-
ClientGetAppOwnershipTicket
= 857¶
-
ClientGetAppOwnershipTicketResponse
= 858¶
-
ClientGetLobbyListResponse
= 860¶
-
ClientGetLobbyMetadata
= 861¶ removed
-
ClientGetLobbyMetadataResponse
= 862¶ removed
-
ClientVTTCert
= 863¶ removed
-
ClientAppInfoUpdate
= 866¶ removed
-
ClientAppInfoChanges
= 867¶ removed
-
ClientServerList
= 880¶
-
ClientEmailChangeResponse
= 891¶ removed
-
ClientSecretQAChangeResponse
= 892¶ removed
-
ClientDRMBlobRequest
= 896¶
-
ClientDRMBlobResponse
= 897¶
-
ClientLookupKey
= 898¶ removed
-
ClientLookupKeyResponse
= 899¶ removed
-
BaseGameServer
= 900¶
-
GSDisconnectNotice
= 901¶
-
GSStatus
= 903¶
-
GSUserPlaying
= 905¶
-
GSStatus2
= 906¶
-
GSStatusUpdate_Unused
= 907¶
-
GSServerType
= 908¶
-
GSPlayerList
= 909¶
-
GSGetUserAchievementStatus
= 910¶
-
GSGetUserAchievementStatusResponse
= 911¶
-
GSGetPlayStats
= 918¶
-
GSGetPlayStatsResponse
= 919¶
-
GSGetUserGroupStatus
= 920¶
-
AMGetUserGroupStatus
= 921¶
-
AMGetUserGroupStatusResponse
= 922¶
-
GSGetUserGroupStatusResponse
= 923¶
-
GSGetReputation
= 936¶
-
GSGetReputationResponse
= 937¶
-
GSAssociateWithClan
= 938¶
-
GSAssociateWithClanResponse
= 939¶
-
GSComputeNewPlayerCompatibility
= 940¶
-
GSComputeNewPlayerCompatibilityResponse
= 941¶
-
AdminCmd
= 1000¶
-
BaseAdmin
= 1000¶
-
AdminCmdResponse
= 1004¶
-
AdminLogListenRequest
= 1005¶
-
AdminLogEvent
= 1006¶
-
LogSearchRequest
= 1007¶ removed
-
LogSearchResponse
= 1008¶ removed
-
LogSearchCancel
= 1009¶ removed
-
UniverseData
= 1010¶
-
RequestStatHistory
= 1014¶ removed
-
StatHistory
= 1015¶ removed
-
AdminPwLogon
= 1017¶ removed
-
AdminPwLogonResponse
= 1018¶ removed
-
AdminSpew
= 1019¶
-
AdminConsoleTitle
= 1020¶
-
AdminGCSpew
= 1023¶
-
AdminGCCommand
= 1024¶
-
AdminGCGetCommandList
= 1025¶
-
AdminGCGetCommandListResponse
= 1026¶
-
FBSConnectionData
= 1027¶
-
AdminMsgSpew
= 1028¶
-
FBSReqVersion
= 1100¶
-
BaseFBS
= 1100¶
-
FBSVersionInfo
= 1101¶
-
FBSForceRefresh
= 1102¶
-
FBSForceBounce
= 1103¶
-
FBSDeployPackage
= 1104¶
-
FBSDeployResponse
= 1105¶
-
FBSUpdateBootstrapper
= 1106¶
-
FBSSetState
= 1107¶
-
FBSApplyOSUpdates
= 1108¶
-
FBSRunCMDScript
= 1109¶
-
FBSRebootBox
= 1110¶
-
FBSSetBigBrotherMode
= 1111¶
-
FBSMinidumpServer
= 1112¶
-
FBSSetShellCount_obsolete
= 1113¶ removed
-
FBSDeployHotFixPackage
= 1114¶
-
FBSDeployHotFixResponse
= 1115¶
-
FBSDownloadHotFix
= 1116¶
-
FBSDownloadHotFixResponse
= 1117¶
-
FBSUpdateTargetConfigFile
= 1118¶
-
FBSApplyAccountCred
= 1119¶
-
FBSApplyAccountCredResponse
= 1120¶
-
FBSSetShellCount
= 1121¶
-
FBSTerminateShell
= 1122¶
-
FBSQueryGMForRequest
= 1123¶
-
FBSQueryGMResponse
= 1124¶
-
FBSTerminateZombies
= 1125¶
-
FBSInfoFromBootstrapper
= 1126¶
-
FBSRebootBoxResponse
= 1127¶
-
FBSBootstrapperPackageRequest
= 1128¶
-
FBSBootstrapperPackageResponse
= 1129¶
-
FBSBootstrapperGetPackageChunk
= 1130¶
-
FBSBootstrapperGetPackageChunkResponse
= 1131¶
-
FBSBootstrapperPackageTransferProgress
= 1132¶
-
FBSRestartBootstrapper
= 1133¶
-
FBSPauseFrozenDumps
= 1134¶
-
FileXferRequest
= 1200¶
-
BaseFileXfer
= 1200¶
-
FileXferResponse
= 1201¶
-
FileXferData
= 1202¶
-
FileXferEnd
= 1203¶
-
FileXferDataAck
= 1204¶
-
ChannelAuthChallenge
= 1300¶
-
BaseChannelAuth
= 1300¶
-
ChannelAuthResponse
= 1301¶
-
ChannelAuthResult
= 1302¶
-
ChannelEncryptRequest
= 1303¶
-
ChannelEncryptResponse
= 1304¶
-
ChannelEncryptResult
= 1305¶
-
BaseBS
= 1400¶
-
BSPurchaseStart
= 1401¶
-
BSPurchaseResponse
= 1402¶
-
BSAuthenticateCCTrans
= 1403¶
-
BSAuthenticateCCTransResponse
= 1404¶
-
BSSettleComplete
= 1406¶
-
BSBannedRequest
= 1407¶ removed
-
BSInitPayPalTxn
= 1408¶
-
BSInitPayPalTxnResponse
= 1409¶
-
BSGetPayPalUserInfo
= 1410¶
-
BSGetPayPalUserInfoResponse
= 1411¶
-
BSRefundTxn
= 1413¶ removed
-
BSRefundTxnResponse
= 1414¶ removed
-
BSGetEvents
= 1415¶ removed
-
BSChaseRFRRequest
= 1416¶ removed
-
BSPaymentInstrBan
= 1417¶
-
BSPaymentInstrBanResponse
= 1418¶
-
BSProcessGCReports
= 1419¶ removed
-
BSProcessPPReports
= 1420¶ removed
-
BSInitGCBankXferTxn
= 1421¶
-
BSInitGCBankXferTxnResponse
= 1422¶
-
BSQueryGCBankXferTxn
= 1423¶ removed
-
BSQueryGCBankXferTxnResponse
= 1424¶ removed
-
BSCommitGCTxn
= 1425¶
-
BSQueryTransactionStatus
= 1426¶
-
BSQueryTransactionStatusResponse
= 1427¶
-
BSQueryCBOrderStatus
= 1428¶ removed
-
BSQueryCBOrderStatusResponse
= 1429¶ removed
-
BSRunRedFlagReport
= 1430¶ removed
-
BSQueryPaymentInstUsage
= 1431¶
-
BSQueryPaymentInstResponse
= 1432¶
-
BSQueryTxnExtendedInfo
= 1433¶
-
BSQueryTxnExtendedInfoResponse
= 1434¶
-
BSUpdateConversionRates
= 1435¶
-
BSProcessUSBankReports
= 1436¶ removed
-
BSPurchaseRunFraudChecks
= 1437¶
-
BSPurchaseRunFraudChecksResponse
= 1438¶
-
BSStartShippingJobs
= 1439¶ removed
-
BSQueryBankInformation
= 1440¶
-
BSQueryBankInformationResponse
= 1441¶
-
BSValidateXsollaSignature
= 1445¶
-
BSValidateXsollaSignatureResponse
= 1446¶
-
BSQiwiWalletInvoice
= 1448¶
-
BSQiwiWalletInvoiceResponse
= 1449¶
-
BSUpdateInventoryFromProPack
= 1450¶
-
BSUpdateInventoryFromProPackResponse
= 1451¶
-
BSSendShippingRequest
= 1452¶
-
BSSendShippingRequestResponse
= 1453¶
-
BSGetProPackOrderStatus
= 1454¶
-
BSGetProPackOrderStatusResponse
= 1455¶
-
BSCheckJobRunning
= 1456¶
-
BSCheckJobRunningResponse
= 1457¶
-
BSResetPackagePurchaseRateLimit
= 1458¶
-
BSResetPackagePurchaseRateLimitResponse
= 1459¶
-
BSUpdatePaymentData
= 1460¶
-
BSUpdatePaymentDataResponse
= 1461¶
-
BSGetBillingAddress
= 1462¶
-
BSGetBillingAddressResponse
= 1463¶
-
BSGetCreditCardInfo
= 1464¶
-
BSGetCreditCardInfoResponse
= 1465¶
-
BSRemoveExpiredPaymentData
= 1468¶
-
BSRemoveExpiredPaymentDataResponse
= 1469¶
-
BSConvertToCurrentKeys
= 1470¶
-
BSConvertToCurrentKeysResponse
= 1471¶
-
BSInitPurchase
= 1472¶
-
BSInitPurchaseResponse
= 1473¶
-
BSCompletePurchase
= 1474¶
-
BSCompletePurchaseResponse
= 1475¶
-
BSPruneCardUsageStats
= 1476¶
-
BSPruneCardUsageStatsResponse
= 1477¶
-
BSStoreBankInformation
= 1478¶
-
BSStoreBankInformationResponse
= 1479¶
-
BSVerifyPOSAKey
= 1480¶
-
BSVerifyPOSAKeyResponse
= 1481¶
-
BSReverseRedeemPOSAKey
= 1482¶
-
BSReverseRedeemPOSAKeyResponse
= 1483¶
-
BSQueryFindCreditCard
= 1484¶
-
BSQueryFindCreditCardResponse
= 1485¶
-
BSStatusInquiryPOSAKey
= 1486¶
-
BSStatusInquiryPOSAKeyResponse
= 1487¶
-
BSValidateMoPaySignature
= 1488¶ removed
-
BSValidateMoPaySignatureResponse
= 1489¶ removed
-
BSMoPayConfirmProductDelivery
= 1490¶ removed
-
BSMoPayConfirmProductDeliveryResponse
= 1491¶ removed
-
BSGenerateMoPayMD5
= 1492¶ removed
-
BSGenerateMoPayMD5Response
= 1493¶ removed
-
BSBoaCompraConfirmProductDelivery
= 1494¶
-
BSBoaCompraConfirmProductDeliveryResponse
= 1495¶
-
BSGenerateBoaCompraMD5
= 1496¶
-
BSGenerateBoaCompraMD5Response
= 1497¶
-
BSCommitWPTxn
= 1498¶
-
BSCommitAdyenTxn
= 1499¶
-
BaseATS
= 1500¶
-
ATSStartStressTest
= 1501¶
-
ATSStopStressTest
= 1502¶
-
ATSRunFailServerTest
= 1503¶
-
ATSUFSPerfTestTask
= 1504¶
-
ATSUFSPerfTestResponse
= 1505¶
-
ATSCycleTCM
= 1506¶
-
ATSInitDRMSStressTest
= 1507¶
-
ATSCallTest
= 1508¶
-
ATSCallTestReply
= 1509¶
-
ATSStartExternalStress
= 1510¶
-
ATSExternalStressJobStart
= 1511¶
-
ATSExternalStressJobQueued
= 1512¶
-
ATSExternalStressJobRunning
= 1513¶
-
ATSExternalStressJobStopped
= 1514¶
-
ATSExternalStressJobStopAll
= 1515¶
-
ATSExternalStressActionResult
= 1516¶
-
ATSStarted
= 1517¶
-
ATSCSPerfTestTask
= 1518¶
-
ATSCSPerfTestResponse
= 1519¶
-
BaseDP
= 1600¶
-
DPSetPublishingState
= 1601¶
-
DPGamePlayedStats
= 1602¶ removed
-
DPUniquePlayersStat
= 1603¶
-
DPStreamingUniquePlayersStat
= 1604¶
-
DPVacInfractionStats
= 1605¶ removed
-
DPVacBanStats
= 1606¶ removed
-
DPBlockingStats
= 1607¶
-
DPNatTraversalStats
= 1608¶
-
DPSteamUsageEvent
= 1609¶ removed
-
DPVacCertBanStats
= 1610¶ removed
-
DPVacCafeBanStats
= 1611¶ removed
-
DPCloudStats
= 1612¶
-
DPAchievementStats
= 1613¶
-
DPAccountCreationStats
= 1614¶ removed
-
DPGetPlayerCount
= 1615¶
-
DPGetPlayerCountResponse
= 1616¶
-
DPGameServersPlayersStats
= 1617¶
-
DPDownloadRateStatistics
= 1618¶ removed
-
DPFacebookStatistics
= 1619¶ removed
-
ClientDPCheckSpecialSurvey
= 1620¶
-
ClientDPCheckSpecialSurveyResponse
= 1621¶
-
ClientDPSendSpecialSurveyResponse
= 1622¶
-
ClientDPSendSpecialSurveyResponseReply
= 1623¶
-
DPStoreSaleStatistics
= 1624¶
-
ClientDPUpdateAppJobReport
= 1625¶
-
ClientDPSteam2AppStarted
= 1627¶ removed
-
DPUpdateContentEvent
= 1626¶
-
ClientDPUnsignedInstallScript
= 1627¶
-
DPPartnerMicroTxns
= 1628¶
-
DPPartnerMicroTxnsResponse
= 1629¶
-
ClientDPContentStatsReport
= 1630¶
-
DPVRUniquePlayersStat
= 1631¶
-
BaseCM
= 1700¶
-
CMSetAllowState
= 1701¶
-
CMSpewAllowState
= 1702¶
-
CMSessionRejected
= 1703¶
-
CMSetSecrets
= 1704¶
-
CMGetSecrets
= 1705¶
-
BaseDSS
= 1800¶ removed
-
DSSNewFile
= 1801¶ removed
-
DSSCurrentFileList
= 1802¶ removed
-
DSSSynchList
= 1803¶ removed
-
DSSSynchListResponse
= 1804¶ removed
-
DSSSynchSubscribe
= 1805¶ removed
-
DSSSynchUnsubscribe
= 1806¶ removed
-
BaseEPM
= 1900¶ removed
-
EPMStartProcess
= 1901¶ removed
-
EPMStopProcess
= 1902¶ removed
-
EPMRestartProcess
= 1903¶ removed
-
GCSendClient
= 2200¶ removed
-
BaseGC
= 2200¶
-
AMRelayToGC
= 2201¶ removed
-
GCUpdatePlayedState
= 2202¶ removed
-
GCCmdRevive
= 2203¶
-
GCCmdBounce
= 2204¶ removed
-
GCCmdForceBounce
= 2205¶ removed
-
GCCmdDown
= 2206¶
-
GCCmdDeploy
= 2207¶
-
GCCmdDeployResponse
= 2208¶
-
GCCmdSwitch
= 2209¶
-
AMRefreshSessions
= 2210¶
-
GCUpdateGSState
= 2211¶ removed
-
GCAchievementAwarded
= 2212¶
-
GCSystemMessage
= 2213¶
-
GCValidateSession
= 2214¶ removed
-
GCValidateSessionResponse
= 2215¶ removed
-
GCCmdStatus
= 2216¶
-
GCRegisterWebInterfaces_Deprecated
= 2217¶ removed
-
GCGetAccountDetails_DEPRECATED
= 2218¶ removed
-
GCInterAppMessage
= 2219¶
-
GCGetEmailTemplate
= 2220¶
-
GCGetEmailTemplateResponse
= 2221¶
-
GCHRelay
= 2222¶
-
GCHRelayToClient
= 2223¶
-
GCHUpdateSession
= 2224¶
-
GCHRequestUpdateSession
= 2225¶
-
GCHRequestStatus
= 2226¶
-
GCHRequestStatusResponse
= 2227¶
-
GCHAccountVacStatusChange
= 2228¶
-
GCHSpawnGC
= 2229¶
-
GCHSpawnGCResponse
= 2230¶
-
GCHKillGC
= 2231¶
-
GCHKillGCResponse
= 2232¶
-
GCHAccountTradeBanStatusChange
= 2233¶
-
GCHAccountLockStatusChange
= 2234¶
-
GCHVacVerificationChange
= 2235¶
-
GCHAccountPhoneNumberChange
= 2236¶
-
GCHAccountTwoFactorChange
= 2237¶
-
GCHInviteUserToLobby
= 2238¶
-
BaseP2P
= 2500¶
-
P2PIntroducerMessage
= 2502¶
-
BaseSM
= 2900¶
-
SMExpensiveReport
= 2902¶
-
SMHourlyReport
= 2903¶
-
SMFishingReport
= 2904¶ removed
-
SMPartitionRenames
= 2905¶
-
SMMonitorSpace
= 2906¶
-
SMTestNextBuildSchemaConversion
= 2907¶
-
SMTestNextBuildSchemaConversionResponse
= 2908¶
-
BaseTest
= 3000¶
-
FailServer
= 3000¶
-
JobHeartbeatTest
= 3001¶
-
JobHeartbeatTestResponse
= 3002¶
-
BaseFTSRange
= 3100¶
-
FTSGetBrowseCounts
= 3101¶ removed
-
FTSGetBrowseCountsResponse
= 3102¶ removed
-
FTSBrowseClans
= 3103¶ removed
-
FTSBrowseClansResponse
= 3104¶ removed
-
FTSSearchClansByLocation
= 3105¶ removed
-
FTSSearchClansByLocationResponse
= 3106¶ removed
-
FTSSearchPlayersByLocation
= 3107¶ removed
-
FTSSearchPlayersByLocationResponse
= 3108¶ removed
-
FTSClanDeleted
= 3109¶ removed
-
FTSSearch
= 3110¶ removed
-
FTSSearchResponse
= 3111¶ removed
-
FTSSearchStatus
= 3112¶ removed
-
FTSSearchStatusResponse
= 3113¶ removed
-
FTSGetGSPlayStats
= 3114¶ removed
-
FTSGetGSPlayStatsResponse
= 3115¶ removed
-
FTSGetGSPlayStatsForServer
= 3116¶ removed
-
FTSGetGSPlayStatsForServerResponse
= 3117¶ removed
-
FTSReportIPUpdates
= 3118¶ removed
-
BaseCCSRange
= 3150¶
-
CCSGetComments
= 3151¶ removed
-
CCSGetCommentsResponse
= 3152¶ removed
-
CCSAddComment
= 3153¶ removed
-
CCSAddCommentResponse
= 3154¶ removed
-
CCSDeleteComment
= 3155¶ removed
-
CCSDeleteCommentResponse
= 3156¶ removed
-
CCSPreloadComments
= 3157¶ removed
-
CCSNotifyCommentCount
= 3158¶ removed
-
CCSGetCommentsForNews
= 3159¶ removed
-
CCSGetCommentsForNewsResponse
= 3160¶ removed
-
CCSDeleteAllCommentsByAuthor
= 3161¶
-
CCSDeleteAllCommentsByAuthorResponse
= 3162¶
-
BaseLBSRange
= 3200¶
-
LBSSetScore
= 3201¶
-
LBSSetScoreResponse
= 3202¶
-
LBSFindOrCreateLB
= 3203¶
-
LBSFindOrCreateLBResponse
= 3204¶
-
LBSGetLBEntries
= 3205¶
-
LBSGetLBEntriesResponse
= 3206¶
-
LBSGetLBList
= 3207¶
-
LBSGetLBListResponse
= 3208¶
-
LBSSetLBDetails
= 3209¶
-
LBSDeleteLB
= 3210¶
-
LBSDeleteLBEntry
= 3211¶
-
LBSResetLB
= 3212¶
-
LBSResetLBResponse
= 3213¶
-
LBSDeleteLBResponse
= 3214¶
-
BaseOGS
= 3400¶
-
OGSBeginSession
= 3401¶
-
OGSBeginSessionResponse
= 3402¶
-
OGSEndSession
= 3403¶
-
OGSEndSessionResponse
= 3404¶
-
OGSWriteAppSessionRow
= 3406¶
-
BaseBRP
= 3600¶
-
BRPStartShippingJobs
= 3601¶
-
BRPProcessUSBankReports
= 3602¶
-
BRPProcessGCReports
= 3603¶
-
BRPProcessPPReports
= 3604¶
-
BRPSettleNOVA
= 3605¶ removed
-
BRPSettleCB
= 3606¶ removed
-
BRPCommitGC
= 3607¶
-
BRPCommitGCResponse
= 3608¶
-
BRPFindHungTransactions
= 3609¶
-
BRPCheckFinanceCloseOutDate
= 3610¶
-
BRPProcessLicenses
= 3611¶
-
BRPProcessLicensesResponse
= 3612¶
-
BRPRemoveExpiredPaymentData
= 3613¶
-
BRPRemoveExpiredPaymentDataResponse
= 3614¶
-
BRPConvertToCurrentKeys
= 3615¶
-
BRPConvertToCurrentKeysResponse
= 3616¶
-
BRPPruneCardUsageStats
= 3617¶
-
BRPPruneCardUsageStatsResponse
= 3618¶
-
BRPCheckActivationCodes
= 3619¶
-
BRPCheckActivationCodesResponse
= 3620¶
-
BRPCommitWP
= 3621¶
-
BRPCommitWPResponse
= 3622¶
-
BRPProcessWPReports
= 3623¶
-
BRPProcessPaymentRules
= 3624¶
-
BRPProcessPartnerPayments
= 3625¶
-
BRPCheckSettlementReports
= 3626¶
-
BRPPostTaxToAvalara
= 3628¶
-
BRPPostTransactionTax
= 3629¶
-
BRPPostTransactionTaxResponse
= 3630¶
-
BRPProcessIMReports
= 3631¶
-
BaseAMRange2
= 4000¶
-
AMCreateChat
= 4001¶
-
AMCreateChatResponse
= 4002¶
-
AMUpdateChatMetadata
= 4003¶ removed
-
AMPublishChatMetadata
= 4004¶ removed
-
AMSetProfileURL
= 4005¶
-
AMGetAccountEmailAddress
= 4006¶
-
AMGetAccountEmailAddressResponse
= 4007¶
-
AMRequestClanData
= 4008¶
-
AMRouteToClients
= 4009¶
-
AMLeaveClan
= 4010¶
-
AMClanPermissions
= 4011¶
-
AMClanPermissionsResponse
= 4012¶
-
AMCreateClanEventDummyForRateLimiting
= 4013¶
-
AMUpdateClanEventDummyForRateLimiting
= 4015¶
-
AMCreateClanEventResponse
= 4014¶
-
AMUpdateClanEvent
= 4015¶
-
AMUpdateClanEventResponse
= 4016¶
-
AMGetClanEvents
= 4017¶
-
AMGetClanEventsResponse
= 4018¶
-
AMDeleteClanEvent
= 4019¶
-
AMDeleteClanEventResponse
= 4020¶
-
AMSetClanPermissionSettings
= 4021¶
-
AMSetClanPermissionSettingsResponse
= 4022¶
-
AMGetClanPermissionSettings
= 4023¶
-
AMGetClanPermissionSettingsResponse
= 4024¶
-
AMPublishChatRoomInfo
= 4025¶
-
ClientChatRoomInfo
= 4026¶
-
AMCreateClanAnnouncement
= 4027¶ removed
-
AMCreateClanAnnouncementResponse
= 4028¶ removed
-
AMUpdateClanAnnouncement
= 4029¶ removed
-
AMUpdateClanAnnouncementResponse
= 4030¶ removed
-
AMGetClanAnnouncementsCount
= 4031¶ removed
-
AMGetClanAnnouncementsCountResponse
= 4032¶ removed
-
AMGetClanAnnouncements
= 4033¶ removed
-
AMGetClanAnnouncementsResponse
= 4034¶ removed
-
AMDeleteClanAnnouncement
= 4035¶ removed
-
AMDeleteClanAnnouncementResponse
= 4036¶ removed
-
AMGetSingleClanAnnouncement
= 4037¶ removed
-
AMGetSingleClanAnnouncementResponse
= 4038¶ removed
-
AMGetClanHistory
= 4039¶
-
AMGetClanHistoryResponse
= 4040¶
-
AMGetClanPermissionBits
= 4041¶
-
AMGetClanPermissionBitsResponse
= 4042¶
-
AMSetClanPermissionBits
= 4043¶
-
AMSetClanPermissionBitsResponse
= 4044¶
-
AMSessionInfoRequest
= 4045¶
-
AMSessionInfoResponse
= 4046¶
-
AMValidateWGToken
= 4047¶
-
AMGetSingleClanEvent
= 4048¶
-
AMGetSingleClanEventResponse
= 4049¶
-
AMGetClanRank
= 4050¶
-
AMGetClanRankResponse
= 4051¶
-
AMSetClanRank
= 4052¶
-
AMSetClanRankResponse
= 4053¶
-
AMGetClanPOTW
= 4054¶
-
AMGetClanPOTWResponse
= 4055¶
-
AMSetClanPOTW
= 4056¶
-
AMSetClanPOTWResponse
= 4057¶
-
AMRequestChatMetadata
= 4058¶ removed
-
AMDumpUser
= 4059¶
-
AMKickUserFromClan
= 4060¶
-
AMAddFounderToClan
= 4061¶
-
AMValidateWGTokenResponse
= 4062¶
-
AMSetCommunityState
= 4063¶
-
AMSetAccountDetails
= 4064¶
-
AMGetChatBanList
= 4065¶
-
AMGetChatBanListResponse
= 4066¶
-
AMUnBanFromChat
= 4067¶
-
AMSetClanDetails
= 4068¶
-
AMGetAccountLinks
= 4069¶
-
AMGetAccountLinksResponse
= 4070¶
-
AMSetAccountLinks
= 4071¶
-
AMSetAccountLinksResponse
= 4072¶
-
UGSGetUserGameStats
= 4073¶
-
UGSGetUserGameStatsResponse
= 4074¶
-
AMCheckClanMembership
= 4075¶
-
AMGetClanMembers
= 4076¶
-
AMGetClanMembersResponse
= 4077¶
-
AMJoinPublicClan
= 4078¶
-
AMNotifyChatOfClanChange
= 4079¶
-
AMResubmitPurchase
= 4080¶
-
AMAddFriend
= 4081¶
-
AMAddFriendResponse
= 4082¶
-
AMRemoveFriend
= 4083¶
-
AMDumpClan
= 4084¶
-
AMChangeClanOwner
= 4085¶
-
AMCancelEasyCollect
= 4086¶
-
AMCancelEasyCollectResponse
= 4087¶
-
AMGetClanMembershipList
= 4088¶ removed
-
AMGetClanMembershipListResponse
= 4089¶ removed
-
AMClansInCommon
= 4090¶
-
AMClansInCommonResponse
= 4091¶
-
AMIsValidAccountID
= 4092¶
-
AMConvertClan
= 4093¶
-
AMGetGiftTargetListRelay
= 4094¶ removed
-
AMWipeFriendsList
= 4095¶
-
AMSetIgnored
= 4096¶
-
AMClansInCommonCountResponse
= 4097¶
-
AMFriendsList
= 4098¶
-
AMFriendsListResponse
= 4099¶
-
AMFriendsInCommon
= 4100¶
-
AMFriendsInCommonResponse
= 4101¶
-
AMFriendsInCommonCountResponse
= 4102¶
-
AMClansInCommonCount
= 4103¶
-
AMChallengeVerdict
= 4104¶
-
AMChallengeNotification
= 4105¶
-
AMFindGSByIP
= 4106¶
-
AMFoundGSByIP
= 4107¶
-
AMGiftRevoked
= 4108¶
-
AMCreateAccountRecord
= 4109¶
-
AMUserClanList
= 4110¶
-
AMUserClanListResponse
= 4111¶
-
AMGetAccountDetails2
= 4112¶
-
AMGetAccountDetailsResponse2
= 4113¶
-
AMSetCommunityProfileSettings
= 4114¶
-
AMSetCommunityProfileSettingsResponse
= 4115¶
-
AMGetCommunityPrivacyState
= 4116¶
-
AMGetCommunityPrivacyStateResponse
= 4117¶
-
AMCheckClanInviteRateLimiting
= 4118¶
-
UGSGetUserAchievementStatus
= 4119¶
-
AMGetIgnored
= 4120¶
-
AMGetIgnoredResponse
= 4121¶
-
AMSetIgnoredResponse
= 4122¶
-
AMSetFriendRelationshipNone
= 4123¶
-
AMGetFriendRelationship
= 4124¶
-
AMGetFriendRelationshipResponse
= 4125¶
-
AMServiceModulesCache
= 4126¶
-
AMServiceModulesCall
= 4127¶
-
AMServiceModulesCallResponse
= 4128¶
-
AMGetCaptchaDataForIP
= 4129¶
-
AMGetCaptchaDataForIPResponse
= 4130¶
-
AMValidateCaptchaDataForIP
= 4131¶
-
AMValidateCaptchaDataForIPResponse
= 4132¶
-
AMTrackFailedAuthByIP
= 4133¶
-
AMGetCaptchaDataByGID
= 4134¶
-
AMGetCaptchaDataByGIDResponse
= 4135¶
-
AMGetLobbyList
= 4136¶ removed
-
AMGetLobbyListResponse
= 4137¶ removed
-
AMGetLobbyMetadata
= 4138¶ removed
-
AMGetLobbyMetadataResponse
= 4139¶ removed
-
CommunityAddFriendNews
= 4140¶
-
AMAddClanNews
= 4141¶ removed
-
AMWriteNews
= 4142¶ removed
-
AMFindClanUser
= 4143¶
-
AMFindClanUserResponse
= 4144¶
-
AMBanFromChat
= 4145¶
-
AMGetUserHistoryResponse
= 4146¶ removed
-
AMGetUserNewsSubscriptions
= 4147¶
-
AMGetUserNewsSubscriptionsResponse
= 4148¶
-
AMSetUserNewsSubscriptions
= 4149¶
-
AMGetUserNews
= 4150¶ removed
-
AMGetUserNewsResponse
= 4151¶ removed
-
AMSendQueuedEmails
= 4152¶
-
AMSetLicenseFlags
= 4153¶
-
AMGetUserHistory
= 4154¶ removed
-
CommunityDeleteUserNews
= 4155¶
-
AMAllowUserFilesRequest
= 4156¶
-
AMAllowUserFilesResponse
= 4157¶
-
AMGetAccountStatus
= 4158¶
-
AMGetAccountStatusResponse
= 4159¶
-
AMEditBanReason
= 4160¶
-
AMCheckClanMembershipResponse
= 4161¶
-
AMProbeClanMembershipList
= 4162¶
-
AMProbeClanMembershipListResponse
= 4163¶
-
UGSGetUserAchievementStatusResponse
= 4164¶
-
AMGetFriendsLobbies
= 4165¶
-
AMGetFriendsLobbiesResponse
= 4166¶
-
AMGetUserFriendNewsResponse
= 4172¶
-
CommunityGetUserFriendNews
= 4173¶
-
AMGetUserClansNewsResponse
= 4174¶
-
AMGetUserClansNews
= 4175¶
-
AMStoreInitPurchase
= 4176¶ removed
-
AMStoreInitPurchaseResponse
= 4177¶ removed
-
AMStoreGetFinalPrice
= 4178¶ removed
-
AMStoreGetFinalPriceResponse
= 4179¶ removed
-
AMStoreCompletePurchase
= 4180¶ removed
-
AMStoreCancelPurchase
= 4181¶ removed
-
AMStorePurchaseResponse
= 4182¶ removed
-
AMCreateAccountRecordInSteam3
= 4183¶ removed
-
AMGetPreviousCBAccount
= 4184¶
-
AMGetPreviousCBAccountResponse
= 4185¶
-
AMUpdateBillingAddress
= 4186¶ removed
-
AMUpdateBillingAddressResponse
= 4187¶ removed
-
AMGetBillingAddress
= 4188¶ removed
-
AMGetBillingAddressResponse
= 4189¶ removed
-
AMGetUserLicenseHistory
= 4190¶
-
AMGetUserLicenseHistoryResponse
= 4191¶
-
AMSupportChangePassword
= 4194¶
-
AMSupportChangeEmail
= 4195¶
-
AMSupportChangeSecretQA
= 4196¶ removed
-
AMResetUserVerificationGSByIP
= 4197¶
-
AMUpdateGSPlayStats
= 4198¶
-
AMSupportEnableOrDisable
= 4199¶
-
AMGetComments
= 4200¶ removed
-
AMGetCommentsResponse
= 4201¶ removed
-
AMAddComment
= 4202¶ removed
-
AMAddCommentResponse
= 4203¶ removed
-
AMDeleteComment
= 4204¶ removed
-
AMDeleteCommentResponse
= 4205¶ removed
-
AMGetPurchaseStatus
= 4206¶
-
AMSupportIsAccountEnabled
= 4209¶
-
AMSupportIsAccountEnabledResponse
= 4210¶
-
UGSGetUserStats
= 4211¶
-
AMSupportKickSession
= 4212¶
-
AMGSSearch
= 4213¶
-
MarketingMessageUpdate
= 4216¶
-
ChatServerRouteFriendMsg
= 4219¶
-
AMTicketAuthRequestOrResponse
= 4220¶
-
AMVerifyDepotManagementRights
= 4222¶
-
AMVerifyDepotManagementRightsResponse
= 4223¶
-
AMAddFreeLicense
= 4224¶
-
AMGetUserFriendsMinutesPlayed
= 4225¶ removed
-
AMGetUserFriendsMinutesPlayedResponse
= 4226¶ removed
-
AMGetUserMinutesPlayed
= 4227¶ removed
-
AMGetUserMinutesPlayedResponse
= 4228¶ removed
-
AMValidateEmailLink
= 4231¶
-
AMValidateEmailLinkResponse
= 4232¶
-
AMAddUsersToMarketingTreatment
= 4234¶ removed
-
UGSStoreUserStats
= 4236¶
-
AMGetUserGameplayInfo
= 4237¶ removed
-
AMGetUserGameplayInfoResponse
= 4238¶ removed
-
AMGetCardList
= 4239¶ removed
-
AMGetCardListResponse
= 4240¶ removed
-
AMDeleteStoredCard
= 4241¶
-
AMRevokeLegacyGameKeys
= 4242¶
-
AMGetWalletDetails
= 4244¶
-
AMGetWalletDetailsResponse
= 4245¶
-
AMDeleteStoredPaymentInfo
= 4246¶
-
AMGetStoredPaymentSummary
= 4247¶
-
AMGetStoredPaymentSummaryResponse
= 4248¶
-
AMGetWalletConversionRate
= 4249¶
-
AMGetWalletConversionRateResponse
= 4250¶
-
AMConvertWallet
= 4251¶
-
AMConvertWalletResponse
= 4252¶
-
AMRelayGetFriendsWhoPlayGame
= 4253¶ removed
-
AMRelayGetFriendsWhoPlayGameResponse
= 4254¶ removed
-
AMSetPreApproval
= 4255¶
-
AMSetPreApprovalResponse
= 4256¶
-
AMMarketingTreatmentUpdate
= 4257¶ removed
-
AMCreateRefund
= 4258¶
-
AMCreateRefundResponse
= 4259¶
-
AMCreateChargeback
= 4260¶
-
AMCreateChargebackResponse
= 4261¶
-
AMCreateDispute
= 4262¶
-
AMCreateDisputeResponse
= 4263¶
-
AMClearDispute
= 4264¶
-
AMCreateFinancialAdjustment
= 4265¶
-
AMPlayerNicknameList
= 4266¶
-
AMPlayerNicknameListResponse
= 4267¶
-
AMSetDRMTestConfig
= 4268¶
-
AMGetUserCurrentGameInfo
= 4269¶
-
AMGetUserCurrentGameInfoResponse
= 4270¶
-
AMGetGSPlayerList
= 4271¶
-
AMGetGSPlayerListResponse
= 4272¶
-
AMUpdatePersonaStateCache
= 4275¶ removed
-
AMGetGameMembers
= 4276¶
-
AMGetGameMembersResponse
= 4277¶
-
AMGetSteamIDForMicroTxn
= 4278¶
-
AMGetSteamIDForMicroTxnResponse
= 4279¶
-
AMSetPartnerMember
= 4280¶
-
AMRemovePublisherUser
= 4281¶
-
AMGetUserLicenseList
= 4282¶
-
AMGetUserLicenseListResponse
= 4283¶
-
AMReloadGameGroupPolicy
= 4284¶
-
AMAddFreeLicenseResponse
= 4285¶
-
AMVACStatusUpdate
= 4286¶
-
AMGetAccountDetails
= 4287¶
-
AMGetAccountDetailsResponse
= 4288¶
-
AMGetPlayerLinkDetails
= 4289¶
-
AMGetPlayerLinkDetailsResponse
= 4290¶
-
AMSubscribeToPersonaFeed
= 4291¶ removed
-
AMGetUserVacBanList
= 4292¶ removed
-
AMGetUserVacBanListResponse
= 4293¶ removed
-
AMGetAccountFlagsForWGSpoofing
= 4294¶
-
AMGetAccountFlagsForWGSpoofingResponse
= 4295¶
-
AMGetFriendsWishlistInfo
= 4296¶ removed
-
AMGetFriendsWishlistInfoResponse
= 4297¶ removed
-
AMGetClanOfficers
= 4298¶
-
AMGetClanOfficersResponse
= 4299¶
-
AMNameChange
= 4300¶
-
AMGetNameHistory
= 4301¶
-
AMGetNameHistoryResponse
= 4302¶
-
AMUpdateProviderStatus
= 4305¶
-
AMClearPersonaMetadataBlob
= 4306¶ removed
-
AMSupportRemoveAccountSecurity
= 4307¶
-
AMIsAccountInCaptchaGracePeriod
= 4308¶
-
AMIsAccountInCaptchaGracePeriodResponse
= 4309¶
-
AMAccountPS3Unlink
= 4310¶
-
AMAccountPS3UnlinkResponse
= 4311¶
-
UGSStoreUserStatsResponse
= 4312¶
-
AMGetAccountPSNInfo
= 4313¶
-
AMGetAccountPSNInfoResponse
= 4314¶
-
AMAuthenticatedPlayerList
= 4315¶
-
AMGetUserGifts
= 4316¶
-
AMGetUserGiftsResponse
= 4317¶
-
AMTransferLockedGifts
= 4320¶
-
AMTransferLockedGiftsResponse
= 4321¶
-
AMPlayerHostedOnGameServer
= 4322¶
-
AMGetAccountBanInfo
= 4323¶
-
AMGetAccountBanInfoResponse
= 4324¶
-
AMRecordBanEnforcement
= 4325¶
-
AMRollbackGiftTransfer
= 4326¶
-
AMRollbackGiftTransferResponse
= 4327¶
-
AMHandlePendingTransaction
= 4328¶
-
AMRequestClanDetails
= 4329¶
-
AMDeleteStoredPaypalAgreement
= 4330¶
-
AMGameServerUpdate
= 4331¶
-
AMGameServerRemove
= 4332¶
-
AMGetPaypalAgreements
= 4333¶
-
AMGetPaypalAgreementsResponse
= 4334¶
-
AMGameServerPlayerCompatibilityCheck
= 4335¶
-
AMGameServerPlayerCompatibilityCheckResponse
= 4336¶
-
AMRenewLicense
= 4337¶
-
AMGetAccountCommunityBanInfo
= 4338¶
-
AMGetAccountCommunityBanInfoResponse
= 4339¶
-
AMGameServerAccountChangePassword
= 4340¶
-
AMGameServerAccountDeleteAccount
= 4341¶
-
AMRenewAgreement
= 4342¶
-
AMSendEmail
= 4343¶ removed
-
AMXsollaPayment
= 4344¶
-
AMXsollaPaymentResponse
= 4345¶
-
AMAcctAllowedToPurchase
= 4346¶
-
AMAcctAllowedToPurchaseResponse
= 4347¶
-
AMSwapKioskDeposit
= 4348¶
-
AMSwapKioskDepositResponse
= 4349¶
-
AMSetUserGiftUnowned
= 4350¶
-
AMSetUserGiftUnownedResponse
= 4351¶
-
AMClaimUnownedUserGift
= 4352¶
-
AMClaimUnownedUserGiftResponse
= 4353¶
-
AMSetClanName
= 4354¶
-
AMSetClanNameResponse
= 4355¶
-
AMGrantCoupon
= 4356¶
-
AMGrantCouponResponse
= 4357¶
-
AMIsPackageRestrictedInUserCountry
= 4358¶
-
AMIsPackageRestrictedInUserCountryResponse
= 4359¶
-
AMHandlePendingTransactionResponse
= 4360¶
-
AMGrantGuestPasses2
= 4361¶
-
AMGrantGuestPasses2Response
= 4362¶
-
AMSessionQuery
= 4363¶
-
AMSessionQueryResponse
= 4364¶
-
AMGetPlayerBanDetails
= 4365¶
-
AMGetPlayerBanDetailsResponse
= 4366¶
-
AMFinalizePurchase
= 4367¶
-
AMFinalizePurchaseResponse
= 4368¶
-
AMPersonaChangeResponse
= 4372¶
-
AMGetClanDetailsForForumCreation
= 4373¶
-
AMGetClanDetailsForForumCreationResponse
= 4374¶
-
AMGetPendingNotificationCount
= 4375¶
-
AMGetPendingNotificationCountResponse
= 4376¶
-
AMPasswordHashUpgrade
= 4377¶
-
AMMoPayPayment
= 4378¶
-
AMMoPayPaymentResponse
= 4379¶
-
AMBoaCompraPayment
= 4380¶
-
AMBoaCompraPaymentResponse
= 4381¶
-
AMExpireCaptchaByGID
= 4382¶
-
AMCompleteExternalPurchase
= 4383¶
-
AMCompleteExternalPurchaseResponse
= 4384¶
-
AMResolveNegativeWalletCredits
= 4385¶
-
AMResolveNegativeWalletCreditsResponse
= 4386¶
-
AMPayelpPayment
= 4387¶
-
AMPayelpPaymentResponse
= 4388¶
-
AMPlayerGetClanBasicDetails
= 4389¶
-
AMPlayerGetClanBasicDetailsResponse
= 4390¶
-
AMMOLPayment
= 4391¶
-
AMMOLPaymentResponse
= 4392¶
-
GetUserIPCountry
= 4393¶
-
GetUserIPCountryResponse
= 4394¶
-
NotificationOfSuspiciousActivity
= 4395¶
-
AMDegicaPayment
= 4396¶
-
AMDegicaPaymentResponse
= 4397¶
-
AMEClubPayment
= 4398¶
-
AMEClubPaymentResponse
= 4399¶
-
AMPayPalPaymentsHubPayment
= 4400¶
-
AMPayPalPaymentsHubPaymentResponse
= 4401¶
-
AMTwoFactorRecoverAuthenticatorRequest
= 4402¶
-
AMTwoFactorRecoverAuthenticatorResponse
= 4403¶
-
AMSmart2PayPayment
= 4404¶
-
AMSmart2PayPaymentResponse
= 4405¶
-
AMValidatePasswordResetCodeAndSendSmsRequest
= 4406¶
-
AMValidatePasswordResetCodeAndSendSmsResponse
= 4407¶
-
AMGetAccountResetDetailsRequest
= 4408¶
-
AMGetAccountResetDetailsResponse
= 4409¶
-
AMBitPayPayment
= 4410¶
-
AMBitPayPaymentResponse
= 4411¶
-
AMSendAccountInfoUpdate
= 4412¶
-
AMSendScheduledGift
= 4413¶
-
AMNodwinPayment
= 4414¶
-
AMNodwinPaymentResponse
= 4415¶
-
AMResolveWalletRevoke
= 4416¶
-
AMResolveWalletReverseRevoke
= 4417¶
-
AMFundedPayment
= 4418¶
-
AMFundedPaymentResponse
= 4419¶
-
AMRequestPersonaUpdateForChatServer
= 4420¶
-
AMPerfectWorldPayment
= 4421¶
-
AMPerfectWorldPaymentResponse
= 4422¶
-
BasePSRange
= 5000¶
-
PSCreateShoppingCart
= 5001¶
-
PSCreateShoppingCartResponse
= 5002¶
-
PSIsValidShoppingCart
= 5003¶
-
PSIsValidShoppingCartResponse
= 5004¶
-
PSAddPackageToShoppingCart
= 5005¶
-
PSAddPackageToShoppingCartResponse
= 5006¶
-
PSRemoveLineItemFromShoppingCart
= 5007¶
-
PSRemoveLineItemFromShoppingCartResponse
= 5008¶
-
PSGetShoppingCartContents
= 5009¶
-
PSGetShoppingCartContentsResponse
= 5010¶
-
PSAddWalletCreditToShoppingCart
= 5011¶
-
PSAddWalletCreditToShoppingCartResponse
= 5012¶
-
BaseUFSRange
= 5200¶
-
ClientUFSUploadFileRequest
= 5202¶
-
ClientUFSUploadFileResponse
= 5203¶
-
ClientUFSUploadFileChunk
= 5204¶
-
ClientUFSUploadFileFinished
= 5205¶
-
ClientUFSGetFileListForApp
= 5206¶
-
ClientUFSGetFileListForAppResponse
= 5207¶
-
ClientUFSDownloadRequest
= 5210¶
-
ClientUFSDownloadResponse
= 5211¶
-
ClientUFSDownloadChunk
= 5212¶
-
ClientUFSLoginRequest
= 5213¶
-
ClientUFSLoginResponse
= 5214¶
-
UFSReloadPartitionInfo
= 5215¶
-
ClientUFSTransferHeartbeat
= 5216¶
-
UFSSynchronizeFile
= 5217¶
-
UFSSynchronizeFileResponse
= 5218¶
-
ClientUFSDeleteFileRequest
= 5219¶
-
ClientUFSDeleteFileResponse
= 5220¶
-
UFSDownloadRequest
= 5221¶
-
UFSDownloadResponse
= 5222¶
-
UFSDownloadChunk
= 5223¶
-
ClientUFSGetUGCDetails
= 5226¶
-
ClientUFSGetUGCDetailsResponse
= 5227¶
-
UFSUpdateFileFlags
= 5228¶
-
UFSUpdateFileFlagsResponse
= 5229¶
-
ClientUFSGetSingleFileInfo
= 5230¶
-
ClientUFSGetSingleFileInfoResponse
= 5231¶
-
UFSReloadAccount
= 5234¶
-
UFSReloadAccountResponse
= 5235¶
-
UFSUpdateRecordBatched
= 5236¶
-
UFSUpdateRecordBatchedResponse
= 5237¶
-
UFSMigrateFile
= 5238¶
-
UFSMigrateFileResponse
= 5239¶
-
UFSGetUGCURLs
= 5240¶
-
UFSGetUGCURLsResponse
= 5241¶
-
UFSHttpUploadFileFinishRequest
= 5242¶
-
UFSHttpUploadFileFinishResponse
= 5243¶
-
UFSDownloadStartRequest
= 5244¶
-
UFSDownloadStartResponse
= 5245¶
-
UFSDownloadChunkRequest
= 5246¶
-
UFSDownloadChunkResponse
= 5247¶
-
UFSDownloadFinishRequest
= 5248¶
-
UFSDownloadFinishResponse
= 5249¶
-
UFSFlushURLCache
= 5250¶
-
ClientUFSUploadCommit
= 5251¶
-
ClientUFSUploadCommitResponse
= 5252¶
-
UFSMigrateFileAppID
= 5253¶
-
UFSMigrateFileAppIDResponse
= 5254¶
-
BaseClient2
= 5400¶
-
ClientRequestForgottenPasswordEmail
= 5401¶
-
ClientRequestForgottenPasswordEmailResponse
= 5402¶
-
ClientCreateAccountResponse
= 5403¶
-
ClientResetForgottenPassword
= 5404¶
-
ClientResetForgottenPasswordResponse
= 5405¶
-
ClientCreateAccount2
= 5406¶
-
ClientInformOfResetForgottenPassword
= 5407¶
-
ClientInformOfResetForgottenPasswordResponse
= 5408¶
-
ClientAnonUserLogOn_Deprecated
= 5409¶ removed
-
ClientGamesPlayedWithDataBlob
= 5410¶
-
ClientUpdateUserGameInfo
= 5411¶
-
ClientFileToDownload
= 5412¶
-
ClientFileToDownloadResponse
= 5413¶
-
ClientLBSSetScore
= 5414¶
-
ClientLBSSetScoreResponse
= 5415¶
-
ClientLBSFindOrCreateLB
= 5416¶
-
ClientLBSFindOrCreateLBResponse
= 5417¶
-
ClientLBSGetLBEntries
= 5418¶
-
ClientLBSGetLBEntriesResponse
= 5419¶
-
ClientMarketingMessageUpdate
= 5420¶ removed
-
ClientChatDeclined
= 5426¶
-
ClientFriendMsgIncoming
= 5427¶
-
ClientAuthList_Deprecated
= 5428¶ removed
-
ClientTicketAuthComplete
= 5429¶
-
ClientIsLimitedAccount
= 5430¶
-
ClientRequestAuthList
= 5431¶
-
ClientAuthList
= 5432¶
-
ClientStat
= 5433¶
-
ClientP2PConnectionInfo
= 5434¶
-
ClientP2PConnectionFailInfo
= 5435¶
-
ClientGetNumberOfCurrentPlayers
= 5436¶ removed
-
ClientGetNumberOfCurrentPlayersResponse
= 5437¶ removed
-
ClientGetDepotDecryptionKey
= 5438¶
-
ClientGetDepotDecryptionKeyResponse
= 5439¶
-
GSPerformHardwareSurvey
= 5440¶
-
ClientGetAppBetaPasswords
= 5441¶ removed
-
ClientGetAppBetaPasswordsResponse
= 5442¶ removed
-
ClientEnableTestLicense
= 5443¶
-
ClientEnableTestLicenseResponse
= 5444¶
-
ClientDisableTestLicense
= 5445¶
-
ClientDisableTestLicenseResponse
= 5446¶
-
ClientRequestValidationMail
= 5448¶
-
ClientRequestValidationMailResponse
= 5449¶
-
ClientCheckAppBetaPassword
= 5450¶
-
ClientCheckAppBetaPasswordResponse
= 5451¶
-
ClientToGC
= 5452¶
-
ClientFromGC
= 5453¶
-
ClientRequestChangeMail
= 5454¶
-
ClientRequestChangeMailResponse
= 5455¶
-
ClientEmailAddrInfo
= 5456¶
-
ClientPasswordChange3
= 5457¶
-
ClientEmailChange3
= 5458¶
-
ClientPersonalQAChange3
= 5459¶
-
ClientResetForgottenPassword3
= 5460¶
-
ClientRequestForgottenPasswordEmail3
= 5461¶
-
ClientCreateAccount3
= 5462¶ removed
-
ClientNewLoginKey
= 5463¶
-
ClientNewLoginKeyAccepted
= 5464¶
-
ClientLogOnWithHash_Deprecated
= 5465¶ removed
-
ClientStoreUserStats2
= 5466¶
-
ClientStatsUpdated
= 5467¶
-
ClientActivateOEMLicense
= 5468¶
-
ClientRegisterOEMMachine
= 5469¶
-
ClientRegisterOEMMachineResponse
= 5470¶
-
ClientRequestedClientStats
= 5480¶
-
ClientStat2Int32
= 5481¶
-
ClientStat2
= 5482¶
-
ClientVerifyPassword
= 5483¶
-
ClientVerifyPasswordResponse
= 5484¶
-
ClientDRMDownloadRequest
= 5485¶
-
ClientDRMDownloadResponse
= 5486¶
-
ClientDRMFinalResult
= 5487¶
-
ClientGetFriendsWhoPlayGame
= 5488¶
-
ClientGetFriendsWhoPlayGameResponse
= 5489¶
-
ClientOGSBeginSession
= 5490¶
-
ClientOGSBeginSessionResponse
= 5491¶
-
ClientOGSEndSession
= 5492¶
-
ClientOGSEndSessionResponse
= 5493¶
-
ClientOGSWriteRow
= 5494¶
-
ClientDRMTest
= 5495¶
-
ClientDRMTestResult
= 5496¶
-
ClientServersAvailable
= 5501¶
-
ClientRegisterAuthTicketWithCM
= 5502¶
-
ClientGCMsgFailed
= 5503¶
-
ClientMicroTxnAuthRequest
= 5504¶
-
ClientMicroTxnAuthorize
= 5505¶
-
ClientMicroTxnAuthorizeResponse
= 5506¶
-
ClientAppMinutesPlayedData
= 5507¶
-
ClientGetMicroTxnInfo
= 5508¶
-
ClientGetMicroTxnInfoResponse
= 5509¶
-
ClientMarketingMessageUpdate2
= 5510¶
-
ClientDeregisterWithServer
= 5511¶
-
ClientSubscribeToPersonaFeed
= 5512¶
-
ClientLogon
= 5514¶
-
ClientGetClientDetails
= 5515¶
-
ClientGetClientDetailsResponse
= 5516¶
-
ClientReportOverlayDetourFailure
= 5517¶
-
ClientGetClientAppList
= 5518¶
-
ClientGetClientAppListResponse
= 5519¶
-
ClientInstallClientApp
= 5520¶
-
ClientInstallClientAppResponse
= 5521¶
-
ClientUninstallClientApp
= 5522¶
-
ClientUninstallClientAppResponse
= 5523¶
-
ClientSetClientAppUpdateState
= 5524¶
-
ClientSetClientAppUpdateStateResponse
= 5525¶
-
ClientRequestEncryptedAppTicket
= 5526¶
-
ClientRequestEncryptedAppTicketResponse
= 5527¶
-
ClientWalletInfoUpdate
= 5528¶
-
ClientLBSSetUGC
= 5529¶
-
ClientLBSSetUGCResponse
= 5530¶
-
ClientAMGetClanOfficers
= 5531¶
-
ClientAMGetClanOfficersResponse
= 5532¶
-
ClientCheckFileSignature
= 5533¶ removed
-
ClientCheckFileSignatureResponse
= 5534¶ removed
-
ClientFriendProfileInfo
= 5535¶
-
ClientFriendProfileInfoResponse
= 5536¶
-
ClientUpdateMachineAuth
= 5537¶
-
ClientUpdateMachineAuthResponse
= 5538¶
-
ClientReadMachineAuth
= 5539¶
-
ClientReadMachineAuthResponse
= 5540¶
-
ClientRequestMachineAuth
= 5541¶
-
ClientRequestMachineAuthResponse
= 5542¶
-
ClientScreenshotsChanged
= 5543¶
-
ClientEmailChange4
= 5544¶
-
ClientEmailChangeResponse4
= 5545¶
-
ClientGetCDNAuthToken
= 5546¶
-
ClientGetCDNAuthTokenResponse
= 5547¶
-
ClientDownloadRateStatistics
= 5548¶
-
ClientRequestAccountData
= 5549¶
-
ClientRequestAccountDataResponse
= 5550¶
-
ClientResetForgottenPassword4
= 5551¶
-
ClientHideFriend
= 5552¶
-
ClientFriendsGroupsList
= 5553¶
-
ClientGetClanActivityCounts
= 5554¶
-
ClientGetClanActivityCountsResponse
= 5555¶
-
ClientOGSReportString
= 5556¶
-
ClientOGSReportBug
= 5557¶
-
ClientSentLogs
= 5558¶
-
ClientLogonGameServer
= 5559¶
-
AMClientCreateFriendsGroup
= 5560¶
-
AMClientCreateFriendsGroupResponse
= 5561¶
-
AMClientDeleteFriendsGroup
= 5562¶
-
AMClientDeleteFriendsGroupResponse
= 5563¶
-
AMClientManageFriendsGroup
= 5564¶
-
AMClientManageFriendsGroupResponse
= 5565¶
-
AMClientAddFriendToGroup
= 5566¶
-
AMClientAddFriendToGroupResponse
= 5567¶
-
AMClientRemoveFriendFromGroup
= 5568¶
-
AMClientRemoveFriendFromGroupResponse
= 5569¶
-
ClientAMGetPersonaNameHistory
= 5570¶
-
ClientAMGetPersonaNameHistoryResponse
= 5571¶
-
ClientRequestFreeLicense
= 5572¶
-
ClientRequestFreeLicenseResponse
= 5573¶
-
ClientDRMDownloadRequestWithCrashData
= 5574¶
-
ClientAuthListAck
= 5575¶
-
ClientItemAnnouncements
= 5576¶
-
ClientRequestItemAnnouncements
= 5577¶
-
ClientFriendMsgEchoToSender
= 5578¶
-
ClientChangeSteamGuardOptions
= 5579¶ removed
-
ClientChangeSteamGuardOptionsResponse
= 5580¶ removed
-
ClientOGSGameServerPingSample
= 5581¶
-
ClientCommentNotifications
= 5582¶
-
ClientRequestCommentNotifications
= 5583¶
-
ClientPersonaChangeResponse
= 5584¶
-
ClientRequestWebAPIAuthenticateUserNonce
= 5585¶
-
ClientRequestWebAPIAuthenticateUserNonceResponse
= 5586¶
-
ClientPlayerNicknameList
= 5587¶
-
AMClientSetPlayerNickname
= 5588¶
-
AMClientSetPlayerNicknameResponse
= 5589¶
-
ClientCreateAccountProto
= 5590¶
-
ClientCreateAccountProtoResponse
= 5591¶
-
ClientGetNumberOfCurrentPlayersDP
= 5592¶
-
ClientGetNumberOfCurrentPlayersDPResponse
= 5593¶
-
ClientServiceMethodLegacy
= 5594¶
-
ClientServiceMethodLegacyResponse
= 5595¶
-
ClientFriendUserStatusPublished
= 5596¶
-
ClientCurrentUIMode
= 5597¶
-
ClientVanityURLChangedNotification
= 5598¶
-
ClientUserNotifications
= 5599¶
-
BaseDFS
= 5600¶
-
DFSGetFile
= 5601¶
-
DFSInstallLocalFile
= 5602¶
-
DFSConnection
= 5603¶
-
DFSConnectionReply
= 5604¶
-
ClientDFSAuthenticateRequest
= 5605¶
-
ClientDFSAuthenticateResponse
= 5606¶
-
ClientDFSEndSession
= 5607¶
-
DFSPurgeFile
= 5608¶
-
DFSRouteFile
= 5609¶
-
DFSGetFileFromServer
= 5610¶
-
DFSAcceptedResponse
= 5611¶
-
DFSRequestPingback
= 5612¶
-
DFSRecvTransmitFile
= 5613¶
-
DFSSendTransmitFile
= 5614¶
-
DFSRequestPingback2
= 5615¶
-
DFSResponsePingback2
= 5616¶
-
ClientDFSDownloadStatus
= 5617¶
-
DFSStartTransfer
= 5618¶
-
DFSTransferComplete
= 5619¶
-
DFSRouteFileResponse
= 5620¶
-
ClientNetworkingCertRequest
= 5621¶
-
ClientNetworkingCertRequestResponse
= 5622¶
-
ClientChallengeRequest
= 5623¶
-
ClientChallengeResponse
= 5624¶
-
BadgeCraftedNotification
= 5625¶
-
ClientNetworkingMobileCertRequest
= 5626¶
-
ClientNetworkingMobileCertRequestResponse
= 5627¶
-
BaseMDS
= 5800¶
-
ClientMDSLoginRequest
= 5801¶ removed
-
ClientMDSLoginResponse
= 5802¶ removed
-
ClientMDSUploadManifestRequest
= 5803¶ removed
-
ClientMDSUploadManifestResponse
= 5804¶ removed
-
ClientMDSTransmitManifestDataChunk
= 5805¶ removed
-
ClientMDSHeartbeat
= 5806¶ removed
-
ClientMDSUploadDepotChunks
= 5807¶ removed
-
ClientMDSUploadDepotChunksResponse
= 5808¶ removed
-
ClientMDSInitDepotBuildRequest
= 5809¶ removed
-
ClientMDSInitDepotBuildResponse
= 5810¶ removed
-
AMToMDSGetDepotDecryptionKey
= 5812¶
-
MDSToAMGetDepotDecryptionKeyResponse
= 5813¶
-
MDSGetVersionsForDepot
= 5814¶ removed
-
MDSGetVersionsForDepotResponse
= 5815¶ removed
-
ClientMDSInitWorkshopBuildRequest
= 5816¶ removed
-
ClientMDSInitWorkshopBuildResponse
= 5817¶ removed
-
ClientMDSGetDepotManifest
= 5818¶ removed
-
ClientMDSGetDepotManifestResponse
= 5819¶ removed
-
ClientMDSGetDepotManifestChunk
= 5820¶ removed
-
ClientMDSUploadRateTest
= 5823¶ removed
-
ClientMDSUploadRateTestResponse
= 5824¶ removed
-
MDSDownloadDepotChunksAck
= 5825¶ removed
-
MDSContentServerStatsBroadcast
= 5826¶ removed
-
MDSContentServerConfigRequest
= 5827¶
-
MDSContentServerConfig
= 5828¶
-
MDSGetDepotManifest
= 5829¶
-
MDSGetDepotManifestResponse
= 5830¶
-
MDSGetDepotManifestChunk
= 5831¶
-
MDSGetDepotChunk
= 5832¶
-
MDSGetDepotChunkResponse
= 5833¶
-
MDSGetDepotChunkChunk
= 5834¶
-
MDSUpdateContentServerConfig
= 5835¶ removed
-
MDSGetServerListForUser
= 5836¶
-
MDSGetServerListForUserResponse
= 5837¶
-
ClientMDSRegisterAppBuild
= 5838¶ removed
-
ClientMDSRegisterAppBuildResponse
= 5839¶ removed
-
ClientMDSSetAppBuildLive
= 5840¶ removed
-
ClientMDSSetAppBuildLiveResponse
= 5841¶ removed
-
ClientMDSGetPrevDepotBuild
= 5842¶ removed
-
ClientMDSGetPrevDepotBuildResponse
= 5843¶ removed
-
MDSToCSFlushChunk
= 5844¶
-
ClientMDSSignInstallScript
= 5845¶ removed
-
ClientMDSSignInstallScriptResponse
= 5846¶ removed
-
MDSMigrateChunk
= 5847¶
-
MDSMigrateChunkResponse
= 5848¶
-
MDSToCSFlushManifest
= 5849¶
-
CSBase
= 6200¶
-
CSPing
= 6201¶
-
CSPingResponse
= 6202¶
-
GMSBase
= 6400¶
-
GMSGameServerReplicate
= 6401¶
-
ClientGMSServerQuery
= 6403¶
-
GMSClientServerQueryResponse
= 6404¶
-
AMGMSGameServerUpdate
= 6405¶
-
AMGMSGameServerRemove
= 6406¶
-
GameServerOutOfDate
= 6407¶
-
DeviceAuthorizationBase
= 6500¶
-
ClientAuthorizeLocalDeviceRequest
= 6501¶
-
ClientAuthorizeLocalDeviceResponse
= 6502¶
-
ClientUseLocalDeviceAuthorizations
= 6505¶
-
ClientGetAuthorizedDevices
= 6506¶
-
ClientGetAuthorizedDevicesResponse
= 6507¶
-
AMNotifySessionDeviceAuthorized
= 6508¶
-
ClientAuthorizeLocalDeviceNotification
= 6509¶
-
MMSBase
= 6600¶
-
ClientMMSCreateLobby
= 6601¶
-
ClientMMSCreateLobbyResponse
= 6602¶
-
ClientMMSJoinLobby
= 6603¶
-
ClientMMSJoinLobbyResponse
= 6604¶
-
ClientMMSLeaveLobby
= 6605¶
-
ClientMMSLeaveLobbyResponse
= 6606¶
-
ClientMMSGetLobbyList
= 6607¶
-
ClientMMSGetLobbyListResponse
= 6608¶
-
ClientMMSSetLobbyData
= 6609¶
-
ClientMMSSetLobbyDataResponse
= 6610¶
-
ClientMMSGetLobbyData
= 6611¶
-
ClientMMSLobbyData
= 6612¶
-
ClientMMSSendLobbyChatMsg
= 6613¶
-
ClientMMSLobbyChatMsg
= 6614¶
-
ClientMMSSetLobbyOwner
= 6615¶
-
ClientMMSSetLobbyOwnerResponse
= 6616¶
-
ClientMMSSetLobbyGameServer
= 6617¶
-
ClientMMSLobbyGameServerSet
= 6618¶
-
ClientMMSUserJoinedLobby
= 6619¶
-
ClientMMSUserLeftLobby
= 6620¶
-
ClientMMSInviteToLobby
= 6621¶
-
ClientMMSFlushFrenemyListCache
= 6622¶
-
ClientMMSFlushFrenemyListCacheResponse
= 6623¶
-
ClientMMSSetLobbyLinked
= 6624¶
-
ClientMMSSetRatelimitPolicyOnClient
= 6625¶
-
ClientMMSGetLobbyStatus
= 6626¶
-
ClientMMSGetLobbyStatusResponse
= 6627¶
-
MMSGetLobbyList
= 6628¶
-
MMSGetLobbyListResponse
= 6629¶
-
NonStdMsgBase
= 6800¶
-
NonStdMsgMemcached
= 6801¶
-
NonStdMsgHTTPServer
= 6802¶
-
NonStdMsgHTTPClient
= 6803¶
-
NonStdMsgWGResponse
= 6804¶
-
NonStdMsgPHPSimulator
= 6805¶
-
NonStdMsgChase
= 6806¶
-
NonStdMsgDFSTransfer
= 6807¶
-
NonStdMsgTests
= 6808¶
-
NonStdMsgUMQpipeAAPL
= 6809¶
-
NonStdMsgSyslog
= 6810¶
-
NonStdMsgLogsink
= 6811¶
-
NonStdMsgSteam2Emulator
= 6812¶
-
NonStdMsgRTMPServer
= 6813¶
-
NonStdMsgWebSocket
= 6814¶
-
NonStdMsgRedis
= 6815¶
-
UDSBase
= 7000¶
-
ClientUDSP2PSessionStarted
= 7001¶
-
ClientUDSP2PSessionEnded
= 7002¶
-
UDSRenderUserAuth
= 7003¶
-
UDSRenderUserAuthResponse
= 7004¶
-
ClientInviteToGame
= 7005¶
-
UDSHasSession
= 7006¶
-
UDSHasSessionResponse
= 7007¶
-
MPASBase
= 7100¶
-
MPASVacBanReset
= 7101¶
-
KGSBase
= 7200¶
-
KGSAllocateKeyRange
= 7201¶ removed
-
KGSAllocateKeyRangeResponse
= 7202¶ removed
-
KGSGenerateKeys
= 7203¶ removed
-
KGSGenerateKeysResponse
= 7204¶ removed
-
KGSRemapKeys
= 7205¶ removed
-
KGSRemapKeysResponse
= 7206¶ removed
-
KGSGenerateGameStopWCKeys
= 7207¶ removed
-
KGSGenerateGameStopWCKeysResponse
= 7208¶ removed
-
UCMBase
= 7300¶
-
ClientUCMAddScreenshot
= 7301¶
-
ClientUCMAddScreenshotResponse
= 7302¶
-
UCMValidateObjectExists
= 7303¶ removed
-
UCMValidateObjectExistsResponse
= 7304¶ removed
-
UCMResetCommunityContent
= 7307¶
-
UCMResetCommunityContentResponse
= 7308¶
-
ClientUCMDeleteScreenshot
= 7309¶
-
ClientUCMDeleteScreenshotResponse
= 7310¶
-
ClientUCMPublishFile
= 7311¶
-
ClientUCMPublishFileResponse
= 7312¶
-
ClientUCMGetPublishedFileDetails
= 7313¶ removed
-
ClientUCMGetPublishedFileDetailsResponse
= 7314¶ removed
-
ClientUCMDeletePublishedFile
= 7315¶
-
ClientUCMDeletePublishedFileResponse
= 7316¶
-
ClientUCMEnumerateUserPublishedFiles
= 7317¶
-
ClientUCMEnumerateUserPublishedFilesResponse
= 7318¶
-
ClientUCMSubscribePublishedFile
= 7319¶ removed
-
ClientUCMSubscribePublishedFileResponse
= 7320¶ removed
-
ClientUCMEnumerateUserSubscribedFiles
= 7321¶
-
ClientUCMEnumerateUserSubscribedFilesResponse
= 7322¶
-
ClientUCMUnsubscribePublishedFile
= 7323¶ removed
-
ClientUCMUnsubscribePublishedFileResponse
= 7324¶ removed
-
ClientUCMUpdatePublishedFile
= 7325¶
-
ClientUCMUpdatePublishedFileResponse
= 7326¶
-
UCMUpdatePublishedFile
= 7327¶
-
UCMUpdatePublishedFileResponse
= 7328¶
-
UCMDeletePublishedFile
= 7329¶
-
UCMDeletePublishedFileResponse
= 7330¶
-
UCMUpdatePublishedFileStat
= 7331¶
-
UCMUpdatePublishedFileBan
= 7332¶
-
UCMUpdatePublishedFileBanResponse
= 7333¶
-
UCMUpdateTaggedScreenshot
= 7334¶ removed
-
UCMAddTaggedScreenshot
= 7335¶ removed
-
UCMRemoveTaggedScreenshot
= 7336¶ removed
-
UCMReloadPublishedFile
= 7337¶
-
UCMReloadUserFileListCaches
= 7338¶
-
UCMPublishedFileReported
= 7339¶
-
UCMUpdatePublishedFileIncompatibleStatus
= 7340¶ removed
-
UCMPublishedFilePreviewAdd
= 7341¶
-
UCMPublishedFilePreviewAddResponse
= 7342¶
-
UCMPublishedFilePreviewRemove
= 7343¶
-
UCMPublishedFilePreviewRemoveResponse
= 7344¶
-
UCMPublishedFilePreviewChangeSortOrder
= 7345¶ removed
-
UCMPublishedFilePreviewChangeSortOrderResponse
= 7346¶ removed
-
ClientUCMPublishedFileSubscribed
= 7347¶
-
ClientUCMPublishedFileUnsubscribed
= 7348¶
-
UCMPublishedFileSubscribed
= 7349¶
-
UCMPublishedFileUnsubscribed
= 7350¶
-
UCMPublishFile
= 7351¶
-
UCMPublishFileResponse
= 7352¶
-
UCMPublishedFileChildAdd
= 7353¶
-
UCMPublishedFileChildAddResponse
= 7354¶
-
UCMPublishedFileChildRemove
= 7355¶
-
UCMPublishedFileChildRemoveResponse
= 7356¶
-
UCMPublishedFileChildChangeSortOrder
= 7357¶ removed
-
UCMPublishedFileChildChangeSortOrderResponse
= 7358¶ removed
-
UCMPublishedFileParentChanged
= 7359¶
-
ClientUCMGetPublishedFilesForUser
= 7360¶
-
ClientUCMGetPublishedFilesForUserResponse
= 7361¶
-
UCMGetPublishedFilesForUser
= 7362¶ removed
-
UCMGetPublishedFilesForUserResponse
= 7363¶ removed
-
ClientUCMSetUserPublishedFileAction
= 7364¶
-
ClientUCMSetUserPublishedFileActionResponse
= 7365¶
-
ClientUCMEnumeratePublishedFilesByUserAction
= 7366¶
-
ClientUCMEnumeratePublishedFilesByUserActionResponse
= 7367¶
-
ClientUCMPublishedFileDeleted
= 7368¶
-
UCMGetUserSubscribedFiles
= 7369¶
-
UCMGetUserSubscribedFilesResponse
= 7370¶
-
UCMFixStatsPublishedFile
= 7371¶
-
UCMDeleteOldScreenshot
= 7372¶ removed
-
UCMDeleteOldScreenshotResponse
= 7373¶ removed
-
UCMDeleteOldVideo
= 7374¶ removed
-
UCMDeleteOldVideoResponse
= 7375¶ removed
-
UCMUpdateOldScreenshotPrivacy
= 7376¶ removed
-
UCMUpdateOldScreenshotPrivacyResponse
= 7377¶ removed
-
ClientUCMEnumerateUserSubscribedFilesWithUpdates
= 7378¶
-
ClientUCMEnumerateUserSubscribedFilesWithUpdatesResponse
= 7379¶
-
UCMPublishedFileContentUpdated
= 7380¶
-
ClientUCMPublishedFileUpdated
= 7381¶
-
ClientWorkshopItemChangesRequest
= 7382¶
-
ClientWorkshopItemChangesResponse
= 7383¶
-
ClientWorkshopItemInfoRequest
= 7384¶
-
ClientWorkshopItemInfoResponse
= 7385¶
-
FSBase
= 7500¶
-
ClientRichPresenceUpload
= 7501¶
-
ClientRichPresenceRequest
= 7502¶
-
ClientRichPresenceInfo
= 7503¶
-
FSRichPresenceRequest
= 7504¶
-
FSRichPresenceResponse
= 7505¶
-
FSComputeFrenematrix
= 7506¶
-
FSComputeFrenematrixResponse
= 7507¶
-
FSPlayStatusNotification
= 7508¶
-
FSPublishPersonaStatus
= 7509¶ removed
-
FSAddOrRemoveFollower
= 7510¶
-
FSAddOrRemoveFollowerResponse
= 7511¶
-
FSUpdateFollowingList
= 7512¶
-
FSCommentNotification
= 7513¶
-
FSCommentNotificationViewed
= 7514¶
-
ClientFSGetFollowerCount
= 7515¶
-
ClientFSGetFollowerCountResponse
= 7516¶
-
ClientFSGetIsFollowing
= 7517¶
-
ClientFSGetIsFollowingResponse
= 7518¶
-
ClientFSEnumerateFollowingList
= 7519¶
-
ClientFSEnumerateFollowingListResponse
= 7520¶
-
FSGetPendingNotificationCount
= 7521¶
-
FSGetPendingNotificationCountResponse
= 7522¶
-
ClientChatOfflineMessageNotification
= 7523¶
-
ClientChatRequestOfflineMessageCount
= 7524¶
-
ClientChatGetFriendMessageHistory
= 7525¶
-
ClientChatGetFriendMessageHistoryResponse
= 7526¶
-
ClientChatGetFriendMessageHistoryForOfflineMessages
= 7527¶
-
ClientFSGetFriendsSteamLevels
= 7528¶
-
ClientFSGetFriendsSteamLevelsResponse
= 7529¶
-
AMRequestFriendData
= 7530¶
-
CEGVersionSetEnableDisableRequest
= 7600¶
-
DRMRange2
= 7600¶
-
CEGVersionSetEnableDisableResponse
= 7601¶
-
CEGPropStatusDRMSRequest
= 7602¶
-
CEGPropStatusDRMSResponse
= 7603¶
-
CEGWhackFailureReportRequest
= 7604¶
-
CEGWhackFailureReportResponse
= 7605¶
-
DRMSFetchVersionSet
= 7606¶
-
DRMSFetchVersionSetResponse
= 7607¶
-
EconBase
= 7700¶
-
EconTrading_InitiateTradeRequest
= 7701¶
-
EconTrading_InitiateTradeProposed
= 7702¶
-
EconTrading_InitiateTradeResponse
= 7703¶
-
EconTrading_InitiateTradeResult
= 7704¶
-
EconTrading_StartSession
= 7705¶
-
EconTrading_CancelTradeRequest
= 7706¶
-
EconFlushInventoryCache
= 7707¶
-
EconFlushInventoryCacheResponse
= 7708¶
-
EconCDKeyProcessTransaction
= 7711¶
-
EconCDKeyProcessTransactionResponse
= 7712¶
-
EconGetErrorLogs
= 7713¶
-
EconGetErrorLogsResponse
= 7714¶
-
RMRange
= 7800¶
-
RMTestVerisignOTP
= 7800¶
-
RMTestVerisignOTPResponse
= 7801¶
-
RMDeleteMemcachedKeys
= 7803¶
-
RMRemoteInvoke
= 7804¶
-
BadLoginIPList
= 7805¶
-
RMMsgTraceAddTrigger
= 7806¶
-
RMMsgTraceRemoveTrigger
= 7807¶
-
RMMsgTraceEvent
= 7808¶
-
UGSUpdateGlobalStats
= 7900¶
-
UGSBase
= 7900¶
-
ClientUGSGetGlobalStats
= 7901¶
-
ClientUGSGetGlobalStatsResponse
= 7902¶
-
StoreUpdateRecommendationCount
= 8000¶ removed
-
StoreBase
= 8000¶
-
UMQLogonRequest
= 8100¶
-
UMQBase
= 8100¶
-
UMQLogonResponse
= 8101¶
-
UMQLogoffRequest
= 8102¶
-
UMQLogoffResponse
= 8103¶
-
UMQSendChatMessage
= 8104¶
-
UMQIncomingChatMessage
= 8105¶
-
UMQPoll
= 8106¶
-
UMQPollResults
= 8107¶
-
UMQ2AM_ClientMsgBatch
= 8108¶
-
UMQEnqueueMobileSalePromotions
= 8109¶ removed
-
UMQEnqueueMobileAnnouncements
= 8110¶ removed
-
WorkshopAcceptTOSRequest
= 8200¶ removed
-
WorkshopBase
= 8200¶
-
WorkshopAcceptTOSResponse
= 8201¶ removed
-
WebAPIValidateOAuth2Token
= 8300¶
-
WebAPIBase
= 8300¶
-
WebAPIValidateOAuth2TokenResponse
= 8301¶
-
WebAPIInvalidateTokensForAccount
= 8302¶ removed
-
WebAPIRegisterGCInterfaces
= 8303¶
-
WebAPIInvalidateOAuthClientCache
= 8304¶
-
WebAPIInvalidateOAuthTokenCache
= 8305¶
-
WebAPISetSecrets
= 8306¶
-
BackpackBase
= 8400¶
-
BackpackAddToCurrency
= 8401¶
-
BackpackAddToCurrencyResponse
= 8402¶
-
CREBase
= 8500¶
-
CRERankByTrend
= 8501¶ removed
-
CRERankByTrendResponse
= 8502¶ removed
-
CREItemVoteSummary
= 8503¶
-
CREItemVoteSummaryResponse
= 8504¶
-
CRERankByVote
= 8505¶ removed
-
CRERankByVoteResponse
= 8506¶ removed
-
CREUpdateUserPublishedItemVote
= 8507¶
-
CREUpdateUserPublishedItemVoteResponse
= 8508¶
-
CREGetUserPublishedItemVoteDetails
= 8509¶
-
CREGetUserPublishedItemVoteDetailsResponse
= 8510¶
-
CREEnumeratePublishedFiles
= 8511¶
-
CREEnumeratePublishedFilesResponse
= 8512¶
-
CREPublishedFileVoteAdded
= 8513¶
-
SecretsRequestCredentialPair
= 8600¶
-
SecretsBase
= 8600¶
-
SecretsCredentialPairResponse
= 8601¶
-
SecretsRequestServerIdentity
= 8602¶ removed
-
SecretsServerIdentityResponse
= 8603¶ removed
-
SecretsUpdateServerIdentities
= 8604¶ removed
-
BoxMonitorReportRequest
= 8700¶
-
BoxMonitorBase
= 8700¶
-
BoxMonitorReportResponse
= 8701¶
-
LogsinkWriteReport
= 8800¶
-
LogsinkBase
= 8800¶
-
PICSBase
= 8900¶
-
ClientPICSChangesSinceRequest
= 8901¶
-
ClientPICSChangesSinceResponse
= 8902¶
-
ClientPICSProductInfoRequest
= 8903¶
-
ClientPICSProductInfoResponse
= 8904¶
-
ClientPICSAccessTokenRequest
= 8905¶
-
ClientPICSAccessTokenResponse
= 8906¶
-
WorkerProcess
= 9000¶
-
WorkerProcessPingRequest
= 9000¶
-
WorkerProcessPingResponse
= 9001¶
-
WorkerProcessShutdown
= 9002¶
-
DRMWorkerProcess
= 9100¶
-
DRMWorkerProcessDRMAndSign
= 9100¶
-
DRMWorkerProcessDRMAndSignResponse
= 9101¶
-
DRMWorkerProcessSteamworksInfoRequest
= 9102¶
-
DRMWorkerProcessSteamworksInfoResponse
= 9103¶
-
DRMWorkerProcessInstallDRMDLLRequest
= 9104¶
-
DRMWorkerProcessInstallDRMDLLResponse
= 9105¶
-
DRMWorkerProcessSecretIdStringRequest
= 9106¶
-
DRMWorkerProcessSecretIdStringResponse
= 9107¶
-
DRMWorkerProcessGetDRMGuidsFromFileRequest
= 9108¶ removed
-
DRMWorkerProcessGetDRMGuidsFromFileResponse
= 9109¶ removed
-
DRMWorkerProcessInstallProcessedFilesRequest
= 9110¶
-
DRMWorkerProcessInstallProcessedFilesResponse
= 9111¶
-
DRMWorkerProcessExamineBlobRequest
= 9112¶
-
DRMWorkerProcessExamineBlobResponse
= 9113¶
-
DRMWorkerProcessDescribeSecretRequest
= 9114¶
-
DRMWorkerProcessDescribeSecretResponse
= 9115¶
-
DRMWorkerProcessBackfillOriginalRequest
= 9116¶
-
DRMWorkerProcessBackfillOriginalResponse
= 9117¶
-
DRMWorkerProcessValidateDRMDLLRequest
= 9118¶
-
DRMWorkerProcessValidateDRMDLLResponse
= 9119¶
-
DRMWorkerProcessValidateFileRequest
= 9120¶
-
DRMWorkerProcessValidateFileResponse
= 9121¶
-
DRMWorkerProcessSplitAndInstallRequest
= 9122¶
-
DRMWorkerProcessSplitAndInstallResponse
= 9123¶
-
DRMWorkerProcessGetBlobRequest
= 9124¶
-
DRMWorkerProcessGetBlobResponse
= 9125¶
-
DRMWorkerProcessEvaluateCrashRequest
= 9126¶
-
DRMWorkerProcessEvaluateCrashResponse
= 9127¶
-
DRMWorkerProcessAnalyzeFileRequest
= 9128¶
-
DRMWorkerProcessAnalyzeFileResponse
= 9129¶
-
DRMWorkerProcessUnpackBlobRequest
= 9130¶
-
DRMWorkerProcessUnpackBlobResponse
= 9131¶
-
DRMWorkerProcessInstallAllRequest
= 9132¶
-
DRMWorkerProcessInstallAllResponse
= 9133¶
-
TestWorkerProcess
= 9200¶
-
TestWorkerProcessLoadUnloadModuleRequest
= 9200¶
-
TestWorkerProcessLoadUnloadModuleResponse
= 9201¶
-
TestWorkerProcessServiceModuleCallRequest
= 9202¶
-
TestWorkerProcessServiceModuleCallResponse
= 9203¶
-
QuestServerBase
= 9300¶
-
ClientGetEmoticonList
= 9330¶
-
ClientEmoticonList
= 9331¶
-
SLCUserSessionStatus
= 9400¶
-
SLCBase
= 9400¶
-
SLCRequestUserSessionStatus
= 9401¶
removed
removed
-
SLCOwnerLibraryChanged
= 9407¶
-
RemoteClientAuth_OBSOLETE
= 9500¶
-
RemoteClientBase
= 9500¶
-
RemoteClientAuthResponse_OBSOLETE
= 9501¶
-
RemoteClientAppStatus
= 9502¶
-
RemoteClientStartStream
= 9503¶
-
RemoteClientStartStreamResponse
= 9504¶
-
RemoteClientPing
= 9505¶
-
RemoteClientPingResponse
= 9506¶
-
ClientUnlockStreaming
= 9507¶
-
ClientUnlockStreamingResponse
= 9508¶
-
RemoteClientAcceptEULA
= 9509¶
-
RemoteClientGetControllerConfig
= 9510¶
-
RemoteClientGetControllerConfigResponse
= 9511¶
-
RemoteClientStreamingEnabled
= 9512¶
-
ClientUnlockHEVC
= 9513¶
-
ClientUnlockHEVCResponse
= 9514¶
-
RemoteClientStatusRequest
= 9515¶
-
RemoteClientStatusResponse
= 9516¶
-
ClientPlayingSessionState
= 9600¶
-
ClientConcurrentSessionsBase
= 9600¶
-
ClientKickPlayingSession
= 9601¶
-
ClientBroadcastInit
= 9700¶ removed
-
ClientBroadcastBase
= 9700¶
-
ClientBroadcastFrames
= 9701¶
-
ClientBroadcastDisconnect
= 9702¶
-
ClientBroadcastScreenshot
= 9703¶
-
ClientBroadcastUploadConfig
= 9704¶
-
ClientVoiceCallPreAuthorize
= 9800¶ removed
-
BaseClient3
= 9800¶
-
ClientVoiceCallPreAuthorizeResponse
= 9801¶
-
ClientServerTimestampRequest
= 9802¶
-
ClientServerTimestampResponse
= 9803¶
-
ClientLANP2PRequestChunk
= 9900¶
-
ClientLANP2PBase
= 9900¶
-
ClientLANP2PRequestChunkResponse
= 9901¶
-
ClientLANP2PMax
= 9999¶
-
NotifyWatchdog
= 10000¶
-
ClientSiteLicenseSiteInfoNotification
= 10100¶
-
ClientSiteLicenseBase
= 10100¶
-
ClientSiteLicenseCheckout
= 10101¶
-
ClientSiteLicenseCheckoutResponse
= 10102¶
-
ClientSiteLicenseGetAvailableSeats
= 10103¶
-
ClientSiteLicenseGetAvailableSeatsResponse
= 10104¶
-
ClientSiteLicenseGetContentCacheInfo
= 10105¶
-
ClientSiteLicenseGetContentCacheInfoResponse
= 10106¶
-
ChatServerGetPendingNotificationCount
= 12000¶
-
BaseChatServer
= 12000¶
-
ChatServerGetPendingNotificationCountResponse
= 12001¶
-
ServerSecretChanged
= 12100¶
-
BaseSecretServer
= 12100¶
-
exceptions¶
-
exception
steam.exceptions.
SteamError
(message, eresult=<EResult.Fail: 2>)¶ Bases:
Exception
General error that also carries EResult code
-
exception
steam.exceptions.
ManifestError
(message, app_id, depot_id, manifest_gid, error=None)¶ Bases:
steam.exceptions.SteamError
Raised when there a problem getting a manifest by
CDNClient
Encapsulates original exception inerror
and includes manifest details
game_servers¶
Master Server Query Protocol
This module implements the legacy Steam master server protocol.
https://developer.valvesoftware.com/wiki/Master_Server_Query_Protocol
Nowadays games query servers through Steam. See steam.client.builtins.gameservers
Filters¶
Note
Multiple filters can be joined to together (Eg. \appid\730\white\1\empty\1
)
Filter code | What it does |
---|---|
\nor\[x] | A special filter, specifies that servers matching any of the following [x] conditions should not be returned |
\nand\[x] | A special filter, specifies that servers matching all of the following [x] conditions should not be returned |
\dedicated\1 | Servers running dedicated |
\secure\1 | Servers using anti-cheat technology (VAC, but potentially others as well) |
\gamedir\[mod] | Servers running the specified modification (ex. cstrike) |
\map\[map] | Servers running the specified map (ex. cs_italy) |
\linux\1 | Servers running on a Linux platform |
\password\0 | Servers that are not password protected |
\empty\1 | Servers that are not empty |
\full\1 | Servers that are not full |
\proxy\1 | Servers that are spectator proxies |
\appid\[appid] | Servers that are running game [appid] |
\napp\[appid] | Servers that are NOT running game [appid] (This was introduced to block Left 4 Dead games from the Steam Server Browser) |
\noplayers\1 | Servers that are empty |
\white\1 | Servers that are whitelisted |
\gametype\[tag,…] | Servers with all of the given tag(s) in sv_tags |
\gamedata\[tag,…] | Servers with all of the given tag(s) in their ‘hidden’ tags (L4D2) |
\gamedataor\[tag,…] | Servers with any of the given tag(s) in their ‘hidden’ tags (L4D2) |
\name_match\[hostname] | Servers with their hostname matching [hostname] (can use * as a wildcard) |
\version_match\[version] | Servers running version [version] (can use * as a wildcard) |
\collapse_addr_hash\1 | Return only one server for each unique IP address matched |
\gameaddr\[ip] | Return only servers on the specified IP address (port supported and optional) |
Examples¶
Query HL Master
>>> for server_addr in gs.query_master(r'\appid\730\white\1', max_servers=3):
... print(server_addr)
...
('146.66.152.197', 27073)
('146.66.153.124', 27057)
('146.66.152.56', 27053)
Team Fortress 2 (Source)
>>> from steam import game_servers as gs
>>> server_addr = next(gs.query_master(r'\appid\40\empty\1\secure\1')) # single TF2 Server
>>> gs.a2s_ping(server_addr)
68.60899925231934
>>> gs.a2s_info(server_addr)
{'_ping': 74.61714744567871,
'_type': 'source',
'app_id': 40,
'bots': 0,
'environment': 'l',
'folder': u'dmc',
'game': u'DMC\t\t\t\t\t\t\t\t1',
'map': u'crossfire',
'max_players': 32,
'name': u'\t\t\u2605\t\t All Guns party \u2605\t \tCrossfire 24/7\t\t',
'players': 21,
'protocol': 48,
'server_type': 'd',
'vac': 1,
'visibility': 0}
>>> gs.a2s_players(server_addr)
[{'duration': 192.3097381591797, 'index': 0, 'name': '(2)Player', 'score': 4},
{'duration': 131.6618194580078, 'index': 1, 'name': 'BOLT', 'score': 2},
{'duration': 16.548809051513672, 'index': 2, 'name': 'Alpha', 'score': 0},
{'duration': 1083.1539306640625, 'index': 3, 'name': 'Player', 'score': 29},
{'duration': 446.7716064453125, 'index': 4, 'name': '(1)Player', 'score': 11},
{'duration': 790.9588012695312, 'index': 5, 'name': 'ИВАНГАЙ', 'score': 11}]
>>> gs.a2s_rules(server_addr)
{'amx_client_languages': 1,
'amx_nextmap': 'crossfire',
'amx_timeleft': '00:00',
'amxmodx_version': '1.8.2',
....
Ricohet (GoldSrc)
>>> from steam import game_servers as gs
>>> server_addr = next(gs.query_master(r'\appid\60')) # get a single ip from hl2 master
>>> gs.a2s_info(server_addr, force_goldsrc=True) # only accept goldsrc response
{'_ping': 26.59320831298828,
'_type': 'goldsrc',
'address': '127.0.0.1:27050',
'bots': 0,
'ddl': 0,
'download_link': '',
'environment': 'w',
'folder': 'ricochet',
'game': 'Ricochet',
'link': '',
'map': 'rc_deathmatch2',
'max_players': 32,
'mod': 1,
'name': 'Anitalink.com Ricochet',
'players': 1,
'protocol': 47,
'server_type': 'd',
'size': 0,
'type': 1,
'vac': 1,
'version': 1,
'visibility': 0}
API¶
-
steam.game_servers.
query_master
(filter_text='\\nappid\\500', max_servers=20, region=<MSRegion.World: 255>, master=('hl2master.steampowered.com', 27011), timeout=2)¶ Generator that returns (IP,port) pairs of servers
Warning
Valve’s master servers seem to be heavily rate limited. Queries that return a large numbers IPs will timeout before returning everything. There is no way to resume the query. Use
SteamClient
to access game servers in a reliable way.Note
When specifying
filter_text
use raw strings otherwise python won’t treat backslashes as literal characters (e.g.query(r'\appid\730\white\1')
)Parameters: Raises: Returns: a generator yielding (ip, port) pairs
Return type: generator
-
steam.game_servers.
a2s_info
(server_addr, timeout=2, force_goldsrc=False, challenge=0)¶ Get information from a server
Note
All
GoldSrc
games have been updated to reply inSource
format.GoldSrc
format is essentially DEPRECATED. By default the function will prefer to returnSource
format, and will automatically fallback toGoldSrc
if available.Parameters: Raises: Returns: a dict with information or None on timeout
Return type:
-
steam.game_servers.
a2s_players
(server_addr, timeout=2, challenge=0)¶ Get list of players and their info
Parameters: Raises: Returns: a list of players
Return type:
-
steam.game_servers.
a2s_rules
(server_addr, timeout=2, challenge=0, binary=False)¶ Get rules from server
Parameters: Raises: Returns: a list of rules
Return type:
-
steam.game_servers.
a2s_ping
(server_addr, timeout=2)¶ Ping a server
Warning
This method for pinging is considered deprecated and may not work on certian servers. Use
a2s_info()
instead.Parameters: Raises: Returns: ping response in milliseconds or None for timeout
Return type:
globalid¶
-
class
steam.globalid.
GlobalID
(*args, **kwargs)¶ Bases:
int
Represents a globally unique identifier within the Steam network. Guaranteed to be unique across all racks and servers for a given Steam universe.
-
static
new
(sequence_count, start_time, process_id, box_id)¶ Make new GlobalID
Parameters: Returns: Global ID integer
Return type:
-
start_time
¶ Returns: start time of the server that generated this GID Return type: datetime
-
static
guard¶
This submodule contains various functionality related to Steam Guard.
SteamAuthenticator
provides methods for genereating codes
and enabling 2FA on a Steam account. Operations managing the authenticator
on an account require an instance of either MobileWebAuth
or
SteamClient
. The instance needs to be logged in.
Adding an authenticator
wa = MobileWebAuth('steamuser')
wa.cli_login()
sa = SteamAuthenticator(backend=wa)
sa.add() # SMS code will be send to the account's phone number
sa.secrets # dict with authenticator secrets (SAVE THEM!!)
# save the secrets, for example to a file
json.dump(sa.secrets, open('./mysecrets.json', 'w'))
# HINT: You can stop here and add authenticator on your phone.
# The secrets will be the same, and you will be able to
# both use your phone and SteamAuthenticator.
sa.finalize('SMS CODE') # activate the authenticator
sa.get_code() # generate 2FA code for login
sa.remove() # removes the authenticator from the account
Warning
Before you finalize the authenticator, make sure to save your secrets. Otherwise you will lose access to the account.
Once authenticator is enabled all you need is the secrets to generate codes.
secrets = json.load(open('./mysecrets.json'))
sa = SteamAuthenticator(secrets)
sa.get_code()
You can obtain the authenticator secrets from an Android device using
extract_secrets_from_android_rooted()
. See the function docstring for
details on what is required for it to work.
Format of secrets.json
file:
{
"account_name": "<username>", # account username
"identity_secret": "<base64 encoded>", # unknown
"revocation_code": "R51234", # revocation code
"secret_1": "<base54 encoded>", # unknown
"serial_number": "1111222333344445555", # serial number
"server_time": "1600000000", # creation timestamp
"shared_secret": "<base65 encoded>", # secret used for code generation
"status": 1, # status, 1 = token active
"token_gid": "a1a1a1a1a1a1a1a1", # token gid
"uri": "otpauth://totp/Steam:<username>?secret=<base32 encoded shared seceret>&issuer=Steam"
}
-
class
steam.guard.
SteamAuthenticator
(secrets=None, backend=None)¶ Add/Remove authenticator from an account. Generate 2FA and confirmation codes.
Parameters: - secret (dict) – a dict of authenticator secrets
- backend (
MobileWebAuth
,SteamClient
) – logged on session for steam user
-
steam_time_offset
= None¶ offset from steam server time
-
align_time_every
= 0¶ how often to align time with Steam (
0
never, otherwise interval in seconds)
-
backend
= None¶ instance of
MobileWebAuth
orSteamClient
-
get_code
(timestamp=None)¶ Parameters: timestamp (int) – time to use for code generation Returns: two factor code Return type: str
-
get_confirmation_key
(tag='', timestamp=None)¶ Parameters: - tag (str) – see
generate_confirmation_key()
for this value - timestamp (int) – time to use for code generation
Returns: trade confirmation key
Return type: - tag (str) – see
-
add
()¶ Add authenticator to an account. The account’s phone number will receive a SMS code required for
finalize()
.Raises: SteamAuthenticatorError
-
finalize
(activation_code)¶ Finalize authenticator with received SMS code
Parameters: activation_code (str) – SMS code Raises: SteamAuthenticatorError
-
remove
(revocation_code=None)¶ Remove authenticator
Parameters: revocation_code (str) – revocation code for account (e.g. R12345) Note
After removing authenticator Steam Guard will be set to email codes
Warning
Doesn’t work via
SteamClient
. Disabled by ValveRaises: SteamAuthenticatorError
-
status
()¶ Fetch authenticator status for the account
Raises: SteamAuthenticatorError
Returns: dict with status parameters Return type: dict
-
create_emergency_codes
(code=None)¶ Generate emergency codes
Parameters: code (str) – SMS code Raises: SteamAuthenticatorError
Returns: list of codes Return type: list Note
A confirmation code is required to generate emergency codes and this method needs to be called twice as shown below.
sa.create_emergency_codes() # request a SMS code sa.create_emergency_codes(code='12345') # creates emergency codes
-
destroy_emergency_codes
()¶ Destroy all emergency codes
Raises: SteamAuthenticatorError
-
add_phone_number
(phone_number)¶ Add phone number to account
Steps:
- Call
add_phone_number()
then checkemail_confirmation
key in the response- On
True
, user needs to click link in email, then step 2 - On
False
, SMS code is sent, go to step 3
- On
- Confirm email via
confirm_email()
, SMS code is sent - Finalize phone number with SMS code
confirm_phone_number(sms_code)()
Parameters: phone_number ( str
) – phone number with country codeReturns: see example below Return type: dict
{'success': True, 'email_confirmation': True, 'error_text': '', 'fatal': False}
- Call
-
confirm_email
()¶ Confirm email confirmation. See
add_phone_number()
Note
If
email_confirmation
isTrue
, then user hasn’t clicked the link yet.Returns: see example below Return type: dict
{'success': True, 'email_confirmation': True, 'error_text': '', 'fatal': False}
-
confirm_phone_number
(sms_code)¶ Confirm phone number with the recieved SMS code. See
add_phone_number()
Parameters: sms_code ( str
) – sms codeReturns: see example below Return type: dict
{'success': True, 'error_text': '', 'fatal': False}
-
exception
steam.guard.
SteamAuthenticatorError
¶
-
steam.guard.
generate_twofactor_code
(shared_secret)¶ Generate Steam 2FA code for login with current time
Parameters: shared_secret (bytes) – authenticator shared shared_secret Returns: steam two factor code Return type: str
-
steam.guard.
generate_twofactor_code_for_time
(shared_secret, timestamp)¶ Generate Steam 2FA code for timestamp
Parameters: Returns: steam two factor code
Return type:
-
steam.guard.
generate_confirmation_key
(identity_secret, tag, timestamp)¶ Generate confirmation key for trades. Can only be used once.
Parameters: Returns: confirmation key
Return type: Tag choices:
conf
to load the confirmations pagedetails
to load details about a tradeallow
to confirm a tradecancel
to cancel a trade
-
steam.guard.
get_time_offset
()¶ Get time offset from steam server time via WebAPI
Returns: time offset ( None
when Steam WebAPI fails to respond)Return type: int
,None
-
steam.guard.
generate_device_id
(steamid)¶ Generate Android device id
Parameters: steamid ( SteamID
,int
) – Steam IDReturns: android device id Return type: str
-
steam.guard.
extract_secrets_from_android_rooted
(adb_path='adb')¶ Extract Steam Authenticator secrets from a rooted Android device
Prerequisite for this to work:
- rooted android device
- adb binary
- device in debug mode, connected and paired
Note
If you know how to make this work, without requiring the device to be rooted, please open a issue on github. Thanks
Parameters: adb_path (str) – path to adb binary Raises: When there is any problem Returns: all secrets from the device, steamid as key Return type: dict
monkey¶
Helper moduel for calling gevent
monkey patch functions.
This only need to if want to make stdlib gevent cooperative.
The patches need to be applied before any other module imports.
See gevent.monkey
for details
import steam.monkey
steam.monkey.patch_minimal()
import requests
from steam.client import SteamClient, EMsg
-
steam.monkey.
patch_minimal
()¶ This method needs to be called before any other imports
It calls
gevent.monkey.patch_socket()
andgevent.monkey.patch_ssl()
steamid¶
-
class
steam.steamid.
SteamID
(*args, **kwargs)¶ Bases:
int
Object for converting steamID to its’ various representations
SteamID() # invalid steamid SteamID(12345) # accountid SteamID('12345') SteamID(id=12345, type='Invalid', universe='Invalid', instance=0) SteamID(103582791429521412) # steam64 SteamID('103582791429521412') SteamID('STEAM_1:0:2') # steam2 SteamID('[g:1:4]') # steam3
-
class
EType
¶ Bases:
steam.enums.base.SteamIntEnum
Doc: https://partner.steamgames.com/doc/api/steam_api#EAccountType
-
AnonGameServer
= 4¶
-
AnonUser
= 10¶
-
Chat
= 8¶
-
Clan
= 7¶
-
ConsoleUser
= 9¶
-
ContentServer
= 6¶
-
GameServer
= 3¶
-
Individual
= 1¶
-
Invalid
= 0¶
-
Max
= 11¶
-
Multiseat
= 2¶
-
Pending
= 5¶
-
-
class
EUniverse
¶ Bases:
steam.enums.base.SteamIntEnum
Doc: https://partner.steamgames.com/doc/api/steam_api#EUniverse
-
Beta
= 2¶
-
Dev
= 4¶
-
Internal
= 3¶
-
Invalid
= 0¶
-
Max
= 6¶
-
Public
= 1¶
-
-
class
EInstanceFlag
¶ Bases:
steam.enums.base.SteamIntEnum
An enumeration.
-
Clan
= 524288¶
-
Lobby
= 262144¶
-
MMSLobby
= 131072¶
-
-
type
¶ Return type: steam.enum.EType
-
universe
¶ Return type: steam.enum.EUniverse
-
as_steam2
¶ Returns: steam2 format (e.g STEAM_1:0:1234
)Return type: str
Note
STEAM_X:Y:Z
. The value ofX
should represent the universe, or1
forPublic
. However, there was a bug in GoldSrc and Orange Box games andX
was0
. If you need that format useSteamID.as_steam2_zero
-
as_steam2_zero
¶ For GoldSrc and Orange Box games. See
SteamID.as_steam2
Returns: steam2 format (e.g STEAM_0:0:1234
)Return type: str
-
community_url
¶ Returns: e.g https://steamcommunity.com/profiles/123456789 Return type: str
-
static
from_csgo_friend_code
(code, universe=<EUniverse.Public: 1>)¶ Takes CS:GO friend code and returns SteamID
Parameters: Returns: SteamID instance
Return type: SteamID
orNone
-
static
from_invite_code
(code, universe=<EUniverse.Public: 1>)¶ Invites urls can be generated at https://steamcommunity.com/my/friends/add
Parameters: Returns: (accountid, type, universe, instance)
Return type: tuple
orNone
-
static
from_url
(url, http_timeout=30)¶ Takes Steam community url and returns a SteamID instance or
None
See
steam64_from_url()
for detailsParameters: Returns: SteamID instance
Return type: steam.SteamID
orNone
-
class
-
steam.steamid.
steam2_to_tuple
(value)¶ Parameters: value ( str
) – steam2 (e.g.STEAM_1:0:1234
)Returns: (accountid, type, universe, instance) Return type: tuple
orNone
Note
The universe will be always set to
1
. SeeSteamID.as_steam2
-
steam.steamid.
steam3_to_tuple
(value)¶ Parameters: value ( str
) – steam3 (e.g.[U:1:1234]
)Returns: (accountid, type, universe, instance) Return type: tuple
orNone
-
steam.steamid.
steam64_from_url
(url, http_timeout=30)¶ Takes a Steam Community url and returns steam64 or None
Warning
Each call makes a http request to
steamcommunity.com
Note
For a reliable resolving of vanity urls use
ISteamUser.ResolveVanityURL
web apiParameters: Returns: steam64, or
None
ifsteamcommunity.com
is downReturn type: int
orNone
Example URLs:
https://steamcommunity.com/gid/[g:1:4] https://steamcommunity.com/gid/103582791429521412 https://steamcommunity.com/groups/Valve https://steamcommunity.com/profiles/[U:1:12] https://steamcommunity.com/profiles/76561197960265740 https://steamcommunity.com/id/johnc https://steamcommunity.com/user/cv-dgb/
-
steam.steamid.
from_url
(url, http_timeout=30)¶ Takes Steam community url and returns a SteamID instance or
None
See
steam64_from_url()
for detailsParameters: Returns: SteamID instance
Return type: steam.SteamID
orNone
webapi¶
WebAPI provides a thin wrapper over Steam’s Web API
It is very friendly to exploration and prototyping when using ipython
, notebooks
or similar.
The key
will determine what WebAPI interfaces and methods are available.
Note
Some endpoints don’t require a key
Currently the WebAPI can be accessed via one of two API hosts. See APIHost
.
Example code:
>>> api = WebAPI(key)
>>> api.call('ISteamUser.ResolveVanityURL', vanityurl="valve", url_type=2)
>>> api.ISteamUser.ResolveVanityURL(vanityurl="valve", url_type=2)
>>> api.ISteamUser.ResolveVanityURL_v1(vanityurl="valve", url_type=2)
{'response': {'steamid': '103582791429521412', 'success': 1}}
All globals params (key
, https
, format
, raw
) can be specified on per call basis.
>>> print a.ISteamUser.ResolveVanityURL(format='vdf', raw=True, vanityurl="valve", url_type=2)
"response"
{
"steamid" "103582791429521412"
"success" "1"
}
-
class
steam.webapi.
APIHost
¶ Enum of currently available API hosts.
-
Public
= 'api.steampowered.com'¶ available over HTTP (port 80) and HTTPS (port 443)
-
Partner
= 'partner.steam-api.com'¶ available over HTTPS (port 443) only
Note
Key is required for every request. If not supplied you will get HTTP 403.
-
-
class
steam.webapi.
WebAPI
(key, format='json', raw=False, https=True, http_timeout=30, apihost='api.steampowered.com', auto_load_interfaces=True)¶ Steam WebAPI wrapper
Note
Interfaces and methods are populated automatically from Steam WebAPI.
Parameters: - key (
str
) – api key from https://steamcommunity.com/dev/apikey - format (
str
) – response format, either (json
,vdf
, orxml
) only whenraw=False
- raw (class:bool) – return raw response
- https (
bool
) – usehttps
- http_timeout (
int
) – HTTP timeout in seconds - apihost (
str
) – api hostname, seeAPIHost
- auto_load_interfaces (
bool
) – load interfaces from the Steam WebAPI
These can be specified per method call for one off calls
-
key
= None¶ api key
-
format
= 'json'¶ format (
json
,vdf
, orxml
)
-
raw
= False¶ return raw reponse or parse
-
https
= True¶ use https or not
-
http_timeout
= 30¶ HTTP timeout in seconds
-
apihost
= 'api.steampowered.com'¶ ..versionadded:: 0.8.3 apihost hostname
-
interfaces
= []¶ list of all interfaces
-
session
= None¶ requests.Session
frommake_requests_session()
-
fetch_interfaces
()¶ Returns a dict with the response from
GetSupportedAPIList
Returns: dict
of all interfaces and methodsThe returned value can passed to
load_interfaces()
-
load_interfaces
(interfaces_dict)¶ Populates the namespace under the instance
- key (
-
class
steam.webapi.
WebAPIInterface
(interface_dict, parent)¶
-
class
steam.webapi.
WebAPIMethod
(method_dict, parent)¶
-
steam.webapi.
webapi_request
(url, method='GET', caller=None, session=None, params=None)¶ Low level function for calling Steam’s WebAPI
Changed in version 0.8.3.
Parameters: - url (
str
) – request url (e.g.https://api.steampowered.com/A/B/v001/
) - method (
str
) – HTTP method (GET or POST) - caller – caller reference, caller.last_response is set to the last response
- params (
dict
) – dict of WebAPI and endpoint specific params - session (
requests.Session
) – an instance requests session, or one is created per call
Returns: response based on paramers
Return type: - url (
-
steam.webapi.
get
(interface, method, version=1, apihost='api.steampowered.com', https=True, caller=None, session=None, params=None)¶ Send GET request to an API endpoint
New in version 0.8.3.
Parameters: Returns: endpoint response
Return type:
-
steam.webapi.
post
(interface, method, version=1, apihost='api.steampowered.com', https=True, caller=None, session=None, params=None)¶ Send POST request to an API endpoint
New in version 0.8.3.
Parameters: Returns: endpoint response
Return type:
webauth¶
This module simplifies the process of obtaining an authenticated session for steam websites.
After authentication is completed, a requests.Session
is created containing the auth cookies.
The session can be used to access steamcommunity.com
, store.steampowered.com
, and help.steampowered.com
.
Warning
A web session may expire randomly, or when you login from different IP address. Some pages will return status code 401 when that happens. Keep in mind if you are trying to write robust code.
Note
If you are using SteamClient
take a look at SteamClient.get_web_session()
Note
If you need to authenticate as a mobile device for things like trading confirmations
use MobileWebAuth
instead. The login process is identical, and in addition
you will get oauth_token
.
Example usage:
import steam.webauth as wa
user = wa.WebAuth('username')
# At a console, cli_login can be used to easily perform all login steps
session = user.cli_login('password')
session.get('https://store.steampowered.com/account/history')
# Or the login steps be implemented for other situation like so
try:
user.login('password')
except (wa.CaptchaRequired, wa.LoginIncorrect) as exp:
if isinstance(exp, LoginIncorrect):
# ask for new password
else:
password = self.password
if isinstance(exp, wa.CaptchaRequired):
print user.captcha_url
# ask a human to solve captcha
else:
captcha = None
user.login(password=password, captcha=captcha)
except wa.EmailCodeRequired:
user.login(email_code='ZXC123')
except wa.TwoFactorCodeRequired:
user.login(twofactor_code='ZXC123')
user.session.get('https://store.steampowered.com/account/history/')
-
class
steam.webauth.
WebAuth
(username, password='')¶ Bases:
object
-
key
= None¶
-
logged_on
= False¶ whether authentication has been completed successfully
-
captcha_gid
= -1¶
-
captcha_code
= ''¶
-
session
= None¶ requests.Session
(with auth cookies after auth is completed)
-
captcha_url
¶ If a captch is required this property will return url to the image, or
None
-
get_rsa_key
(username)¶ Get rsa key for a given username
Parameters: username ( str
) – usernameReturns: json response Return type: dict
Raises: HTTPError – any problem with http request, timeouts, 5xx, 4xx etc
-
login
(password='', captcha='', email_code='', twofactor_code='', language='english')¶ Attempts web login and returns on a session with cookies set
Parameters: Returns: a session on success and
None
otherwiseReturn type: requests.Session
,None
Raises: - HTTPError – any problem with http request, timeouts, 5xx, 4xx etc
- LoginIncorrect – wrong username or password
- CaptchaRequired – when captcha is needed
- CaptchaRequiredLoginIncorrect – when captcha is needed and login is incorrect
- EmailCodeRequired – when email is needed
- TwoFactorCodeRequired – when 2FA is needed
-
cli_login
(password='', captcha='', email_code='', twofactor_code='', language='english')¶ Generates CLI prompts to perform the entire login process
Parameters: Returns: a session on success and
None
otherwiseReturn type: requests.Session
,None
In [3]: user.cli_login() Enter password for 'steamuser': Solve CAPTCHA at https://steamcommunity.com/login/rendercaptcha/?gid=1111111111111111111 CAPTCHA code: 123456 Invalid password for 'steamuser'. Enter password: Solve CAPTCHA at https://steamcommunity.com/login/rendercaptcha/?gid=2222222222222222222 CAPTCHA code: abcdef Enter 2FA code: AB123 Out[3]: <requests.sessions.Session at 0x6fffe56bef0>
-
-
class
steam.webauth.
MobileWebAuth
(username, password='')¶ Bases:
steam.webauth.WebAuth
Identical to
WebAuth
, except it authenticates as a mobile device.-
oauth_token
= None¶ holds oauth_token after successful login
-
oauth_login
(oauth_token='', steam_id='', language='english')¶ Attempts a mobile authenticator login using an oauth token, which can be obtained from a previously logged-in MobileWebAuth
Parameters: Returns: a session on success and
None
otherwiseReturn type: requests.Session
,None
Raises: - HTTPError – any problem with http request, timeouts, 5xx, 4xx etc
- LoginIncorrect – Invalid token or SteamID
-
-
exception
steam.webauth.
HTTPError
¶
-
exception
steam.webauth.
LoginIncorrect
¶
-
exception
steam.webauth.
CaptchaRequired
¶
-
exception
steam.webauth.
CaptchaRequiredLoginIncorrect
¶ Bases:
steam.webauth.CaptchaRequired
,steam.webauth.LoginIncorrect
-
exception
steam.webauth.
EmailCodeRequired
¶
-
exception
steam.webauth.
TwoFactorCodeRequired
¶
-
exception
steam.webauth.
TooManyLoginFailures
¶
utils¶
Utility package with various useful functions
-
steam.utils.
ip4_from_int
(ip)¶ Convert
int
to IPv4 stringParameters: ip (int) – int representing an IPv4 Returns: IP in dot-decimal notation Return type: str
-
steam.utils.
ip4_to_int
(ip)¶ Convert IPv4 string to
int
Parameters: ip (str) – IPv4 in dot-decimal notation Return type: int
-
steam.utils.
ip_to_int
(ip)¶ Convert IPv4 string to
int
Parameters: ip (str) – IPv4 in dot-decimal notation Return type: int
-
steam.utils.
ip_from_int
(ip)¶ Convert
int
to IPv4 stringParameters: ip (int) – int representing an IPv4 Returns: IP in dot-decimal notation Return type: str
-
steam.utils.
ip6_from_bytes
(ip)¶ Convert
bytes
to IPv6 stringParameters: ip (bytes) – IPv6 in dot-decimal notation Return type: str
-
steam.utils.
ip6_to_bytes
(ip)¶ Convert IPv6 string to
bytes
Parameters: ip (str) – IPv6 in dot-decimal notation Return type: bytes
-
steam.utils.
chunks
(arr, size)¶ Splits a list into chunks
Parameters: Returns: generator object
Return type: generator
-
class
steam.utils.
WeakRefKeyDict
¶ Bases:
object
Pretends to be a dictionary. Use any object (even unhashable) as key and store a value. Once the object is garbage collected, the entry is destroyed automatically.
utils.appache¶
Appache file parsing examples:
>>> from steam.utils.appcache import parse_appinfo, parse_packageinfo
>>> header, apps = parse_appinfo(open('/d/Steam/appcache/appinfo.vdf', 'rb'))
>>> header
{'magic': b"(DV\x07", 'universe': 1}
>>> next(apps)
{'appid': 5,
'size': 79,
'info_state': 1,
'last_updated': 1484735377,
'access_token': 0,
'sha1': b'\x87\xfaCg\x85\x80\r\xb4\x90Im\xdc}\xb4\x81\xeeQ\x8b\x825',
'change_number': 4603827,
'data_sha1': b'\x87\xfaCg\x85\x80\r\xb4\x90Im\xdc}\xb4\x81\xeeQ\x8b\x825',
'data': {'appinfo': {'appid': 5, 'public_only': 1}}}
>>> header, pkgs = parse_packageinfo(open('/d/Steam/appcache/packageinfo.vdf', 'rb'))
>>> header
{'magic': b"'UV\x06", 'universe': 1}
>>> next(pkgs)
{'packageid': 7,
'sha1': b's\x8b\xf7n\t\xe5 k#\xb6-\x82\xd2 \x14k@\xfeDQ',
'change_number': 7469765,
'data': {'7': {'packageid': 7,
'billingtype': 1,
'licensetype': 1,
'status': 0,
'extended': {'requirespreapproval': 'WithRedFlag'},
'appids': {'0': 10, '1': 80, '2': 100, '3': 254430},
'depotids': {'0': 0, '1': 95, '2': 101, '3': 102, '4': 103, '5': 254431},
'appitems': {}}}}
utils.binary¶
-
class
steam.utils.binary.
StructReader
(data)¶ Bases:
object
Simplifies parsing of struct data from bytes
Parameters: data ( bytes
) – data bytes-
rlen
()¶ Number of remaining bytes that can be read
Returns: number of remaining bytes Return type: int
-
read
(n=1)¶ Return n bytes
Parameters: n ( int
) – number of bytes to returnReturns: bytes Return type: bytes
-
read_cstring
(terminator=b'\x00')¶ Reads a single null termianted string
Returns: string without bytes Return type: bytes
-
unpack
(format_text)¶ Unpack bytes using struct modules format
Parameters: format_text ( str
) – struct’s module formatReturn data: result from struct.unpack_from()
Return type: tuple
-
utils.proto¶
-
steam.utils.proto.
is_proto
(emsg)¶ Parameters: emsg (int) – emsg number Returns: True or False Return type: bool
-
steam.utils.proto.
set_proto_bit
(emsg)¶ Parameters: emsg (int) – emsg number Returns: emsg with proto bit set Return type: int
-
steam.utils.proto.
clear_proto_bit
(emsg)¶ Parameters: emsg (int) – emsg number Returns: emsg with proto bit removed Return type: int
-
steam.utils.proto.
proto_to_dict
(message)¶ Converts protobuf message instance to dict
Parameters: message – protobuf message instance Returns: parameters and their values Return type: dict Raises: TypeError
ifmessage
is not a proto message
utils.throttle¶
-
class
steam.utils.throttle.
ConstantRateLimit
(times, seconds, exit_wait=False, sleep_func=<built-in function sleep>)¶ Bases:
object
Context manager for enforcing constant rate on code inside the block .
rate = seconds / times
Parameters: Example:
with RateLimiter(1, 5) as r: # code taking 1s r.wait() # blocks for 4s # code taking 7s r.wait() # doesn't block # code taking 1s r.wait() # blocks for 4s
-
wait
()¶ Blocks until the rate is met
-