Discover/Bo3 API
live

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.

This API takes change requests — .
Endpoint health
monitored
get_player_match_history
get_player_stats
get_top_players
Checks pendingself-healing
Endpoints
3
Updated
3h ago
This call costs1 credit / call— charged only on success
Try it
Esports title to query.
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.
Number of players to return per page (1-50).
Number of players to skip for pagination. Use with limit to page through results.
End of date range in YYYY-MM-DD format. Defaults to today.
Start of date range in YYYY-MM-DD format. Defaults to 180 days before today.
api.parse.bot/scraper/56f61c73-bac2-4288-9d64-543507d7a699/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
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'
Python SDK · recommended

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")
All endpoints · 3 totalmissing one? ·

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.

Input
ParamTypeDescription
gamerequiredstringEsports title to query.
sortstringSort 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.
limitintegerNumber of players to return per page (1-50).
offsetintegerNumber of players to skip for pagination. Use with limit to page through results.
date_tostringEnd of date range in YYYY-MM-DD format. Defaults to today.
date_fromstringStart of date range in YYYY-MM-DD format. Defaults to 180 days before today.
Response
{
  "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.