---
visibility: public
---

# Steam

**repo:** [scholtzm/awesome-steam](https://github.com/scholtzm/awesome-steam)  
**category:** [[miscellaneous|Miscellaneous]]
**related:** [[game-development|Game Development]]

---

# Awesome Steam [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome)

> A curated list of [packages](#packages) and [resources](#resources) regarding [Steam](http://store.steampowered.com/) development.

*Please read the [contribution guidelines](CONTRIBUTING.md) 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](#packages)
  - [Node.js](#nodejs)
  - [C#](#c)
  - [PHP](#php)
  - [Go](#go)
  - [Python](#python)
  - [C++](#c-1)
  - [Java](#java)
  - [Objective-C](#objective-c)
  - [Ruby](#ruby)
  - [Rust](#rust)

- [Resources](#resources)
  - [General](#general-3)
  - [Tutorials](#tutorials)
  - [Posts](#posts)
  - [Standalone Tools](#standalone-tools)
  - [Discussion Boards](#discussion-boards)
  - [Third-Party Services](#third-party-services)

## 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](https://github.com/seishun/node-steam) - Interface directly with [Steam](/@harrisonqian/awesome/wiki/learn/steam) servers from [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js).
- [steam-client](https://github.com/DoctorMcKay/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-client) - API-compatible fork of node-steam's SteamClient.
- [steam-user](https://github.com/DoctorMcKay/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-user) - Feature-rich easy-to-use Steam client.
- [vapor](https://github.com/scholtzm/vapor) - Lightweight [Steam](/@harrisonqian/awesome/wiki/learn/steam) client framework.
- [steam-parentbot](https://github.com/dragonbanshee/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-parentbot) - Simple base class for a Steam bot.
- [steamworks-ffi-node](https://github.com/ArtyProf/steamworks-ffi-node) - A [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) wrapper for Steamworks SDK.

#### WebAPI

- [steam-webapi](https://github.com/DoctorMcKay/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-webapi) - Complete WebAPI wrapper with support for extra HTTP headers sent by Steam.
- [steamapi](https://github.com/lloti/node-steamapi) - A nice [Steam](/@harrisonqian/awesome/wiki/learn/steam) API wrapper.

#### Trading

- [steam-trade](https://github.com/seishun/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-trade) - [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) wrapper around Steam live trading.
- [steam-tradeoffers](https://github.com/Alex7Kom/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-tradeoffers) - Steam Trade Offers for [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js).
- [steam-tradeoffer-manager](https://github.com/DoctorMcKay/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-tradeoffer-manager) - Simple and sane Steam trade offer management.
- [steam-inventory-stream](https://github.com/timvandam/steam-inventory-stream) - Fetch inventories as readable streams.
- [steam-inventory-api-ng](https://github.com/itsjfx/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-inventory-api-ng) - A Steam Inventory API wrapper with advanced features such as retries and proxy support.

#### Game Interaction

- [steam-gameserver](https://github.com/DoctorMcKay/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-gameserver) - Steam client handler for Gameserver and AnonGameserver account types.
- [tf2](https://github.com/DoctorMcKay/node-tf2) - Interact directly with TF2 game coordinator.
- [csgo](https://github.com/joshuaferrara/node-csgo) - Interact directly with CS:GO game coordinator.
- [dota2](https://github.com/RJacksonm1/node-dota2) - Interact directly with Dota 2 game coordinator.

#### Community & Store Automation

- [steamcommunity](https://github.com/DoctorMcKay/node-steamcommunity) - Interact with steamcommunity.com. Also allows to confirm trade offers.
- [steamstore](https://github.com/DoctorMcKay/node-steamstore) - Interact with store.steampowered.com.
- [steam-weblogon](https://github.com/Alex7Kom/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-weblogon) - Retrieve SteamCommunity cookies if you are running Steam network client.
- [steam-web-api-key](https://github.com/Alex7Kom/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-web-api-key) - Automatically registers and retrieves Steam API key.
- [steam-parental](https://github.com/Alex7Kom/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-parental) - Disable parental lock.

#### Authentication

- [steam-login](https://github.com/cpancake/steam-login) - Simple Connect / Express [Steam](/@harrisonqian/awesome/wiki/learn/steam) authentication library.
- [passport-steam](https://github.com/liamcurry/passport-steam) - [Steam](/@harrisonqian/awesome/wiki/learn/steam) (OpenID) authentication strategy for Passport and [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js).
- [meteor-accounts-steam](https://github.com/scholtzm/meteor-accounts-steam) - [Steam](/@harrisonqian/awesome/wiki/learn/steam) OpenID [integration](/@harrisonqian/awesome/wiki/platforms/integration) for [Meteor](/@harrisonqian/awesome/wiki/front-end-development/meteor) Accounts.

#### Misc

- [steam-resources](https://github.com/seishun/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-resources) - Steam's enums, protobufs and structs.
- [steam-crypto](https://github.com/seishun/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-crypto) - [Node.js](/@harrisonqian/awesome/wiki/platforms/node-js) implementation of Steam crypto.
- [steam-groups](https://github.com/scholtzm/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-groups) - Custom node-steam handler which provides group functions.
- [steamid](https://github.com/DoctorMcKay/node-steamid) - SteamID usage and conversion made easy.
- [steam-totp](https://github.com/DoctorMcKay/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-totp) - Easily generate 2FA codes used by Steam.
- [steam-chat-bot](https://github.com/Steam-Chat-Bot/node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-chat-bot) - Simplified interface for a steam chat bot.
- [vdf](https://github.com/RJacksonm1/node-vdf) - vdf to object and vice versa.
- [steamrep](https://github.com/scholtzm/node-steamrep) - Check user's SteamRep reputation.
- [reptf](https://github.com/scholtzm/node-reptf) - Check user's rep.tf reputation.
- [steamapis](https://github.com/itsjfx/node-steamapis) - Module to use the API of [steamapis.com](https://steamapis.com).

### C&#35;

#### General

- [SteamKit2](https://github.com/SteamRE/SteamKit) - .NET library designed to interoperate with Valve's [Steam](/@harrisonqian/awesome/wiki/learn/steam) network.
- [SteamAuth](https://github.com/geel9/SteamAuth) - A C# library that provides vital [Steam](/@harrisonqian/awesome/wiki/learn/steam) Mobile Authenticator functionality.
- [SteamBot](https://github.com/Jessecar96/SteamBot) - Automated bot software for interacting with [steam](/@harrisonqian/awesome/wiki/learn/steam) trade.
- [SteamTradeOffersBot](https://github.com/waylaidwanderer/SteamTradeOffersBot) - SteamBot fork which focuses on trade offers.
- [SteamStandardProject](https://github.com/ObsidianMinor/SteamStandardProject) - A collection of .NET Standard libraries using common types that provide functionality in one or more parts of [Steam](/@harrisonqian/awesome/wiki/learn/steam).

#### Misc

- [BackpackLogin](https://github.com/igeligel/BackpackLogin) - A .NET Standard library for logging into backpack.tf using [Steam](/@harrisonqian/awesome/wiki/learn/steam) credentials.
- [TeamFortressOutpostApi](https://github.com/igeligel/TeamFortressOutpostApi) - A .NET Standard class library which allows user to interact with TF2Outpost.

### PHP

- [SteamCommunity](https://github.com/waylaidwanderer/PHP-SteamCommunity) - A PHP library for interacting with the [Steam](/@harrisonqian/awesome/wiki/learn/steam) Community website.
- [SteamAuthentication](https://github.com/SmItH197/SteamAuthentication) - [Steam](/@harrisonqian/awesome/wiki/learn/steam) OpenID authentication with PHP.
- [SteamAuthOOP](https://github.com/BlackCetha/SteamAuthOOP) - An object-oriented alternative to SteamAuthentication.
- [steam-api](https://github.com/DaMitchell/steam-api-php) - A PHP wrapper for the [Steam](/@harrisonqian/awesome/wiki/learn/steam) API.
- [steamid](https://github.com/DoctorMcKay/php-steamid) - SteamID class for PHP.
- [steam-totp](https://github.com/DoctorMcKay/php-[steam](/@harrisonqian/awesome/wiki/learn/steam)-totp) - PHP library to deal with Steam's proprietary TOTP algorithm.
- [steam-auth](https://github.com/vikas5914/steam-auth) - An alternative [Steam](/@harrisonqian/awesome/wiki/learn/steam) authentication library with [Composer](/@harrisonqian/awesome/wiki/programming-languages/composer) support.

### Go

- [steam](https://github.com/0xAozora/steam) - Simple [steam](/@harrisonqian/awesome/wiki/learn/steam) library for trading in Go.
- [go-steam](https://github.com/Philipp15b/go-steam) - [Steam](/@harrisonqian/awesome/wiki/learn/steam)'s protocol in Go.
- [steam-mobileauth](https://github.com/YellowOrWhite/go-[steam](/@harrisonqian/awesome/wiki/learn/steam)-mobileauth) - Port of SteamAuth in Go.

### Python

#### General

- [steam](https://github.com/ValvePython/steam) - Module for various interactions with [Steam](/@harrisonqian/awesome/wiki/learn/steam).
- [steamodd](https://github.com/Lagg/steamodd) - [Steam](/@harrisonqian/awesome/wiki/learn/steam) tools library.
- [steampy](https://github.com/bukson/steampy) - Fully automated [Steam](/@harrisonqian/awesome/wiki/learn/steam) trade offers library with SteamGuard support.
- [SteamAPI](https://github.com/smiley/steamapi) - An object-oriented [Python](/@harrisonqian/awesome/wiki/programming-languages/python) 2.7+ library for accessing the [Steam](/@harrisonqian/awesome/wiki/learn/steam) Web API.
- [Steam-Trade](https://github.com/Zwork101/steam-trade) - An asynchronous, event-based trade library.
- [aiosteampy](https://github.com/somespecialone/aiosteampy) - Trade and interact with [Steam](/@harrisonqian/awesome/wiki/learn/steam) market, WebAPI, SteamGuard.

#### Game Interaction

- [csgo](https://github.com/ValvePython/csgo) - [Python](/@harrisonqian/awesome/wiki/programming-languages/python) module for interacting with CSGO's Game Coordinator.
- [dota2](https://github.com/ValvePython/dota2) - [Python](/@harrisonqian/awesome/wiki/programming-languages/python) module for interacting with Dota 2's Game Coordinator.

#### Misc

- [vpk](https://github.com/ValvePython/vpk) - [Python](/@harrisonqian/awesome/wiki/programming-languages/python) module for working with Valve's Pack format.
- [vdf](https://github.com/ValvePython/vdf) - [Python](/@harrisonqian/awesome/wiki/programming-languages/python) module for working with Valve's KeyValue format.

### C++

- [SteamPP](https://github.com/seishun/SteamPP) - C++ library to interoperate with [Steam](/@harrisonqian/awesome/wiki/learn/steam) servers.

### Java

- [SteamKit-Java](https://github.com/Top-Cat/SteamKit-Java) - [Java](/@harrisonqian/awesome/wiki/programming-languages/java) port of SteamKit.
- [JavaSteam](https://github.com/Longi94/JavaSteam) - [Java](/@harrisonqian/awesome/wiki/programming-languages/java) library that provides an interface to directly interact with Valve's [Steam](/@harrisonqian/awesome/wiki/learn/steam) servers.

### Objective-C

- [SteamAuth](https://github.com/michaelchum/SteamAuth) - An iOS wrapper around [Steam](/@harrisonqian/awesome/wiki/learn/steam)'s OpenID login.

### Ruby

- [steam-trade](https://github.com/OmG3r/steam-trade) - [Ruby](/@harrisonqian/awesome/wiki/programming-languages/ruby) gem for sending trade offers.

### Rust

- [steamguard-cli](https://github.com/dyc3/steamguard-cli) - Command-line utility for generating [Steam](/@harrisonqian/awesome/wiki/learn/steam) 2FA codes and managing Steam confirmations.

## Resources

### General

- [Steam WebAPI @ ValveSoftware](https://developer.valvesoftware.com/wiki/Steam_Web_API)
- [Steam WebAPI @ TF2 Wiki](https://wiki.teamfortress.com/wiki/WebAPI)
- [Steam WebAPI Documentation by xPaw](https://lab.xpaw.me/steam_api_documentation.html)
- [Steam Internal WebAPI Documentation by Revadike](https://github.com/Revadike/UnofficialSteamWebAPI)
- [Steam as OpenID Provider](http://steamcommunity.com/dev)
- [Steam API Key Registration](http://steamcommunity.com/dev/apikey)
- [Steam Error Codes](https://steamerrors.com/) - List of `EResult` codes with possible explanations.

### Tutorials

- [Creating a [Steam](/@harrisonqian/awesome/wiki/learn/steam) Trade Bot with Node.js](https://firepowered.org/developer/create-a-steam-trade-bot-with-nodejs-iojs-updated-for-node-steam-v1-0/)
- [Charred's [node.js](/@harrisonqian/awesome/wiki/platforms/node-js) Guide to [Steam](/@harrisonqian/awesome/wiki/learn/steam) Bots](https://github.com/charredgrass/nodejs-bot-guide)
- [In-depth [Steam](/@harrisonqian/awesome/wiki/learn/steam) Bot Guide with Node.js](https://github.com/andrewda/node-steam-guide)
- [Retrieving 2FA Keys from iOS Device](http://forums.backpack.tf/index.php?/topic/45995-guide-how-to-get-your-shared-secret-from-ios-device-[steam](/@harrisonqian/awesome/wiki/learn/steam)-mobile/)

### Posts

- [Item IDs Explained](https://dev.doctormckay.com/topic/332-identifying-[steam](/@harrisonqian/awesome/wiki/learn/steam)-items/)
- [Everything Related to Escrow](https://www.reddit.com/r/SteamBot/comments/3udhkd/everything_related_to_escrow/)
- [Understanding Avatar Hash](https://www.reddit.com/r/SteamBot/comments/3cv6k7/problem_downloading_an_avatar_using/)

### Standalone Tools

- [NetHook2](https://github.com/SteamRE/SteamKit/tree/master/Resources/NetHook2) - Intercept [Steam](/@harrisonqian/awesome/wiki/learn/steam) client's network messages.
- [NetHook2 Analyzer](https://github.com/SteamRE/SteamKit/tree/master/Resources/NetHookAnalyzer2) - Inspect messages dumped by NetHook2.
- [steam-auth-web-util](http://scholtzm.[github](/@harrisonqian/awesome/wiki/development-environment/github).io/steam-auth-web-util/) - Generate 2FA codes directly in your web browser.
- [SteamDesktopAuthenticator](https://github.com/Jessecar96/SteamDesktopAuthenticator) - Desktop implementation of [Steam](/@harrisonqian/awesome/wiki/learn/steam)'s mobile authenticator app.
- [protonenv](https://github.com/rizkiarm/protonenv) - Simple Proton version and prefix management.
- [steam-desktop-authenticator-multiplatform](https://github.com/tre3p/steam-desktop-authenticator-multiplatform) - [Steam](/@harrisonqian/awesome/wiki/learn/steam) desktop authenticator.

### Discussion Boards

- [/r/SteamBot](https://www.reddit.com/r/SteamBot)
- [/r/SteamBot Discord](https://discord.gg/0i5X3oDHJbDUsiGC)
- [/r/nodesteam](https://www.reddit.com/r/nodesteam)
- [DoctorMcKay's Dev Forum](https://dev.doctormckay.com/)
- [node-[steam](/@harrisonqian/awesome/wiki/learn/steam)-forum](https://github.com/steam-forward/node-steam-forum)

### Third-Party Services

Websites listed below may provide free and/or paid services and are listed alphabetically according to their domain name.

- [backpack.tf](https://backpack.tf/developer) - Provides TF2 prices and [Steam](/@harrisonqian/awesome/wiki/learn/steam) market/inventory related services.
- [steamanalyst.com](https://steamanalyst.com/) - Provides CS:GO prices.
- [hexa.one](https://hexa.one/) - Provides prices for several games and [Steam](/@harrisonqian/awesome/wiki/learn/steam) market/inventory related services.
- [steamapis.com](https://steamapis.com/) - Provides prices for several games and [Steam](/@harrisonqian/awesome/wiki/learn/steam) market/inventory related services.

## License

[![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](https://creativecommons.org/publicdomain/zero/1.0/)

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.
