Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

pysteam — Python-first Steam SDK

Steam, from modern Python.
An asyncio SDK and CLI for Steam authentication and content preservation.

Python 3.13 and 3.14 Status: alpha License: MIT

pysteam-sdk installs as pysteam. It is an independent Steam SDK built on secure CM WebSockets and current protobuf messages. This first release is an alpha; APIs and archive formats may change.

What you can do

Area Possibilities
Explore Steam Inspect PICS app data, branches, depot manifests, and SteamIDs.
Sign in Use anonymous, password, refresh-token, or QR login; handle Steam Guard codes and interactive challenges.
Manage accounts Import a maFile, enroll an authenticator, and switch between encrypted saved profiles.
Preserve content Archive raw depot manifests and encrypted chunks; verify and extract offline. Import or export Steam backups.
Explore updates Snapshot app metadata, query Workshop, and archive Steam client packages.
Build integrations Call Unified Messages and WebAPI endpoints, or exchange Game Coordinator messages.

Get started

With uv installed, add the SDK to a Python project:

uv add pysteam-sdk

To use the standalone CLI:

uv tool install pysteam-sdk
pysteam app 220
pysteam doctor

The last two commands inspect public app data and test connectivity without an account.

Use your account

uv run pysteam init
uv run pysteam account add YOUR_NAME --mafile "path/to/account.maFile"
# Or: uv run pysteam account add YOUR_NAME --enroll
uv run pysteam login
uv run pysteam guard code
uv run pysteam depot list 220 221
uv run pysteam archive app 220
uv run pysteam archive verify 221 MANIFEST_ID
uv run pysteam archive extract 221 MANIFEST_ID --output restored

init creates a protected vault under ./.pysteam; account setup offers it automatically. Later commands ask for its password once per run. Set PYSTEAM_VAULT_PASSPHRASE through a secret manager for unattended use. Existing PYSTEAM_STORE_PASSPHRASE remains an alias. The maFile backup password is separate. Use vault change-password to rotate the vault and registered archive key capsules. See the account and archive guide.

Use the SDK

import asyncio
from pysteam import SteamClient

async def main() -> None:
    async with SteamClient() as steam:
        await steam.login_anonymous()
        app = await steam.get_app_info(220)
        print(app["appid"])

asyncio.run(main())

See the Python examples for authentication, WebAPI, CDN, and Game Coordinator usage.

Licensed under MIT. Independent of Valve and Steam.

Metadata

Release files for pysteam-sdk 0.1.0a0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pysteam-sdk 0.1.0a0
File Size Uploaded
pysteam_sdk-0.1.0a0.tar.gz 206.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pysteam-sdk 0.1.0a0
File Interpreter ABI Platform
pysteam_sdk-0.1.0a0-py3-none-any.whl Python 3 none any Details

Total release size: 444.1 kB

Release files / pysteam_sdk-0.1.0a0.tar.gz

Download URL pysteam_sdk-0.1.0a0.tar.gz
Size 206.2 kB
Tags Source
SHA-256 checksum
How to use checksums
2b13983cb6e2552844063898f1ef472375c3f3e5b0b86df871f6806cda930267
BLAKE2b-256 checksum
How to use checksums
9d89dee92ed7a5644de2920a7e0bb55bc19fbd0c74c3d695971cc3bf938655cc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / pysteam_sdk-0.1.0a0-py3-none-any.whl

Download URL pysteam_sdk-0.1.0a0-py3-none-any.whl
Size 238.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b1351cdfa55a84c707a045bfe2d2b634f3ec8db9954eecc2bf6afbaabcad0f52
BLAKE2b-256 checksum
How to use checksums
69ac4e20c0d460141f4535f59202c7aaac09a7e1cc2f5f01d1a604f174719a1c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.12.23 {"installer":{"name":"uv","version":"0.12.23","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.1.0a0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page