Baselight

Ultimate Soccer Dataset

Players, teams, matches, stats, and so much more from the world of football

@blt.ultimate_soccer_dataset

Loading...
Loading...

About this Dataset

Ultimate Soccer Dataset

The Ultimate Soccer Dataset is a comprehensive, structured collection of global football data compiled by the Baselight team and partners. It includes standardized information on competitions, seasons, matches, teams, players, goals, assists, lineups, transfers, odds, and more — spanning national leagues, international tournaments, and club competitions worldwide.

This dataset is designed to support deep statistical analysis, machine learning models, scouting, and historical research. All data has been normalized across competitions and time to ensure consistency and ease of querying.

We welcome contributions and suggestions — help us expand and refine the dataset further!

Tables

Assist Events

@blt.ultimate_soccer_dataset.assist_events
  • 9.75 MB
  • 146,532 rows
  • 6 columns
Loading...

CREATE TABLE assist_events (
  "match_event_id" VARCHAR,
  "match_id" VARCHAR,
  "player_id" VARCHAR,
  "team_id" VARCHAR,
  "minute" BIGINT,
  "stoppage_time" DOUBLE
);

Competitions

@blt.ultimate_soccer_dataset.competitions
  • 76.03 kB
  • 1,194 rows
  • 7 columns
Loading...

CREATE TABLE competitions (
  "competition_id" VARCHAR,
  "slug" VARCHAR,
  "name" VARCHAR,
  "type" VARCHAR,
  "founded_year" VARCHAR,
  "abolished_year" VARCHAR,
  "country" VARCHAR
);

Goal Events

@blt.ultimate_soccer_dataset.goal_events
  • 16.72 MB
  • 266,026 rows
  • 8 columns
Loading...

CREATE TABLE goal_events (
  "match_event_id" VARCHAR,
  "match_id" VARCHAR,
  "player_id" VARCHAR,
  "team_id" VARCHAR,
  "minute" BIGINT,
  "stoppage_time" DOUBLE,
  "goal_type" VARCHAR,
  "notes" VARCHAR
);

Odds

@blt.ultimate_soccer_dataset.match_betting_odds
  • 246.6 MB
  • 10 rows
  • 7 columns
Loading...

CREATE TABLE match_betting_odds (
  "match_id" VARCHAR,
  "bookmaker" VARCHAR,
  "market" VARCHAR,
  "outcome" VARCHAR,
  "odds" DOUBLE,
  "odds_type" VARCHAR,
  "collected_at" TIMESTAMP
);

Matches

@blt.ultimate_soccer_dataset.matches
  • 6.61 MB
  • 110,674 rows
  • 21 columns
Loading...

CREATE TABLE matches (
  "match_id" VARCHAR,
  "season_id" VARCHAR,
  "date" TIMESTAMP,
  "home_team_id" VARCHAR,
  "away_team_id" VARCHAR,
  "venue_id" VARCHAR,
  "referee_id" VARCHAR,
  "referee_name" VARCHAR,
  "status" VARCHAR,
  "home_score" DOUBLE,
  "away_score" DOUBLE,
  "home_extratime_score" DOUBLE,
  "away_extratime_score" DOUBLE,
  "home_penalty_score" DOUBLE,
  "away_penalty_score" DOUBLE,
  "home_halftime_score" DOUBLE,
  "away_halftime_score" DOUBLE,
  "home_manager_name" VARCHAR,
  "away_manager_name" VARCHAR,
  "home_formation" VARCHAR,
  "away_formation" VARCHAR
);

Match Events

@blt.ultimate_soccer_dataset.match_events
  • 62.43 MB
  • 1,226,649 rows
  • 9 columns
Loading...

CREATE TABLE match_events (
  "match_event_id" VARCHAR,
  "match_id" VARCHAR,
  "minute" BIGINT,
  "stoppage_time" DOUBLE,
  "event_type" VARCHAR,
  "player_id" VARCHAR,
  "team_id" VARCHAR,
  "description" VARCHAR,
  "notes" VARCHAR
);

Match Lineups

@blt.ultimate_soccer_dataset.match_lineups
  • 32.48 MB
  • 3,636,441 rows
  • 6 columns
Loading...

CREATE TABLE match_lineups (
  "match_id" VARCHAR,
  "team_id" VARCHAR,
  "player_id" VARCHAR,
  "is_starting" BOOLEAN,
  "player_number" DOUBLE,
  "position" VARCHAR
);

Match Player Stats

@blt.ultimate_soccer_dataset.match_player_stats
  • 31.66 MB
  • 1,970,663 rows
  • 35 columns
Loading...

