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.66 KB
  • 1186 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
  • 378.36 KB
  • 7246 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
  • 433.52 KB
  • 5522 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
  • 8.53 MB
  • 120060 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.26 MB
  • 188978 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
  • 4.86 MB
  • 95041 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
  • 21.76 KB
  • 1058 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
  • 51.09 MB
  • 1057302 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
  • 14.12 MB
  • 235928 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
  • 8.21 MB
  • 130109 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
  • 4.56 MB
  • 1672664 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
  • 25.02 MB
  • 1646906 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
  • 25.88 MB
  • 3164565 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
  • 139.3 KB
  • 6931 rows
  • 25 columns
Loading...

CREATE TABLE standings (
  "snapshot_date" TIMESTAMP,
  "season_id" VARCHAR,
  "team_id" VARCHAR,
  "rank" BIGINT,
  "points" BIGINT,
  "played" BIGINT,
  "wins" BIGINT,
  "draws" BIGINT,
  "losses" BIGINT,
  "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
  • 12519 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
  • 23.16 MB
  • 404426 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
  • 6.92 MB
  • 3583620 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.