You might have seen news that there are over 1 billion registered Steam accounts. If you go solely by the account id, then sure you can assume that. However, the reality is that not all account ids are actually registered.
A prime example of this is the range of account ids spanning from ~500 million to ~830 million, where there's only around 2,5 million accounts, from the 330 million possible. You can view the full data of accounts grouped by 10 million here.
What are the Steam ids anyway?
A full 64-bit SteamID looks like this: 76561197960287930
and it contains the following bits of information:
- Account id (32 bits)
- Universe (public, dev, beta, etc.)
- Type (individual, group, game server, chat room, etc)
- Instance
When you see a steamid represented like this: [U:1:22202]
it is simply the same 64-bit steamid being represented in a different way:
U
indicates the individual account type.1
is the public universe.22202
is the account id itself.
For all intents and purposes when dealing with user profiles, you can ignore all the bits except for the 32-bit account id which is incremental and starts from 1. If you've played Dota 2, you can see them being used there instead of the full steamid.
If you're interested in seeing how other types are represented, or how to deal with SteamIDs in general, take a look at our PHP library.
Scanning
Using the ISteamUser/GetPlayerSummaries API, we can check up to 100 profiles at once. Currently, latest registered account id is around 1,062,000,000, if we divide that by 100, we get a much more manageable number at 11 million. This greatly reduces the amount of API requests we have to do.
A few observations from scanning: deleted accounts return an empty {}
object in the response, instead of being omitted entirely, so it is possible to detect whether a particular steamid was deleted. Secondly, lastlogoff
field indicating when you last logged off from Steam is visible even if your profile privacy is set to private.
Stats
With that out of the way, let's take a look at some of the numbers we could get from scanning all the currently created accounts.
- There are currently a little over 667 million registered accounts.
- From 2020-01-01 to 2020-01-24, there were 86 million accounts that were active. 107 million from 2019-12-01.
- 2018-12 to 2019-04 saw the biggest increase in account registrations. With 2019-02 peaking at 33 million accounts created. You can view raw data of accounts created per month here.
- 11,1 million accounts that have their privacy set to private.
- 10,7 million accounts that have it set to friends-only.
- That's only 3,2% of accounts that have changed their privacy setting.
Keep in mind we're talking about full profile privacy setting, and not the games list privacy setting which was changed to be private by default in 2018.
There are 3 accounts that have odd creation dates:
[U:1:75927348]
has a creation date of 2003-09-02 22:03:00 which is 10 days before the first actual Steam account. It was actually registed on 2011-01-01 according to the owner.[U:1:31186727]
has a creation date of 2027-09-01 00:34:35. Last log off is 2007-08-17 13:20:09.[U:1:64438391]
has a creation date of 2026-07-07 13:32:48. Last log off is 2010-05-14 09:20:30.
EDIT 2020-02-05: Looks like they fixed these 3 accounts and they have correct creation dates. Valve has also hidden the last logoff date from API responses for non-friends.
If we take an educated guess, we can attribute the great increase in created accounts in the beginning of 2019 to CS:GO going free to play in December 2018.
Closing notes
From our observation, account ids seem to be created/batched/chunked in groups of 100. With the 500-830 million range, there's only 1 account per group of 100 accounts. Perhaps Valve's code to generate account ids had a bug, and it only actually created 1 account for each 100 ids, we're not sure.
We have noticed this odd discrepancy back when we scanned all profiles for VAC and game bans, and this scan just reaffirmed our observation.