Skip to content

OseSem/battlemetrics

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

BattleMetrics API Wrapper

Ruff PyPI - Version PyPI - Downloads

An async Python wrapper for the BattleMetrics API with full type safety using Pydantic models.

Caution

This API Wrapper is very new and partly untested. Please report any issues instantly.

Note

Since the BattleMetrics API Documentation is partly finished not every endpoint might be included. Make an Issue Report for any missing endpoints.

Installation

To install the latest published version off of PyPI, you can run the following command:

pip install battlemetrics

To install the development version from GitHub (requires Git):

pip install git+https://github.com/OseSem/battlemetrics

Usage

Basic Example

import asyncio
from battlemetrics import Battlemetrics

async def main():
    client = Battlemetrics("your-api-key")

    # Get server information
    server = await client.get_server(12345)
    print(f"Server: {server.attributes.name}")
    print(f"Players: {server.attributes.players}/{server.attributes.max_players}")

    await client.close()

asyncio.run(main())

Using the Context Manager

import asyncio
from battlemetrics import Battlemetrics

async def main():
    async with Battlemetrics("your-api-key") as client:
        # Search for players
        players = await client.list_players(search="username", game="rust")
        for player in players:
            print(f"Player: {player.attributes.name} (ID: {player.id})")

        # Get player session history
        if players:
            sessions = await client.player_session_history(players[0].id)
            for session in sessions:
                print(f"Session: {session.attributes.start} - {session.attributes.stop}")

asyncio.run(main())

Searching for Servers

import asyncio
from battlemetrics import Battlemetrics

async def main():
    async with Battlemetrics("your-api-key") as client:
        # Search for Rust servers in the US
        servers = await client.list_servers(
            search="vanilla",
            game="rust",
            countries=["US"],
            page_size=10
        )
        for server in servers:
            print(f"{server.attributes.name} - {server.attributes.players} players")

asyncio.run(main())

About

An Asyncronous Python wrapper for the BattleMetrics API.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Contributors

Languages