SteamID
A SteamID is a unique identifier used to identify a Steam account. It is also used to refer to a user's Steam Community profile page.
Format
Steam IDs consist of four components:
- Universe - what Steam system this Steam ID comes from. In almost all cases, this will be Public (see below).
- Account Type - what type of account this is (see below).
- Instance
- Account ID
As Represented Textually
Legacy Format
Steam IDs follow a fairly simple format when represented textually: "STEAM_X:Y:Z", where X, Y and Z are integers. In select cases "STEAM_ID_PENDING" or "UNKNOWN" are used in the Source Engine (see the section 'Types of Steam Accounts' for more details).
- X represents the "Universe" the steam account belongs to. If 'X' is 0, then this is Universe 1 (Public).
- Y is the lowest bit of the Account ID. Thus, Y is either 0 or 1.
- Z is the highest 31 bits of the Account ID.
Modern Format
Steam IDs in the Steam client follow a newer format which takes all of the parameters of the identifier into account, as opposed to the legacy format which discards the instance ID.
The textual representation follows the pattern '[C:U:A]' or '[C:U:A:I]' depending on the type of Steam ID.
- C is a single character that represents the Account Type, or a combination of the Account Type and Instance ID. See 'Types of Steam Accounts' below).
- U is the Universe.
- A is the Account ID.
- I is the Instance ID. If not present, the default instance ID for that 'C' value is used.
As Represented in Computer Programs
When represented internally in computer programs the components (see above) are all packed into a 64-bit data structure.
- The low 32 bits comprise the Account ID.
- The next 20 bits comprise the Instance of the account. For Individual accounts, this is usually 1.
- The next 4 bits comprise the Account Type.
- The next 8 bits comprise the 'Universe' the Steam account belongs to.
Universes Available for Steam Accounts
There are 4 universes of Steam accounts.
Universe ID | Type |
---|---|
0 | Invalid |
1 | Public |
2 | Beta |
3 | Internal |
4 | Dev |
Types of Steam Accounts
There are ten known account types for a Steam account, of which only 3 can be created today.
Account Type ID | Character | Name | Can Be Used? | URL Path (default / custom) | Default Instance |
---|---|---|---|---|---|
0 | I | Invalid | No | ||
1 | U | Individual | Yes | profiles / id | 1 |
2 | M | Multiseat | Yes | ||
3 | G | GameServer | Yes | 1 | |
4 | A | AnonGameServer | Yes | ||
5 | P | Pending | No | ||
6 | C | ContentServer | Unknown | ||
7 | g | Clan | Yes | gid / groups | 0 |
8 | T | Chat | Yes | ||
8 | c | Chat (Clan) | Yes | 0x00080000 | |
8 | L | Chat (Lobby) | Yes | 0x00040000 | |
9 | P2P SuperSeeder | No | |||
10 | a | AnonUser | Yes |
In the Source Engine, users of an 'Individual' account are temporarily referred to as having a 'Pending' account which have a textual representation of "STEAM_ID_PENDING" until their account credentials are verified with Steam's authentication servers, a process usually complete by the time a server is fully connected to. Accounts of the type 'Invalid' have a textual representation of "UNKNOWN" and are used for bots and accounts which do not belong to another class.
Steam ID as a Steam Community ID
A Steam ID can be converted to Steam Community ID for use on the Steam Community website.
Let X, Y and Z constants be defined by the SteamID: STEAM_X:Y:Z.
There are 2 methods of conversion:
- Modern Textual Representation
Given the components of a Steam ID, a Steam ID can be converted to text as follows:
[character:universe:account id]
Worked Example:
- Universe: Public (1)
- Account Type: Clan (g)
- Instance: 0
- Account ID: 4
- Textual Representation: [g:1:4]
A URL for the entity represented by this ID can be constructed as follows: http or https://steamcommunity.com/path/textual representation The account type character can be found in the table above. The path can be found in the same place before the slash symbol. Example: http://steamcommunity.com/gid/[g:1:4]
- As a 64-bit integer
Given the components of a Steam ID, a Steam ID can be converted to it's 64-bit integer form as follows:
((Universe << 56) | (Account Type << 52) | (Instance << 32) | Account ID)
Worked Example:
- Universe: Public (1)
- Account Type: Clan (7)
- Instance: 0
- Account ID: 4
- 64-bit integer value: 103582791429521412
A URL for the entity represented by this ID can be constructed as follows: http or https://steamcommunity.com/path/64-bit identifier The path can be found in the table above, before the slash. Example: http://steamcommunity.com/gid/103582791429521412
Steam Community ID as a Steam ID
Using the reverse methods, a Steam ID can be converted to it's other representations. The value of Z can be retrieved by checking parity of the number W: if it's even, Y is 0, if it's odd, Y is 1 (shortly, Y is the remainder of division of W by 2, or the result of binary AND operation with number 1).
The SteamID64 (64-bit SteamID) of Steam Community members can be found in several places:
- Players:
- In ISteamUser/GetPlayerSummaries and other Steam Web APIs.
- In the Steamworks SDK.
- In the "Add to your friends list" link (not recommended to be used in applications that login with username and password).
- Groups: in the "Enter chat room" link.
SteamID Uses
Aside from the obvious elements of identifying (uniquely) an account, its type and the domain (universe) it belongs to, Steam IDs can be used to approximately determine when the user associated with the SteamID first created that Steam account. Lower values of the Account ID indicate an account made further in the past to one with a higher value. For example, a SteamID with the Account ID 1234 would mean that the user signed up for their Steam account a long time before a user with an Account ID such as 12341111.
Source Engine Confusion
In the Source Engine, the value of the universe in the legacy textual representation is 0 is GoldSrc and some Source Engine games (e.g. Counter-Strike: Source), but is 1 in newer games (e.g. Left 4 Dead, Left 4 Dead 2, Alien Swarm). In all cases, this refers to the Public Universe.
External links
- SteamIdFinder.ru - Online web service to find Steam ID by inputting anything you know: steamid64, steamid32, steamid, profile url...
- SteamID.co.uk - Tools to look up players, TF2 items, games ,game time, friends, groups , Achievements , estimated account worth, how long you’ve been friends for and much more.
- Legit-Proof.com - Search engine to look up players and teams from all steam_id based games and more.
- VacBans.com - Tool which uses a Steam Community URL to find a SteamID, the VAC status of a SteamID, and the approximate age of a private SteamID.
- getSteamID - A standalone tool for Windows to look up all SteamIDs found on a local computer which were used in the past by different users.
- SteamID.com - Search engine to lookup competitive Counter-Strike players by their SteamID.
- VACBanned.com - Search engine to lookup the VAC status of a SteamID, and add the banned SteamIDs to a database.
- steamuniverse.h from the Steamworks SDK.
- CSteamID from the Steamworks SDK.