Skip to main content

Data Structure

Structure and list of collected data

# Open Data Portal

Want to explore or download our data directly? Check out our Open Data portal.

Visit Open Data Portal

Players & Teams Structure

01. Players

  • Main Information
    id
    handle
  • Additional Information
    first_name
    last_name
    country_code
    bio
    socials
    vlr_id
    liquipedia_link
  • Confidential Information
    discord_id
    val_id

Link

Player_Team
  • player_id
    team_id
    role
    joined_at
    left_at

02. Teams

  • Main Information
    id
    name
  • Additional Information
    country_code
    website
    socials
    bio
    vlr_id
    liquipedia_link

Each team/player must have a name and an identifier; other information is added by the team/player or by administrators via tournament data.
Players/teams have the right to modify/delete 'Additional Information'.

The val_id and discord_id are not displayed or shared. They are provided by the player via Discord.

Tournaments Structure

03. Tournaments

  • Main Information
    id
    name
    region
    category
    status
  • Additional Information
    prize_pool
    location
    start_date
    end_date
    vlr_id
    liquipedia_link

04. Tournament_phases

  • Technical Structure
    name
    format
    order
    parent_id

Participants

Tournament_Teams

List of teams registered for the event

Each tournament must have an identifier, a name, dates, a region, a category, and a status. They are collected by our team or upon request during a tournament addition request.

Matches Structure

05. Matches

id
tournament_id
phase_id
round_number
round_name
match_order
team_a_id
team_b_id
scheduled_at
status
team_a_score
team_b_score
best_of
patch

06. Match_Vetos

id
match_id
team_id
map_name
type
order

07. Game_Maps

id
api_match_id
match_id
map_name
team_a_score
team_b_score
order
is_completed

08. Game_Player_Stats

id
match_id
game_map_id
player_id
team_id
agent_name
kills
deaths
assists
acs
adr
kast_percentage
first_kills
first_deaths
headshot_percentage

09. Game_Player_Advanced_Stats

id
game_map_id
player_id
agent_name
clutch_1v1_won
clutch_1v1_total
clutch_1v2_won
clutch_1v2_total
clutch_1v3_won
clutch_1v3_total
clutch_1v4_won
clutch_1v4_total
clutch_1v5_won
clutch_1v5_total
multikill_2k
multikill_3k
multikill_4k
multikill_5k
trade_kills
traded_deaths
plants
defuses
pistol_won
pistol_played
eco_won
eco_played
force_won
force_played
full_buy_won
full_buy_played
post_plant_won
post_plant_played
atk_rounds
atk_rounds_won
atk_kills
atk_kast_percentage
def_rounds
def_rounds_won
def_kills
def_kast_percentage

10. Game_Map_Rounds

id
game_map_id
round_number
winning_team
win_type
atk_team
def_team
plant_site
plant_x
plant_y

11. Game_Map_Round_Player_Stats

id
game_map_round_id
player_id
team_id
kills
assists
score
economy_spent
economy_remaining
weapon_id
armor

12. Game_Map_Round_Kills

game_map_round_id
killer_player_id
victim_player_id
assistant_player_ids
time_ms
weapon
damage_type
is_secondary_fire

13. Game_Map_Round_Damages

game_map_round_id
attacker_player_id
receiver_player_id
damage
headshots
bodyshots
legshots

14. Game_Map_Round_Alive_States

game_map_round_id
sequence
time_ms
atk_alive
def_alive
winner_side

15. Game_Map_Round_Player_Positions

game_map_round_id
event_type
game_map_round_kill_id
player_id
role
x
y
view_radians
time_ms

We collect a lot of match information to provide detailed statistics. We retrieve:
- Basic match information (Mandatory)
- Match vetos
- Played maps, with results, stats and advanced stats (in a separate maps dataset, referenced by map id)
- Each round's result (Who wins, and how)
- Each player's stats per round (KDA/Economy/Weapon/Armor/etc)

These stats are not always collected, but we strive to obtain them to display the most complete statistics possible.

News Structure

16. News

  • Main Information
    id
    author
    title
    content
  • Additional Information
    status
    is_featured
    published_at

Link

news_relations
  • Link between news and a tournament/team/player, allows display on profile.

Each news item must have an identifier, a title, content, and an author.

The status is hidden but allows for display (Draft = In progress, Published = Visible on site, Archived = Hidden on site but accessible via API).

User Accounts & Moderation

17. Users

  • Main Information
    id
    username
    team_tag
    preferences
  • Security (private)
    email
    password
    two_factor_secret
    two_factor_recovery_codes
    discord_synced_at

18. Social_Accounts & Passkeys

user_id
provider
provider_id
nickname
avatar
token
refresh_token
token_expires_at
name
credential_id
last_used_at

19. Sanctions & Sanction_Identities

type
reason
starts_at
ends_at
revoked_at
issued_by
revoked_by
identity_type
identity_value

20. User_Reports & Activity_Log

reporter_id
reported_user_id
category
reason
status
reviewed_by
resolution_note
log_name
description
event
attribute_changes
causer
subject

21. Reactions & Emotes

emote_id
user_id
reactable
name
image_path
source
is_active

These tables only exist for people who have created a user account (distinct from a player profile), needed to react to news, manage a profile, or administer the site.

Security data (password, 2FA, passkeys) is never shared. Linked Discord/Twitter/Twitch accounts store an access token used solely for authentication.

Moderation data (sanctions, ban-evasion fingerprints, reports, activity log) forms a safety record kept independently of the account, including after its deletion, to prevent ban evasion.

Other Data Structure

22. Page_views

  • Main Information
    uri
    viewed_at
    count

We store the number of visits per page per hour; we do not store who visited, from which region, or the exact time.

This data is stored and private. It is never shared; we use it to visualize site usage and adapt our infrastructure as needed.