Free to use from any website or bot. No key needed. Every ID in a response is a string: SteamID64s are too big for a JavaScript number and would be rounded.
Limits per IP: 300 conversions, 30 lookups and 6 bulk requests a minute. Over a limit you get HTTP 429 with a Retry-After header in seconds.
https://steamid.projectgaming.gg/api/steamid/convert?q=STEAM_0:1:6172
All ID formats for any input, without asking Steam. A custom URL name can't be converted without Steam, so it returns "needs_lookup": true; use lookup for those.
{
"query": "STEAM_0:1:6172",
"results": [
{ "ids": {
"steamid64": "76561197960278073",
"steamid": "STEAM_0:1:6172",
"steamid3": "[U:1:12345]",
"account_id": "12345",
"hex": "110000100003039",
"fivem": "steam:110000100003039",
"profile_url": "https://steamcommunity.com/profiles/76561197960278073"
} }
],
"needs_lookup": false
}
https://steamid.projectgaming.gg/api/steamid/lookup?q=gabelogannewell
(Example values.)
Resolves custom URLs and adds the public profile, bans and Steam level. profile, bans and level are null when Steam doesn't answer (then steam_unavailable is true) or the profile hides them.
{
"query": "gabelogannewell",
"results": [
{ "ids": { "steamid64": "76561197960287930", "...": "..." },
"profile": {
"name": "Example Player", "avatar": "https://avatars.steamstatic.com/…_full.jpg",
"profile_url": "https://steamcommunity.com/id/gabelogannewell/",
"custom_url": "gabelogannewell", "visibility": "public",
"status": "Offline", "online": false, "playing": null,
"created": 1063407589, "created_age": "23 years, 1 month",
"country": "US", "last_online": 1700000000
},
"bans": {
"vac_banned": false, "vac_bans": 0, "game_bans": 0,
"community_banned": false, "trade_ban": "none",
"days_since_last_ban": null, "clean": true
},
"level": 25 }
],
"steam_unavailable": false
}
A short number such as 12345 can be both an account ID and someone's custom URL; then results has both accounts.
https://steamid.projectgaming.gg/api/steamid/bulk with a JSON body of up to 100 inputs:
curl -X POST https://steamid.projectgaming.gg/api/steamid/bulk \
-H 'Content-Type: application/json' \
-d '{"inputs": ["76561197960287930", "STEAM_0:1:6172", "gabelogannewell"]}'
Returns {"results": [...], "steam_unavailable": false}, one entry per input in order, each with query, steamid64, error, and (when it resolved) ids, profile and bans. At most 50 custom URL names are resolved per request.
Input that isn't a Steam ID or profile link returns 422; a custom URL no account uses returns 404. Both have an error message.
Data from the Steam Web API. Not affiliated with Valve or Steam. Steam and the Steam logo are trademarks of Valve Corporation.