Skip to main content

MatchDto

The primary object containing all match data, including players, teams, and round results.
matchInfo
MatchInfoDto
required
General information about the match
players
List[PlayerDto]
required
List of all players in the match
coaches
List[CoachDto]
required
List of coaches in the match (for tournament mode)
teams
List[TeamDto]
required
List of teams in the match (typically 2)
roundResults
List[RoundResultDto]
required
Detailed results for each round in the match

MatchlistDto

Contains a player’s match history.
puuid
str
required
The player’s unique identifier
history
List[MatchlistEntryDto]
required
List of match history entries

MatchlistEntryDto

A single entry in a player’s match history.
matchId
str
required
The unique match identifier
gameStartTimeMillis
int
required
Unix timestamp (milliseconds) when the match started
queueId
str
required
The queue type (e.g., “competitive”, “unrated”, “deathmatch”)

RecentMatchesDto

Contains recently completed match IDs for a specific queue.
currentTime
int
required
Current Unix timestamp (milliseconds)
matchIds
List[str]
required
List of recently completed match IDs

MatchInfoDto

General information about a match.
matchId
str
required
The unique match identifier
mapId
str
required
The map identifier
gameLengthMillis
int
required
Total match duration in milliseconds
gameStartMillis
int
required
Unix timestamp (milliseconds) when the match started
provisioningFlowId
str
required
The provisioning flow identifier
isCompleted
bool
required
Whether the match has completed
customGameName
str
required
Name of the custom game (empty string if not a custom game)
queueId
str
required
The queue type identifier
gameMode
str
required
The game mode
isRanked
bool
required
Whether the match is a ranked/competitive match
seasonId
str
required
The season identifier when the match was played

PlayerDto

Contains detailed information about a player in a match.
puuid
str
required
The player’s unique identifier
gameName
str
required
The player’s in-game name
tagLine
str
required
The player’s tag line
teamId
str
required
The team identifier (“Red” or “Blue”)
partyId
str
required
The party identifier (players in the same party share this ID)
characterId
str
required
The agent/character identifier the player used
stats
PlayerStatsDto | None
The player’s overall match statistics
competitiveTier
int
required
The player’s competitive rank tier
isObserver
bool
required
Whether the player was an observer
playerCard
str
required
The player card identifier
playerTitle
str
required
The player title identifier
accountLevel
int
required
The player’s account level

PlayerStatsDto

Overall statistics for a player in a match.
score
int
required
The player’s total score
roundsPlayed
int
required
Number of rounds the player participated in
kills
int
required
Total kills
deaths
int
required
Total deaths
assists
int
required
Total assists
playtimeMillis
int
required
Total playtime in milliseconds
abilityCasts
AbilityCastsDto | None
Ability usage statistics

TeamDto

Information about a team in a match.
teamId
str
required
The team identifier (“Red” or “Blue”)
won
bool
required
Whether the team won the match
roundsPlayed
int
required
Number of rounds played
roundsWon
int
required
Number of rounds won by the team
numPoints
int
required
Total points scored by the team

CoachDto

Information about a coach in a tournament match.
puuid
str
required
The coach’s unique identifier
teamId
str
required
The team the coach belongs to

RoundResultDto

Detailed information about a single round in a match.
roundNum
int
required
The round number (0-indexed)
roundResult
str
required
The result type (e.g., “Eliminated”, “Detonate”)
roundCeremony
str
required
The ceremony type for the round
winningTeam
str
required
The team that won the round (“Red” or “Blue”)
bombPlanter
str | None
PUUID of the player who planted the spike
bombDefuser
str | None
PUUID of the player who defused the spike
plantRoundTime
int | None
Time when spike was planted (milliseconds into round)
plantPlayerLocations
List[PlayerLocationsDto] | None
Player locations at the time of plant
plantLocation
LocationDto | None
Map coordinates where spike was planted
plantSite
str | None
The site where spike was planted (“A”, “B”, or “C”)
defuseRoundTime
int | None
Time when spike was defused (milliseconds into round)
defusePlayerLocations
List[PlayerLocationsDto] | None
Player locations at the time of defuse
defuseLocation
LocationDto | None
Map coordinates where spike was defused
playerStats
List[PlayerRoundStatsDto]
required
Statistics for each player in this round
roundResultCode
str
required
The round result code