CREATE TABLE match_player_stats (
  "match_id" VARCHAR,
  "team_id" VARCHAR,
  "player_id" VARCHAR,
  "player_number" DOUBLE,
  "is_captain" BOOLEAN,
  "is_substitute" BOOLEAN,
  "minutes_played" DOUBLE,
  "position" VARCHAR,
  "rating" VARCHAR,
  "shots_total" DOUBLE,
  "shots_on_target" DOUBLE,
  "goals_scored" DOUBLE,
  "goals_assists" DOUBLE,
  "goals_conceded" DOUBLE,
  "saves" DOUBLE,
  "passes_total" DOUBLE,
  "passes_key" DOUBLE,
  "tackles_total" DOUBLE,
  "tackles_blocks" DOUBLE,
  "tackles_interceptions" DOUBLE,
  "duels_total" DOUBLE,
  "duels_won" DOUBLE,
  "dribbles_attempts" DOUBLE,
  "dribbles_success" DOUBLE,
  "dribbled_past" DOUBLE,
  "fouls_drawn" DOUBLE,
  "fouls_committed" DOUBLE,
  "yellow_cards" BIGINT,
  "red_cards" BIGINT,
  "penalties_won" DOUBLE,
  "penalties_committed" DOUBLE,
  "penalties_scored" BIGINT,
  "penalties_missed" BIGINT,
  "penalties_saved" DOUBLE,
  "offsides" DOUBLE
);

Match Stats

@blt.ultimate_soccer_dataset.match_stats
  • 5.66 MB
  • 1,968,578 rows
  • 4 columns
Loading...

CREATE TABLE match_stats (
  "match_id" VARCHAR,
  "team_id" VARCHAR,
  "type" VARCHAR,
  "value" DOUBLE
);

Players

@blt.ultimate_soccer_dataset.players
  • 9.84 MB
  • 132,611 rows
  • 10 columns
Loading...

CREATE TABLE players (
  "player_id" VARCHAR,
  "name" VARCHAR,
  "full_name" VARCHAR,
  "date_of_birth" VARCHAR,
  "country_of_birth" VARCHAR,
  "city_of_birth" VARCHAR,
  "country_of_citizenship" VARCHAR,
  "positions" VARCHAR,
  "height_cm" VARCHAR,
  "weight_kg" VARCHAR
);

Player Team History

@blt.ultimate_soccer_dataset.player_team_history
  • 6.16 MB
  • 214,614 rows
  • 5 columns
Loading...

CREATE TABLE player_team_history (
  "player_id" VARCHAR,
  "team_id" VARCHAR,
  "competition_id" VARCHAR,
  "season_id" VARCHAR,
  "position" VARCHAR
);

Referees

@blt.ultimate_soccer_dataset.referees
  • 214.94 kB
  • 4,313 rows
  • 4 columns
Loading...

CREATE TABLE referees (
  "referee_id" VARCHAR,
  "name" VARCHAR,
  "nationality" VARCHAR,
  "date_of_birth" VARCHAR
);

Seasons

@blt.ultimate_soccer_dataset.seasons
  • 410.34 kB
  • 7,761 rows
  • 5 columns
Loading...

CREATE TABLE seasons (
  "season_id" VARCHAR,
  "competition_id" VARCHAR,
  "start_date" TIMESTAMP,
  "end_date" TIMESTAMP,
  "season_label" VARCHAR
);

Standings

@blt.ultimate_soccer_dataset.standings
  • 446.95 kB
  • 49,865 rows
  • 25 columns
Loading...

CREATE TABLE standings (
  "snapshot_date" TIMESTAMP,
  "season_id" VARCHAR,
  "team_id" VARCHAR,
  "rank" BIGINT,
  "points" BIGINT,
  "played" BIGINT,
  "wins" DOUBLE,
  "draws" DOUBLE,
  "losses" DOUBLE,
  "goals_for" BIGINT,
  "goals_against" BIGINT,
  "goal_difference" BIGINT,
  "home_wins" DOUBLE,
  "home_draws" DOUBLE,
  "home_losses" DOUBLE,
  "away_wins" DOUBLE,
  "away_draws" DOUBLE,
  "away_losses" DOUBLE,
  "home_goals_for" DOUBLE,
  "home_goals_against" DOUBLE,
  "home_goal_difference" BIGINT,
  "away_goals_for" DOUBLE,
  "away_goals_against" DOUBLE,
  "away_goal_difference" BIGINT,
  "notes" VARCHAR
);

Teams

@blt.ultimate_soccer_dataset.teams
  • 488.34 kB
  • 6,220 rows
  • 6 columns
Loading...

CREATE TABLE teams (
  "team_id" VARCHAR,
  "name" VARCHAR,
  "team_type" VARCHAR,
  "country" VARCHAR,
  "stadium_id" VARCHAR,
  "founded_year" DOUBLE
);

Transfers

@blt.ultimate_soccer_dataset.transfers
  • 29.39 MB
  • 494,748 rows
  • 10 columns
Loading...

CREATE TABLE transfers (
  "transfer_id" VARCHAR,
  "player_id" VARCHAR,
  "from_team_id" VARCHAR,
  "to_team_id" VARCHAR,
  "transfer_date" TIMESTAMP,
  "transfer_type" VARCHAR,
  "transfer_fee" DOUBLE,
  "transfer_fee_currency" VARCHAR,
  "transfer_fee_eur" DOUBLE,
  "last_player_update" TIMESTAMP
);

Venues

@blt.ultimate_soccer_dataset.venues
  • 1.13 MB
  • 13,128 rows
  • 7 columns
Loading...

CREATE TABLE venues (
  "venue_id" VARCHAR,
  "name" VARCHAR,
  "address" VARCHAR,
  "city" VARCHAR,
  "country" VARCHAR,
  "capacity" BIGINT,
  "surface" VARCHAR
);

Share link

Anyone who has the link will be able to view this.