Skip to main content

A2SQuery A2SQuery Documentation Status

A2SQuery is a Python implementation of Valve's A2S protocol.

Docs

View the full A2SQuery documentation here.

Features

  • Supports synchronous and asynchronous querying.
  • Multi-packet response support for Source and GoldSource engines.
  • Supports BZIP2 compressed responses.
  • Handles MTU edge cases for Source games.
  • Fully type hinted (PEP 561 compliant) with modern design and dataclass response objects.
  • Enforces limits on challenge-response handshakes to prevent infinite recursion loops.
  • Zero dependencies.

Prerequisites

  • Python >= 3.7

Installation

Install the library via pypi with

pip install a2squery

Examples

More examples available on the docs.

Synchronous

When using a2squery.A2SQuery without a context manager. Remember to call a2squery.A2SQuery.close() when finished to close the socket.

from a2squery import A2SQuery

with A2SQuery("127.0.0.1", 27015) as a2s:
    print(a2s.info())
    # print(a2s.rules())
    # print(a2s.players())

    # SourceInfo(
    #     protocol=17, name="Awp Bhop", map="awp_iceworld",
    #     folder="csgo", game="Counter-Strike: Global Offensive",
    #     app_id=730, players=43, max_players=64, bots=0,
    #     server_type=ServerType.Dedicated, environment=Environment.Linux,
    #     password=False, vac=True, version="1.38.4.4", extra_data_flag=177,
    #     mode=None, witnesses=None, duration=None,
    #     port=27015, steam_id=85568392924437989, spectator_port=None,
    #     spectator_name=None, keywords="awp,bhop,a2squeryiscool", game_id=730
    # )

Asynchronous

When using a2squery.AsyncA2SQuery without a context manager, you will need to call a2squery.AsyncA2SQuery.connect() to start the connection. Remember to call a2squery.A2SQuery.close() when finished to close the socket.

from a2squery import AsyncA2SQuery

async with A2SQuery("127.0.0.1", 27015) as a2s:
    print(await a2s.info())
    # print(await a2s.rules())
    # print(await a2s.players())

    # SourceInfo(
    #     protocol=17, name="Awp Bhop", map="awp_iceworld",
    #     folder="csgo", game="Counter-Strike: Global Offensive",
    #     app_id=730, players=43, max_players=64, bots=0,
    #     server_type=ServerType.Dedicated, environment=Environment.Linux,
    #     password=False, vac=True, version="1.38.4.4", extra_data_flag=177,
    #     mode=None, witnesses=None, duration=None,
    #     port=27015, steam_id=85568392924437989, spectator_port=None,
    #     spectator_name=None, keywords="awp,bhop,a2squeryiscool", game_id=730
    # )

Supported Games (Non-Exhaustive)

App ID Game Notes
... All Half-Life/Half-Life 2 mods and games
10 Counter-Strike 1.6
440 Team Fortress 2
550 Left For Dead 2
730 Counter-Strike: Global Offensive
1002 Rag Doll Kung Fu
2400 The Ship: Murder Party This game has various unique fields on a2squery.SourceInfo and a2squery.Player.
4000 Garry's Mod
17710 Nuclear Dawn
70000 Dino D-Day
107410 Arma 3 The query port is the server port + 1.
115300 Call of Duty: Modern Warfare 3
211820 Starbound
244850 Space Engineers The query port is the server port + 1.
304930 Unturned The query port is the server port + 1.
251570 7 Days To Die
252490 Rust
282440 Quake Live
346110 ARK: Survival Evolved
108600 Project: Zomboid

Metadata

Release files for a2squery 1.1.0

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

Source distribution (sdist)

Source distribution for a2squery 1.1.0
File Size Uploaded
a2squery-1.1.0.tar.gz 15.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for a2squery 1.1.0
File Interpreter ABI Platform
a2squery-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 29.7 kB

Release files / a2squery-1.1.0.tar.gz

Download URL a2squery-1.1.0.tar.gz
Size 15.8 kB
Tags Source
SHA-256 checksum
How to use checksums
13fa7f2c4d99b98eb737e261319f067bdbb795e372353043f889ad1d76bc219b
BLAKE2b-256 checksum
How to use checksums
21c881d8b7954fdafdce6228566905b9ddbd55f11fb4f4fbc422193ea380626e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release files / a2squery-1.1.0-py3-none-any.whl

Download URL a2squery-1.1.0-py3-none-any.whl
Size 14.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b4e237a1bcf1969d4f7de86db0805d7e74822c96a683f98ef3386c778add0183
BLAKE2b-256 checksum
How to use checksums
c74e4d8609a53bb0397e5069508ec7fe375d926279aa04305f218c056d7161ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 7, 2026.

Transparency log

Release history Release notifications | RSS feed

1.2.2

2 release files

1.2.1

2 release files

1.2.0

2 release files

This release

1.1.0 This release

2 release files

1.0.0

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

0.0.0

1 release file

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