Bo3 APIbo3.gg ↗
Track and compare professional esports performance across CS2, Valorant, and League of Legends by viewing detailed player statistics like kills, deaths, assists, multikills, and clutches. Discover top-performing players and analyze individual match histories to understand player performance ratings and competitive trends.
curl -X GET 'https://api.parse.bot/scraper/56f61c73-bac2-4288-9d64-543507d7a699/get_top_players?game=cs2&sort=-avg_kills&limit=5&offset=0&date_to=2026-07-29&date_from=2026-01-30' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace bo3-gg-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
"""Walkthrough: bo3_gg_api SDK — bounded, re-runnable; every call capped."""
from parse_apis.bo3_gg_api import Bo3gg, Game, PlayerNotFound
client = Bo3gg()
# List top CS2 players by rating
for player in client.player_rankings.top(game=Game.CS2, limit=3):
print(player.nickname, player.avg_kills, player.kd_ratio)
# Drill into a specific player's aggregated stats
top_player = client.player_rankings.top(game=Game.CS2, limit=1).first()
stats = top_player.stats()
print(stats.nickname, stats.games_won, stats.total_kills, stats.total_assists)
# Walk match history for that player
for match in top_player.match_history(limit=3):
print(match.match_date, match.kills, match.deaths, match.headshot_accuracy)
# Valorant top players
for player in client.player_rankings.top(game=Game.VALORANT, limit=2):
print(player.nickname, player.avg_combat_score, player.headshot_accuracy)
# Typed error handling
try:
ghost = client.playerranking(slug="nonexistent-xyz")
ghost.stats()
except PlayerNotFound as e:
print("not found:", e.player_slug)
print("exercised: player_rankings.top / stats / match_history")
Retrieve top-ranked players with historical performance stats for a given esports title. Each player record includes average kills, deaths, assists, and game-specific metrics (e.g. clutches and multikills for CS2/Valorant, gold-per-minute and pentakills for LoL). Results are ordered by the chosen sort metric descending. Stats are computed over the specified date window.
| Param | Type | Description |
|---|---|---|
| gamerequired | string | Esports title to query. |
| sort | string | Sort field prefixed with - for descending. CS2 examples: -avg_player_rating, -avg_kills, -avg_kd_rate. Valorant: -avg_combat_score. LoL: -avg_kills, -avg_gold_per_min. Omit for game-specific default. |
| limit | integer | Number of players to return per page (1-50). |
| offset | integer | Number of players to skip for pagination. Use with limit to page through results. |
| date_to | string | End of date range in YYYY-MM-DD format. Defaults to today. |
| date_from | string | Start of date range in YYYY-MM-DD format. Defaults to 180 days before today. |
{
"type": "object",
"fields": {
"game": "game identifier string",
"players": "array of player stat records with kills, deaths, assists, and game-specific metrics",
"total_count": "total number of qualifying players"
},
"sample": {
"data": {
"game": "cs2",
"players": [
{
"slug": "olimp",
"country": "Poland",
"kd_ratio": 1.05,
"nickname": "olimp",
"avg_kills": 0.87,
"player_id": 29407,
"team_name": "Walczaki",
"avg_damage": 102.22,
"avg_deaths": 0.83,
"avg_rating": 7.56,
"avg_assists": 0.35,
"games_count": 173,
"clutches_1v1": 33,
"clutches_1v2": 19,
"clutches_1v3": 5,
"multikills_2": 586,
"multikills_3": 171,
"multikills_4": 64,
"multikills_5": 3,
"rounds_count": 3770,
"avg_first_death": 0.14,
"avg_first_kills": 0.12,
"headshot_accuracy": 0.53
}
],
"total_count": 165
},
"status": "success"
}
}About the Bo3 API
The Bo3 API on Parse exposes 3 endpoints for the publicly available data on bo3.gg. Calls return JSON over HTTPS and are billed per successful response.
Pin a release with the API-Snapshot-Version header so canonical updates don't silently change your contract.