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

Competitions

@blt.ultimate_soccer_dataset.competitions
  • 73.72 KB
  • 1187 rows
  • 7 columns
Loading...

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

Seasons

@blt.ultimate_soccer_dataset.seasons
  • 382.96 KB
  • 7348 rows
  • 5 columns
Loading...

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

Teams

@blt.ultimate_soccer_dataset.teams
  • 461.67 KB
  • 5866 rows
  • 6 columns
Loading...

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

Players

@blt.ultimate_soccer_dataset.players
  • 9.19 MB
  • 129158 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
  • 5.76 MB
  • 209934 rows
  • 5 columns
Loading...

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

Matches

@blt.ultimate_soccer_dataset.matches
  • 5.67 MB
  • 108133 rows
  • 20 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,
  "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
);

Referees

@blt.ultimate_soccer_dataset.referees
  • 23.55 KB
  • 1156 rows
  • 4 columns
Loading...

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

Match Events

@blt.ultimate_soccer_dataset.match_events
  • 57.66 MB
  • 1192149 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
);

Goal Events

@blt.ultimate_soccer_dataset.goal_events
  • 15.56 MB
  • 259314 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
);

Assist Events

@blt.ultimate_soccer_dataset.assist_events
  • 9.07 MB
  • 142973 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
);

Match Stats

@blt.ultimate_soccer_dataset.match_stats
  • 5.24 MB
  • 1912340 rows
  • 4 columns
Loading...

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

Match Player Stats

@blt.ultimate_soccer_dataset.match_player_stats
  • 29.14 MB
  • 1907329 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 Lineups

@blt.ultimate_soccer_dataset.match_lineups
  • 30.12 MB
  • 3554995 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
);

Standings

@blt.ultimate_soccer_dataset.standings
  • 209.62 KB
  • 13903 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
);

Venues

@blt.ultimate_soccer_dataset.venues
  • 1.03 MB
  • 12528 rows
  • 7 columns
Loading...

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

Transfers

@blt.ultimate_soccer_dataset.transfers
  • 26.87 MB
  • 473072 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
);

Odds

@blt.ultimate_soccer_dataset.match_betting_odds
  • 19.66 MB
  • 11886632 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
);

Share link

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