PlayerRoundStatsDto

Detailed statistics for a player in a specific round.
puuid
str
required
The player’s unique identifier
kills
List[KillDto]
required
All kills by this player in the round
damage
List[DamageDto]
required
Damage dealt to each opponent
score
int
required
Score earned in this round
economy
EconomyDto
required
Economic information for the round
ability
AbilityDto
required
Ability usage in the round

AbilityCastsDto

Count of ability casts throughout a match.
grenadeCasts
int
required
Number of grenade/C ability casts
ability1Casts
int
required
Number of first ability (Q) casts
ability2Casts
int
required
Number of second ability (E) casts
ultimateCasts
int
required
Number of ultimate (X) casts

AbilityDto

Ability effects and kills in a round.
grenadeEffects
str
required
String representation of grenade/C ability effects
ability1Effects
str
required
String representation of first ability (Q) effects
ability2Effects
str
required
String representation of second ability (E) effects
ultimateEffects
str
required
String representation of ultimate (X) effects

EconomyDto

Economic information for a player in a round.
loadoutValue
int
required
Total value of the player’s loadout
weapon
str
required
The weapon identifier
armor
str
required
The armor identifier
remaining
int
required
Credits remaining after purchases
spent
int
required
Credits spent in the round

KillDto

Detailed information about a kill event.
timeSinceGameStartMillis
int
required
Time since match start (milliseconds)
timeSinceRoundStartMillis
int
required
Time since round start (milliseconds)
killer
str
required
PUUID of the killer
victim
str
required
PUUID of the victim
victimLocation
LocationDto
required
Map coordinates where the victim was killed
assistants
List[str] | None
List of PUUIDs who assisted in the kill
playerLocations
List[PlayerLocationsDto]
required
Locations of all players at the time of the kill
finishingDamage
FinishingDamageDto
required
Information about the damage that secured the kill

DamageDto

Damage dealt to a specific player.
receiver
str
required
PUUID of the player receiving damage
damage
int
required
Total damage dealt
legshots
int
required
Number of leg shots
bodyshots
int
required
Number of body shots
headshots
int
required
Number of head shots

FinishingDamageDto

Information about the final damage that killed a player.
damageType
str
required
The type of damage (e.g., “Weapon”, “Ability”, “Bomb”)
damageItem
str
required
The item or ability that dealt the damage
isSecondaryFireMode
bool
required
Whether the weapon was in secondary fire mode (e.g., right-click)

LocationDto

Represents a 2D coordinate on the map.
x
int
required
X coordinate
y
int
required
Y coordinate

PlayerLocationsDto

A player’s position and view direction at a specific moment.
puuid
str
required
The player’s unique identifier
viewRadians
float
required
The direction the player is facing (in radians)
location
LocationDto
required
The player’s map coordinates

Example Usage

import asyncio
from valaw import Client

async def main():
    client = Client(token="YOUR_API_KEY", cluster="americas")
    
    # Get a match
    match = await client.GET_getMatch("match-id", "na")
    
    # Access match information
    print(f"Map: {match.matchInfo.mapId}")
    print(f"Ranked: {match.matchInfo.isRanked}")
    print(f"Duration: {match.matchInfo.gameLengthMillis / 1000 / 60:.1f} minutes")
    
    # Iterate through players
    for player in match.players:
        if player.stats:
            kda = f"{player.stats.kills}/{player.stats.deaths}/{player.stats.assists}"
            print(f"{player.gameName}#{player.tagLine}: {kda}")
    
    # Check round results
    for round_result in match.roundResults:
        print(f"Round {round_result.roundNum + 1}: {round_result.winningTeam} won")
        if round_result.bombPlanter:
            print(f"  Spike planted by {round_result.bombPlanter}")
    
    await client.close()

asyncio.run(main())

Build docs developers (and LLMs) love