GitPedia

Steam.py

An async python wrapper to interact with the Steam API and its CMs

From Gobot1234·Updated June 17, 2026·View on GitHub·

A modern, easy to use, and async ready package to interact with the Steam API. Heavily inspired by [discord.py](https://github.com/Rapptz/discord.py). The project is written primarily in Python, distributed under the Other license, first published in 2020. Key topics include: asyncio, betterproto, python, steam, steam-api.

Latest release: V.1.1.2
April 28, 2025View Changelog →

steam.py

A modern, easy to use, and async ready package to interact with the Steam API. Heavily inspired by
discord.py.

Supports
Version
License
GitHub issues
GitHub stars
Discord
Documentation Status

Key Features

  • Modern Pythonic API using async/await syntax
  • Command extension to aid with bot creation
  • Easy to use with an object-oriented design
  • Fully typed hinted for faster development

Installation

Python 3.10 or higher is required

To install the library just run either of the following commands:

sh
# Linux/macOS python3 -m pip install -U steamio # Windows py -m pip install -U steamio

Or for the development version.

sh
# Linux/macOS python3 -m pip install -U "steamio @ git+https://github.com/Gobot1234/steam.py@main" # Windows py -m pip install -U "steamio @ git+https://github.com/Gobot1234/steam.py@main"

Quick Example

python
import steam class MyClient(steam.Client): async def on_ready(self) -> None: print("Logged in as", self.user) async def on_trade(self, trade: steam.TradeOffer) -> None: if not trade.is_our_offer(): await trade.user.send("Thank you for your trade") print(f"Received trade: #{trade.id}") print("Trade partner is:", trade.user) print("We would send:", len(trade.sending), "items") print("We would receive:", len(trade.receiving), "items") if trade.is_gift(): print("Accepting the trade as it is a gift") await trade.accept() client = MyClient() client.run("username", "password")

Bot Example

python
from steam.ext import commands bot = commands.Bot(command_prefix="!") @bot.command async def ping(ctx: commands.Context) -> None: await ctx.send("Pong!") bot.run("username", "password")

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from Gobot1234/steam.py via the GitHub API.Last fetched: 6/29/2026