Series API
The series module provides detailed match information including map picks/bans, player statistics, and round-by-round data.
Overview
Get in-depth match analytics including series info, map picks and bans, detailed player statistics, and round results.
Series/match-related API endpoints and models.
- class vlrdevapi.series.TeamInfo(name: str, id: int | None = None, short: str | None = None, country: str | None = None, country_code: str | None = None, score: int | None = None)[source]
Bases:
objectTeam information in a series.
- class vlrdevapi.series.MapAction(action: str, team: str, map: str)[source]
Bases:
objectMap pick/ban action.
- class vlrdevapi.series.Info(match_id: int, teams: tuple[~vlrdevapi.series.models.TeamInfo, ~vlrdevapi.series.models.TeamInfo], score: tuple[int | None, int | None], status_note: str, event: str, event_phase: str, best_of: str | None = None, date: ~datetime.date | None = None, time: ~datetime.time | None = None, patch: str | None = None, map_actions: list[~vlrdevapi.series.models.MapAction] = <factory>, picks: list[~vlrdevapi.series.models.MapAction] = <factory>, bans: list[~vlrdevapi.series.models.MapAction] = <factory>, remaining: str | None = None)[source]
Bases:
objectSeries information.
- __init__(match_id: int, teams: tuple[~vlrdevapi.series.models.TeamInfo, ~vlrdevapi.series.models.TeamInfo], score: tuple[int | None, int | None], status_note: str, event: str, event_phase: str, best_of: str | None = None, date: ~datetime.date | None = None, time: ~datetime.time | None = None, patch: str | None = None, map_actions: list[~vlrdevapi.series.models.MapAction] = <factory>, picks: list[~vlrdevapi.series.models.MapAction] = <factory>, bans: list[~vlrdevapi.series.models.MapAction] = <factory>, remaining: str | None = None) None
- class vlrdevapi.series.PlayerStats(name: str, country: str | None = None, team_short: str | None = None, team_id: int | None = None, player_id: int | None = None, agents: list[str] = <factory>, r: float | None = None, acs: int | None = None, k: int | None = None, d: int | None = None, a: int | None = None, kd_diff: int | None = None, kast: float | None = None, adr: float | None = None, hs_pct: float | None = None, fk: int | None = None, fd: int | None = None, fk_diff: int | None = None)[source]
Bases:
objectPlayer statistics in a map.
- __init__(name: str, country: str | None = None, team_short: str | None = None, team_id: int | None = None, player_id: int | None = None, agents: list[str] = <factory>, r: float | None = None, acs: int | None = None, k: int | None = None, d: int | None = None, a: int | None = None, kd_diff: int | None = None, kast: float | None = None, adr: float | None = None, hs_pct: float | None = None, fk: int | None = None, fd: int | None = None, fk_diff: int | None = None) None
- class vlrdevapi.series.MapTeamScore(is_winner: bool, id: int | None = None, name: str | None = None, short: str | None = None, score: int | None = None, attacker_rounds: int | None = None, defender_rounds: int | None = None)[source]
Bases:
objectTeam score for a specific map.
- class vlrdevapi.series.RoundResult(number: int, winner_side: str | None = None, method: str | None = None, score: tuple[int, int] | None = None, winner_team_id: int | None = None, winner_team_short: str | None = None, winner_team_name: str | None = None)[source]
Bases:
objectSingle round result.
- class vlrdevapi.series.MapPlayers(game_id: int | str | None = None, map_name: str | None = None, players: list[PlayerStats] = <factory>, teams: tuple[~vlrdevapi.series.models.MapTeamScore, ~vlrdevapi.series.models.MapTeamScore] | None=None, rounds: list[RoundResult] | None = None)[source]
Bases:
objectMap statistics with player data.
- players: list[PlayerStats]
- teams: tuple[MapTeamScore, MapTeamScore] | None = None
- rounds: list[RoundResult] | None = None
- vlrdevapi.series.info(match_id: int, timeout: float | None = None) Info | None[source]
Get series information.
- Parameters:
match_id – Match ID
timeout – Request timeout in seconds
- Returns:
Series information or None if not found
Example
>>> import vlrdevapi as vlr >>> info = vlr.series.info(match_id=12345) >>> print(f"{info.teams[0].name} vs {info.teams[1].name}") >>> print(f"Score: {info.score[0]}-{info.score[1]}")
- vlrdevapi.series.matches(series_id: int, limit: int | None = None, timeout: float | None = None) list[MapPlayers][source]
Get detailed match statistics for a series.
- Parameters:
series_id – Series/match ID
limit – Maximum number of maps to return (optional)
timeout – Request timeout in seconds
- Returns:
List of map statistics with player data
Example
>>> import vlrdevapi as vlr >>> maps = vlr.series.matches(series_id=12345, limit=3) >>> for map_data in maps: ... print(f"Map: {map_data.map_name}") ... for player in map_data.players: ... print(f" {player.name}: {player.acs} ACS")
Functions
info
- vlrdevapi.series.info(match_id: int, timeout: float | None = None) Info | None[source]
Get series information.
- Parameters:
match_id – Match ID
timeout – Request timeout in seconds
- Returns:
Series information or None if not found
Example
>>> import vlrdevapi as vlr >>> info = vlr.series.info(match_id=12345) >>> print(f"{info.teams[0].name} vs {info.teams[1].name}") >>> print(f"Score: {info.score[0]}-{info.score[1]}")
matches
- vlrdevapi.series.matches(series_id: int, limit: int | None = None, timeout: float | None = None) list[MapPlayers][source]
Get detailed match statistics for a series.
- Parameters:
series_id – Series/match ID
limit – Maximum number of maps to return (optional)
timeout – Request timeout in seconds
- Returns:
List of map statistics with player data
Example
>>> import vlrdevapi as vlr >>> maps = vlr.series.matches(series_id=12345, limit=3) >>> for map_data in maps: ... print(f"Map: {map_data.map_name}") ... for player in map_data.players: ... print(f" {player.name}: {player.acs} ACS")
Data Models
TeamInfo
MapAction
Info
- class vlrdevapi.series.Info(match_id: int, teams: tuple[~vlrdevapi.series.models.TeamInfo, ~vlrdevapi.series.models.TeamInfo], score: tuple[int | None, int | None], status_note: str, event: str, event_phase: str, best_of: str | None = None, date: ~datetime.date | None = None, time: ~datetime.time | None = None, patch: str | None = None, map_actions: list[~vlrdevapi.series.models.MapAction] = <factory>, picks: list[~vlrdevapi.series.models.MapAction] = <factory>, bans: list[~vlrdevapi.series.models.MapAction] = <factory>, remaining: str | None = None)[source]
Series information.
- __init__(match_id: int, teams: tuple[~vlrdevapi.series.models.TeamInfo, ~vlrdevapi.series.models.TeamInfo], score: tuple[int | None, int | None], status_note: str, event: str, event_phase: str, best_of: str | None = None, date: ~datetime.date | None = None, time: ~datetime.time | None = None, patch: str | None = None, map_actions: list[~vlrdevapi.series.models.MapAction] = <factory>, picks: list[~vlrdevapi.series.models.MapAction] = <factory>, bans: list[~vlrdevapi.series.models.MapAction] = <factory>, remaining: str | None = None) None
PlayerStats
- class vlrdevapi.series.PlayerStats(name: str, country: str | None = None, team_short: str | None = None, team_id: int | None = None, player_id: int | None = None, agents: list[str] = <factory>, r: float | None = None, acs: int | None = None, k: int | None = None, d: int | None = None, a: int | None = None, kd_diff: int | None = None, kast: float | None = None, adr: float | None = None, hs_pct: float | None = None, fk: int | None = None, fd: int | None = None, fk_diff: int | None = None)[source]
Player statistics in a map.
- __init__(name: str, country: str | None = None, team_short: str | None = None, team_id: int | None = None, player_id: int | None = None, agents: list[str] = <factory>, r: float | None = None, acs: int | None = None, k: int | None = None, d: int | None = None, a: int | None = None, kd_diff: int | None = None, kast: float | None = None, adr: float | None = None, hs_pct: float | None = None, fk: int | None = None, fd: int | None = None, fk_diff: int | None = None) None
MapTeamScore
RoundResult
MapPlayers
- class vlrdevapi.series.MapPlayers(game_id: int | str | None = None, map_name: str | None = None, players: list[PlayerStats] = <factory>, teams: tuple[~vlrdevapi.series.models.MapTeamScore, ~vlrdevapi.series.models.MapTeamScore] | None=None, rounds: list[RoundResult] | None = None)[source]
Map statistics with player data.
- players: list[PlayerStats]
- teams: tuple[MapTeamScore, MapTeamScore] | None = None
- rounds: list[RoundResult] | None = None
Usage Examples
Get Series Information
import vlrdevapi as vlr
# Get match/series info
info = vlr.series.info(match_id=530935)
print(f"{info.teams[0].name} vs {info.teams[1].name}")
print(f"Score: {info.score[0]}-{info.score[1]}")
print(f"Event: {info.event} - {info.event_phase}")
print(f"Format: {info.best_of}")
print(f"Date: {info.date}")
Map Picks and Bans
import vlrdevapi as vlr
info = vlr.series.info(match_id=530935)
# Show map picks
print("Map Picks:")
for pick in info.picks:
print(f" {pick.team} picked {pick.map}")
# Show map bans
print("\nMap Bans:")
for ban in info.bans:
print(f" {ban.team} banned {ban.map}")
Get Detailed Map Statistics
import vlrdevapi as vlr
# Get per-map statistics
maps = vlr.series.matches(series_id=530935)
for i, map_data in enumerate(maps, 1):
print(f"\nMap {i}: {map_data.map_name}")
# Team scores
if map_data.teams:
team1, team2 = map_data.teams
print(f"{team1.name} {team1.score} - {team2.score} {team2.name}")
winner = team1.name if team1.is_winner else team2.name
print(f"Winner: {winner}")
# Player statistics
print("\nPlayer Stats:")
for player in map_data.players:
print(f" {player.name} ({player.team_short})")
print(f" K/D/A: {player.k}/{player.d}/{player.a}")
print(f" Rating: {player.r}, ACS: {player.acs}")
print(f" ADR: {player.adr}, KAST: {player.kast}")
Round-by-Round Results
import vlrdevapi as vlr
maps = vlr.series.matches(series_id=530935)
for map_data in maps:
if map_data.rounds:
print(f"\n{map_data.map_name} - Round Results:")
for round_result in map_data.rounds:
print(f" Round {round_result.number}: {round_result.winner_team_short} ({round_result.method})")
if round_result.score:
print(f" Score: {round_result.score[0]}-{round_result.score[1]}")
Top Performers
import vlrdevapi as vlr
maps = vlr.series.matches(series_id=530935)
for map_data in maps:
# Sort by ACS
sorted_players = sorted(
map_data.players,
key=lambda p: p.acs or 0,
reverse=True
)
print(f"\n{map_data.map_name} - Top 3 Performers:")
for player in sorted_players[:3]:
print(f" {player.name}: {player.acs} ACS, {player.k}/{player.d}/{player.a}")
See more examples: Usage Examples