VLRdevAPI

Player Placements

Fetch a player's event placements and total prize winnings from vlr.gg.

player.placements(player_id) returns the player's event placement history and total winnings from the Event Placements card on their profile page.

Signature

player.placements(player_id: int) -> PlayerPlacements

With curried access:

vlrdevapi.player(player_id).placements() -> PlayerPlacements

Parameters

Prop

Type

Returns - PlayerPlacements

Prop

Type

PlayerEventPlacement Fields

Prop

Type

Examples

List all placements

import vlrdevapi

placements = vlrdevapi.player.placements(player_id=46051)

print(
    f"{placements.total_winnings_currency}"
    f"{placements.total_winnings:,} total winnings"
)
for entry in placements.placements:
    prize = (
        f"{entry.prize_currency}{entry.prize_amount:,}"
        if entry.prize_amount is not None
        else "no prize"
    )
    print(
        f"{entry.year} | {entry.event_name} | "
        f"{entry.stage} - {entry.placement} | {entry.team_name} | {prize}"
    )

Group placements by event

An event can have multiple placement rows (for example, a group stage and playoffs run). Group them by event_id.

from collections import defaultdict

import vlrdevapi

result = vlrdevapi.player.placements(player_id=11225)
events = defaultdict(list)

for entry in result.placements:
    events[(entry.event_id, entry.event_name)].append(entry)

for (event_id, event_name), rows in events.items():
    print(f"{event_name} ({event_id})")
    for row in rows:
        print(f"  {row.stage}: {row.placement} ({row.team_name})")

Filter by team

import vlrdevapi

placements = vlrdevapi.player.placements(player_id=53)

for entry in placements.placements:
    if entry.team_name == "ENVY":
        print(f"{entry.event_name}: {entry.stage} {entry.placement}")

Curried access

import vlrdevapi

player = vlrdevapi.player(46051)
placements = player.placements()

for entry in placements.placements:
    if entry.prize_amount:
        print(f"{entry.event_name}: {entry.prize_currency}{entry.prize_amount:,}")

Notes

  • Placements are individual rows; an event with multiple stages produces multiple PlayerEventPlacement entries with the same event_id.
  • prize_amount is None when the source does not list a prize for that placement.
  • total_winnings can be 0 when a player has placements but has not earned prize money.

Last updated on

On this page