Search code examples
pythonurllibsteam-web-api

Steam Web API GetOwnedGames multiple SteamIDs


We are trying to get the owned games of a lot of users but our problem is that after a while the API call limit (100.000 a day) kicks in and we stop getting results.

We use 'IPlayerService/GetOwnedGames/v0001/?key=APIKEY&steamid=STEAMID' in our call and it works for the first entries.

There are several other queries like the GetPlayerSummaries query which take multiple Steam IDs, but according to the documentation, this one only takes one.

Is there any other way to combine/ merge our queries? We are using Python and the urllib.request library to create the request.


Solution

  • As @andreihondrari indirectly stated in his comment under his answer, one can request to get an API key which can get more then the 100.000 calls/ day. This is stated under part "License to Steam Web API & Steam Data" of the documentation:

    You are limited to one hundred thousand (100,000) calls to the Steam Web API per day. Valve may approve higher daily call limits if you adhere to these API Terms of Use.

    This may be complicated and there is of cause the possibility that you wont get approved, but this is pretty much the only stable way you can go.


    Furthermore you could theoretically use multiple Steam Web API keys, BUT:

    • Each API key still has the limitation of 100.000 calls/day so you'll need to implement a fail safe and a transition between used keys and possibly need to create lots of accounts.
    • As each user has his own specific friendlist and blocked list the API key can "see" a portion of the Steam Community exclusively (friends data is not public otherwise). So it could be that you are using one API key which can't "see" a certain user when you could've used another to "see" it properly.
    • You'll need a unique email adress for each created account.

    Note: Having multiple accounts actually complies with Valves ToS according to this post on Arqade.