Awesome Steam
A curated list of packages and resources regarding Steam development.
Please read the contribution guidelines before contributing.
The purpose of this document is to provide a quick overview over existing packages (libraries, modules etc.) and resources available regarding Steam client automation and WebAPI usage. Whenever you need to start a new project, have a look at the list of packages and see if there is anything useful for your use case. If you need technical details or tutorials, check out the resources section.
Table of Contents
Packages
π‘ Many of these package repositories provide helpful READMEs and wiki pages, which explain the usage and/or provide examples. Do not forget to check them out when using particular package.
Node.js
General
- steam - Interface directly with Steam servers from Node.js.
- steam-client - API-compatible fork of node-steam's SteamClient.
- steam-user - Feature-rich easy-to-use Steam client.
- vapor - Lightweight Steam client framework.
- steam-parentbot - Simple base class for a Steam bot.
WebAPI
- steam-webapi - Complete WebAPI wrapper with support for extra HTTP headers sent by Steam.
- steamapi - A nice Steam API wrapper.
Trading
- steam-trade - Node.js wrapper around Steam live trading.
- steam-tradeoffers - Steam Trade Offers for Node.js.
- steam-tradeoffer-manager - Simple and sane Steam trade offer management.
- steam-inventory-stream - Fetch inventories as readable streams.
- steam-inventory-api-ng - A Steam Inventory API wrapper with advanced features such as retries and proxy support.
Game Interaction
- steam-gameserver - Steam client handler for Gameserver and AnonGameserver account types.
- tf2 - Interact directly with TF2 game coordinator.
- csgo - Interact directly with CS:GO game coordinator.
- dota2 - Interact directly with Dota 2 game coordinator.
Community & Store Automation
- steamcommunity - Interact with steamcommunity.com. Also allows to confirm trade offers.
- steamstore - Interact with store.steampowered.com.
- steam-weblogon - Retrieve SteamCommunity cookies if you are running Steam network client.
- steam-web-api-key - Automatically registers and retrieves Steam API key.
- steam-parental - Disable parental lock.
Authentication
- steam-login - Simple Connect / Express Steam authentication library.
- passport-steam - Steam (OpenID) authentication strategy for Passport and Node.js.
- meteor-accounts-steam - Steam OpenID integration for Meteor Accounts.
Misc
- steam-resources - Steam's enums, protobufs and structs.
- steam-crypto - Node.js implementation of Steam crypto.
- steam-groups - Custom node-steam handler which provides group functions.
- steamid - SteamID usage and conversion made easy.
- steam-totp - Easily generate 2FA codes used by Steam.
- steam-chat-bot - Simplified interface for a steam chat bot.
- vdf - vdf to object and vice versa.
- steamrep - Check user's SteamRep reputation.
- reptf - Check user's rep.tf reputation.
- steamapis - Module to use the API of steamapis.com.
C#
General
- SteamKit2 - .NET library designed to interoperate with Valve's Steam network.
- SteamAuth - A C# library that provides vital Steam Mobile Authenticator functionality.
- SteamBot - Automated bot software for interacting with steam trade.
- SteamTradeOffersBot - SteamBot fork which focuses on trade offers.
- SteamStandardProject - A collection of .NET Standard libraries using common types that provide functionality in one or more parts of Steam.
Misc
- BackpackLogin - A .NET Standard library for logging into backpack.tf using Steam credentials.
- TeamFortressOutpostApi - A .NET Standard class library which allows user to interact with TF2Outpost.
- SteamGaugesApi - A .NET Standard 2.0 library to automatically use the API of steamgauges.
PHP
- SteamCommunity - A PHP library for interacting with the Steam Community website.
- SteamAuthentication - Steam OpenID authentication with PHP.
- SteamAuthOOP - An object-oriented alternative to SteamAuthentication.
- steam-api - A PHP wrapper for the Steam API.
- steamid - SteamID class for PHP.
- steam-totp - PHP library to deal with Steam's proprietary TOTP algorithm.
- steam-auth - An alternative Steam authentication library with Composer support.
Go
- steam - Steam's protocol in Go.
- steam-mobileauth - Port of SteamAuth in Go.
Python
General
- steam - Module for various interactions with Steam.
- PySteamKit - Python port of SteamKit.
- steamodd - Steam tools library.
- steampy - Fully automated Steam trade offers library with SteamGuard support.
- SteamAPI - An object-oriented Python 2.7+ library for accessing the Steam Web API.
- Steam-Trade - An asynchronous, event-based trade library.
Game Interaction
- csgo - Python module for interacting with CSGO's Game Coordinator.
- dota2 - Python module for interacting with Dota 2's Game Coordinator.
Misc
- vpk - Python module for working with Valve's Pack format.
- vdf - Python module for working with Valve's KeyValue format.
C++
- SteamPP - C++ library to interoperate with Steam servers.
Java
- SteamKit-Java - Java port of SteamKit.
- JavaSteam - Java library that provides an interface to directly interact with Valve's Steam servers.
Objective-C
- SteamAuth - An iOS wrapper around Steam's OpenID login.
Ruby
- steam-trade - Ruby gem for sending trade offers.
Resources
General
- Steam WebAPI @ ValveSoftware
- Steam WebAPI @ TF2 Wiki
- Steam WebAPI Documentation by xPaw
- Steam Internal WebAPI Documentation by Revadike
- Steam as OpenID Provider
- Steam API Key Registration
- Steam Error Codes - List of
EResult
codes with possible explanations.
Tutorials
- Creating a Steam Trade Bot with Node.js
- Charred's node.js Guide to Steam Bots
- In-depth Steam Bot Guide with Node.js
- Retrieving 2FA Keys from iOS Device
Posts
Standalone Tools
- NetHook2 - Intercept Steam client's network messages.
- NetHook2 Analyzer - Inspect messages dumped by NetHook2.
- steam-auth-web-util - Generate 2FA codes directly in your web browser.
- SteamDesktopAuthenticator - Desktop implementation of Steam's mobile authenticator app.
- protonenv - Simple Proton version and prefix management.
- steam-desktop-authenticator-multiplatform - Steam desktop authenticator.
Discussion Boards
Third-Party Services
Websites listed below may provide free and/or paid services and are listed alphabetically according to their domain name.
- backpack.tf - Provides TF2 prices and Steam market/inventory related services.
- steamanalyst.com - Provides CS:GO prices.
- hexa.one - Provides prices for several games and Steam market/inventory related services.
- steamapis.com - Provides prices for several games and Steam market/inventory related services.
License
To the extent possible under law, the author and contributors of this text have waived all copyright and related or neighboring rights to this work.