VLRdevAPI

Series Performance

Fetch performance data including kill matrices (all kills, first kills, OP kills) and advanced stats (multi-kills, clutches, eco rating, plants, defuses).

series.performance(series_id, game_id) returns detailed performance data for a game, including kill matrices and advanced statistics.

Signature

series.performance(
    series_id: int,
    game_id: int | str = "all",
) -> PerformanceData

With curried access:

vlrdevapi.series(series_id).performance(game_id: int | str = "all") -> PerformanceData

Parameters

Prop

Type

Returns - PerformanceData

Prop

Type

KillMatrix Fields

Prop

Type

KillMatrix also provides helper methods: lookup(killer, victim), by_killer(name), by_victim(name), by_team(team), killers(), victims().

KillEntry Fields

Prop

Type

AdvStatsEntry Fields

Prop

Type

Each multi-kill and clutch field also has a corresponding _rounds list (e.g., two_k_rounds, one_v1_rounds) containing AdvStatsNotableRound objects with round_number and victims data.

Examples

Kill matrix

The kill matrix shows every kill in the game. Use the KillMatrix helper methods to find specific matchups.

import vlrdevapi

perf = vlrdevapi.series.performance(series_id=670471, game_id=1)

if perf.all_kills_matrix.entries:
    for entry in perf.all_kills_matrix.entries[:5]:
        print(f"{entry.killer} ({entry.killer_team}) killed {entry.victim} ({entry.victim_team})")

    # Find the most common killer-victim pair
    killer = perf.all_kills_matrix.killers()[0] if perf.all_kills_matrix.killers() else None
    if killer:
        victims = perf.all_kills_matrix.by_killer(killer)
        for v in victims[:3]:
            print(f"{killer} killed {v.victim} x {v.kills} times")
else:
    print("(no kill matrix data for this game)")

First kills and OP kills

Access the filtered kill matrices for first kills (opening duel winners) and Operator kills.

import vlrdevapi

perf = vlrdevapi.series.performance(series_id=670471, game_id=1)

print("First kills:")
if perf.first_kills_matrix.entries:
    for entry in perf.first_kills_matrix.entries:
        print(f"  {entry.killer} -> {entry.victim}")
else:
    print("  (no opening duel data)")

print("Operator kills:")
if perf.op_kills_matrix.entries:
    for entry in perf.op_kills_matrix.entries:
        print(f"  {entry.killer} -> {entry.victim}")
else:
    print("  (no OP kill data)")

Advanced stats

Advanced stats show multi-kill rounds, clutch wins, eco rating, plants, and defuses per player.

import vlrdevapi

perf = vlrdevapi.series.performance(series_id=670471, game_id=1)

if not perf.adv_stats:
    print("(no advanced stats available)")
for player in perf.adv_stats:
    print(f"{player.name} ({player.team_short}) - {player.agent}")
    print(f"  2K: {player.two_k} | 3K: {player.three_k} | 4K: {player.four_k} | 5K: {player.five_k}")
    print(f"  1v1: {player.one_v1} | 1v2: {player.one_v2} | 1v3: {player.one_v3}")
    print(f"  Econ: {player.econ} | Plants: {player.pl} | Defuses: {player.de}")

Notable round details

Each multi-kill and clutch stat has a corresponding _rounds list with round numbers and victim details, giving you the exact context of each highlight play.

import vlrdevapi

perf = vlrdevapi.series.performance(series_id=670471, game_id=1)

if not perf.adv_stats:
    print("(no player data for notable rounds)")
for player in perf.adv_stats:
    for round_info in player.four_k_rounds:
        victims = ", ".join(v.name for v in round_info.victims)
        print(f"{player.name} got a 4K in round {round_info.round_number} ({victims})")
    for round_info in player.one_v3_rounds:
        victims = ", ".join(v.name for v in round_info.victims)
        print(f"{player.name} won a 1v3 in round {round_info.round_number} ({victims})")

Curried access

Use the curried pattern to find the player with the most multi-kill rounds.

import vlrdevapi

series = vlrdevapi.series(670471)
perf = series.performance(game_id=1)

if perf.adv_stats:
    top = max(perf.adv_stats, key=lambda p: p.three_k or 0)
    print(f"Most 3K rounds: {top.name} ({top.three_k})")
else:
    print("(no advanced stats to evaluate)")

Last updated on

On this page