Now you can request additional data and/or customized columns!

Try It Now!

ATP World Tour tennis data

sports-data

Files Size Format Created Updated License Source
10 2GB csv zip 5 years ago 5 years ago Creative Commons Attribution 4.0 International License ATP World Tour tennis data
This dataset contains tennis data from the ATP World Tour website. The data is updated annually in October. The data contains ATP tournaments, match scores, match stats, rankings and players overview. The latest available data is for 2017. The dataset has 53 CSV files: ├── 1_tournaments │   └── read more
Download Developers

Data Files

Download files in this dataset

tournaments_1877-2017_unindexed  

Signup to Premium Service for additional or customised data - Get Started

This is a preview version. There might be more data in the original version.

Field information

Field Name Order Type (Format) Description
tourney_year 1 year (default)
tourney_order 2 integer (default)
tourney_name 3 string (default)
tourney_id 4 integer (default)
tourney_slug 5 string (default)
tourney_location 6 string (default)
tourney_dates 7 string (default)
tourney_month 8 integer (default)
tourney_day 9 integer (default)
tourney_singles_draw 10 integer (default)
tourney_doubles_draw 11 integer (default)
tourney_conditions 12 string (default)
tourney_surface 13 string (default)
tourney_fin_commit 14 string (default)
tourney_url_suffix 15 string (default)
singles_winner_name 16 string (default)
singles_winner_url 17 string (default)
singles_winner_player_slug 18 string (default)
singles_winner_player_id 19 string (default)
doubles_winner_1_name 20 string (default)
doubles_winner_1_url 21 string (default)
doubles_winner_1_player_slug 22 string (default)
doubles_winner_1_player_id 23 string (default)
doubles_winner_2_name 24 string (default)
doubles_winner_2_url 25 string (default)
doubles_winner_2_player_slug 26 string (default)
doubles_winner_2_player_id 27 string (default)
tourney_year_id 28 string (default)

match_scores_1877-1967_unindexed  

Signup to Premium Service for additional or customised data - Get Started

This is a preview version. There might be more data in the original version.

Field information

Field Name Order Type (Format) Description
tourney_year_id 1 string (default)
tourney_order 2 integer (default)
tourney_slug 3 string (default)
tourney_url_suffix 4 string (default)
tourney_round_name 5 string (default)
round_order 6 integer (default)
match_order 7 integer (default)
winner_name 8 string (default)
winner_player_id 9 string (default)
winner_slug 10 string (default)
loser_name 11 string (default)
loser_player_id 12 string (default)
loser_slug 13 string (default)
winner_seed 14 string (default)
loser_seed 15 string (default)
match_score_tiebreaks 16 string (default)
winner_sets_won 17 integer (default)
loser_sets_won 18 integer (default)
winner_games_won 19 integer (default)
loser_games_won 20 integer (default)
winner_tiebreaks_won 21 integer (default)
loser_tiebreaks_won 22 integer (default)
match_id 23 string (default)
match_stats_url_suffix 24 string (default)

match_scores_1968-1990_unindexed  

Signup to Premium Service for additional or customised data - Get Started

This is a preview version. There might be more data in the original version.

Field information

Field Name Order Type (Format) Description
tourney_year_id 1 string (default)
tourney_order 2 integer (default)
tourney_slug 3 string (default)
tourney_url_suffix 4 string (default)
tourney_round_name 5 string (default)
round_order 6 integer (default)
match_order 7 integer (default)
winner_name 8 string (default)
winner_player_id 9 string (default)
winner_slug 10 string (default)
loser_name 11 string (default)
loser_player_id 12 string (default)
loser_slug 13 string (default)
winner_seed 14 string (default)
loser_seed 15 string (default)
match_score_tiebreaks 16 string (default)
winner_sets_won 17 integer (default)
loser_sets_won 18 integer (default)
winner_games_won 19 integer (default)
loser_games_won 20 integer (default)
winner_tiebreaks_won 21 integer (default)
loser_tiebreaks_won 22 integer (default)
match_id 23 string (default)
match_stats_url_suffix 24 string (default)

match_scores_1991-2016_unindexed  

Signup to Premium Service for additional or customised data - Get Started

This is a preview version. There might be more data in the original version.

Field information

Field Name Order Type (Format) Description
tourney_year_id 1 string (default)
tourney_order 2 integer (default)
tourney_slug 3 string (default)
tourney_url_suffix 4 string (default)
tourney_round_name 5 string (default)
round_order 6 integer (default)
match_order 7 integer (default)
winner_name 8 string (default)
winner_player_id 9 string (default)
winner_slug 10 string (default)
loser_name 11 string (default)
loser_player_id 12 string (default)
loser_slug 13 string (default)
winner_seed 14 string (default)
loser_seed 15 string (default)
match_score_tiebreaks 16 string (default)
winner_sets_won 17 integer (default)
loser_sets_won 18 integer (default)
winner_games_won 19 integer (default)
loser_games_won 20 integer (default)
winner_tiebreaks_won 21 integer (default)
loser_tiebreaks_won 22 integer (default)
match_id 23 string (default)
match_stats_url_suffix 24 string (default)

match_scores_2017_unindexed  

Signup to Premium Service for additional or customised data - Get Started

This is a preview version. There might be more data in the original version.

Field information

Field Name Order Type (Format) Description
tourney_year_id 1 string (default)
tourney_order 2 integer (default)
tourney_slug 3 string (default)
tourney_url_suffix 4 string (default)
tourney_round_name 5 string (default)
round_order 6 integer (default)
match_order 7 integer (default)
winner_name 8 string (default)
winner_player_id 9 string (default)
winner_slug 10 string (default)
loser_name 11 string (default)
loser_player_id 12 string (default)
loser_slug 13 string (default)
winner_seed 14 string (default)
loser_seed 15 string (default)
match_score_tiebreaks 16 string (default)
winner_sets_won 17 integer (default)
loser_sets_won 18 integer (default)
winner_games_won 19 integer (default)
loser_games_won 20 integer (default)
winner_tiebreaks_won 21 integer (default)
loser_tiebreaks_won 22 integer (default)
match_id 23 string (default)
match_stats_url_suffix 24 string (default)

match_stats_1991-2016_unindexed  

Signup to Premium Service for additional or customised data - Get Started

This is a preview version. There might be more data in the original version.

Field information

Field Name Order Type (Format) Description
tourney_order 1 integer (default)
match_id 2 string (default)
match_stats_url_suffix 3 string (default)
match_time 4 time (%H:%M:%S)
match_duration 5 integer (default)
winner_aces 6 integer (default)
winner_double_faults 7 integer (default)
winner_first_serves_in 8 integer (default)
winner_first_serves_total 9 integer (default)
winner_first_serve_points_won 10 integer (default)
winner_first_serve_points_total 11 integer (default)
winner_second_serve_points_won 12 integer (default)
winner_second_serve_points_total 13 integer (default)
winner_break_points_saved 14 integer (default)
winner_break_points_serve_total 15 integer (default)
winner_service_points_won 16 integer (default)
winner_service_points_total 17 integer (default)
winner_first_serve_return_won 18 integer (default)
winner_first_serve_return_total 19 integer (default)
winner_second_serve_return_won 20 integer (default)
winner_second_serve_return_total 21 integer (default)
winner_break_points_converted 22 integer (default)
winner_break_points_return_total 23 integer (default)
winner_service_games_played 24 integer (default)
winner_return_games_played 25 integer (default)
winner_return_points_won 26 integer (default)
winner_return_points_total 27 integer (default)
winner_total_points_won 28 integer (default)
winner_total_points_total 29 integer (default)
loser_aces 30 integer (default)
loser_double_faults 31 integer (default)
loser_first_serves_in 32 integer (default)
loser_first_serves_total 33 integer (default)
loser_first_serve_points_won 34 integer (default)
loser_first_serve_points_total 35 integer (default)
loser_second_serve_points_won 36 integer (default)
loser_second_serve_points_total 37 integer (default)
loser_break_points_saved 38 integer (default)
loser_break_points_serve_total 39 integer (default)
loser_service_points_won 40 integer (default)
loser_service_points_total 41 integer (default)
loser_first_serve_return_won 42 integer (default)
loser_first_serve_return_total 43 integer (default)
loser_second_serve_return_won 44 integer (default)
loser_second_serve_return_total 45 integer (default)
loser_break_points_converted 46 integer (default)
loser_break_points_return_total 47 integer (default)
loser_service_games_played 48 integer (default)
loser_return_games_played 49 integer (default)
loser_return_points_won 50 integer (default)
loser_return_points_total 51 integer (default)
loser_total_points_won 52 integer (default)
loser_total_points_total 53 integer (default)

match_stats_2017_unindexed  

Signup to Premium Service for additional or customised data - Get Started

This is a preview version. There might be more data in the original version.

Field information

Field Name Order Type (Format) Description
tourney_order 1 integer (default)
match_id 2 string (default)
match_stats_url_suffix 3 string (default)
match_time 4 time (%H:%M:%S)
match_duration 5 integer (default)
winner_aces 6 integer (default)
winner_double_faults 7 integer (default)
winner_first_serves_in 8 integer (default)
winner_first_serves_total 9 integer (default)
winner_first_serve_points_won 10 integer (default)
winner_first_serve_points_total 11 integer (default)
winner_second_serve_points_won 12 integer (default)
winner_second_serve_points_total 13 integer (default)
winner_break_points_saved 14 integer (default)
winner_break_points_serve_total 15 integer (default)
winner_service_points_won 16 integer (default)
winner_service_points_total 17 integer (default)
winner_first_serve_return_won 18 integer (default)
winner_first_serve_return_total 19 integer (default)
winner_second_serve_return_won 20 integer (default)
winner_second_serve_return_total 21 integer (default)
winner_break_points_converted 22 integer (default)
winner_break_points_return_total 23 integer (default)
winner_service_games_played 24 integer (default)
winner_return_games_played 25 integer (default)
winner_return_points_won 26 integer (default)
winner_return_points_total 27 integer (default)
winner_total_points_won 28 integer (default)
winner_total_points_total 29 integer (default)
loser_aces 30 integer (default)
loser_double_faults 31 integer (default)
loser_first_serves_in 32 integer (default)
loser_first_serves_total 33 integer (default)
loser_first_serve_points_won 34 integer (default)
loser_first_serve_points_total 35 integer (default)
loser_second_serve_points_won 36 integer (default)
loser_second_serve_points_total 37 integer (default)
loser_break_points_saved 38 integer (default)
loser_break_points_serve_total 39 integer (default)
loser_service_points_won 40 integer (default)
loser_service_points_total 41 integer (default)
loser_first_serve_return_won 42 integer (default)
loser_first_serve_return_total 43 integer (default)
loser_second_serve_return_won 44 integer (default)
loser_second_serve_return_total 45 integer (default)
loser_break_points_converted 46 integer (default)
loser_break_points_return_total 47 integer (default)
loser_service_games_played 48 integer (default)
loser_return_games_played 49 integer (default)
loser_return_points_won 50 integer (default)
loser_return_points_total 51 integer (default)
loser_total_points_won 52 integer (default)
loser_total_points_total 53 integer (default)

rankings_1973-2017  

Signup to Premium Service for additional or customised data - Get Started

This is a preview version. There might be more data in the original version.

Field information

Field Name Order Type (Format) Description
week_title 1 string (default)
week_year 2 year (default)
week_month 3 integer (default)
week_day 4 integer (default)
rank_text 5 string (default)
rank_number 6 integer (default)
move_positions 7 string (default)
move_direction 8 string (default)
player_age 9 integer (default)
ranking_points 10 integer (default)
tourneys_played 11 integer (default)
player_url 12 string (default)
player_slug 13 string (default)
player_id 14 string (default)

player_overviews_unindexed  

Signup to Premium Service for additional or customised data - Get Started

This is a preview version. There might be more data in the original version.

Field information

Field Name Order Type (Format) Description
player_id 1 string (default)
player_slug 2 string (default)
first_name 3 string (default)
last_name 4 string (default)
player_url 5 string (uri)
flag_code 6 string (default)
residence 7 string (default)
birthplace 8 string (default)
birthdate 9 string (default)
birth_year 10 year (default)
birth_month 11 number (default)
birth_day 12 number (default)
turned_pro 13 integer (default)
weight_lbs 14 integer (default)
weight_kg 15 integer (default)
height_ft 16 string (default)
height_inches 17 integer (default)
height_cm 18 integer (default)
handedness 19 string (default)
backhand 20 string (default)

Integrate this dataset into your favourite tool

Use our data-cli tool designed for data wranglers:

data get https://datahub.io/sports-data/atp-world-tour-tennis-data
data info sports-data/atp-world-tour-tennis-data
tree sports-data/atp-world-tour-tennis-data
# Get a list of dataset's resources
curl -L -s https://datahub.io/sports-data/atp-world-tour-tennis-data/datapackage.json | grep path

# Get resources

curl -L https://datahub.io/sports-data/atp-world-tour-tennis-data/r/0.csv

curl -L https://datahub.io/sports-data/atp-world-tour-tennis-data/r/1.csv

curl -L https://datahub.io/sports-data/atp-world-tour-tennis-data/r/2.csv

curl -L https://datahub.io/sports-data/atp-world-tour-tennis-data/r/3.csv

curl -L https://datahub.io/sports-data/atp-world-tour-tennis-data/r/4.csv

curl -L https://datahub.io/sports-data/atp-world-tour-tennis-data/r/5.csv

curl -L https://datahub.io/sports-data/atp-world-tour-tennis-data/r/6.csv

curl -L https://datahub.io/sports-data/atp-world-tour-tennis-data/r/7.csv

curl -L https://datahub.io/sports-data/atp-world-tour-tennis-data/r/8.csv

curl -L https://datahub.io/sports-data/atp-world-tour-tennis-data/r/9.zip

If you are using R here's how to get the data you want quickly loaded:

install.packages("jsonlite", repos="https://cran.rstudio.com/")
library("jsonlite")

json_file <- 'https://datahub.io/sports-data/atp-world-tour-tennis-data/datapackage.json'
json_data <- fromJSON(paste(readLines(json_file), collapse=""))

# get list of all resources:
print(json_data$resources$name)

# print all tabular data(if exists any)
for(i in 1:length(json_data$resources$datahub$type)){
  if(json_data$resources$datahub$type[i]=='derived/csv'){
    path_to_file = json_data$resources$path[i]
    data <- read.csv(url(path_to_file))
    print(data)
  }
}

Note: You might need to run the script with root permissions if you are running on Linux machine

Install the Frictionless Data data package library and the pandas itself:

pip install datapackage
pip install pandas

Now you can use the datapackage in the Pandas:

import datapackage
import pandas as pd

data_url = 'https://datahub.io/sports-data/atp-world-tour-tennis-data/datapackage.json'

# to load Data Package into storage
package = datapackage.Package(data_url)

# to load only tabular data
resources = package.resources
for resource in resources:
    if resource.tabular:
        data = pd.read_csv(resource.descriptor['path'])
        print (data)

For Python, first install the `datapackage` library (all the datasets on DataHub are Data Packages):

pip install datapackage

To get Data Package into your Python environment, run following code:

from datapackage import Package

package = Package('https://datahub.io/sports-data/atp-world-tour-tennis-data/datapackage.json')

# print list of all resources:
print(package.resource_names)

# print processed tabular data (if exists any)
for resource in package.resources:
    if resource.descriptor['datahub']['type'] == 'derived/csv':
        print(resource.read())

If you are using JavaScript, please, follow instructions below:

Install data.js module using npm:

  $ npm install data.js

Once the package is installed, use the following code snippet:

const {Dataset} = require('data.js')

const path = 'https://datahub.io/sports-data/atp-world-tour-tennis-data/datapackage.json'

// We're using self-invoking function here as we want to use async-await syntax:
;(async () => {
  const dataset = await Dataset.load(path)
  // get list of all resources:
  for (const id in dataset.resources) {
    console.log(dataset.resources[id]._descriptor.name)
  }
  // get all tabular data(if exists any)
  for (const id in dataset.resources) {
    if (dataset.resources[id]._descriptor.format === "csv") {
      const file = dataset.resources[id]
      // Get a raw stream
      const stream = await file.stream()
      // entire file as a buffer (be careful with large files!)
      const buffer = await file.buffer
      // print data
      stream.pipe(process.stdout)
    }
  }
})()

Read me

This dataset contains tennis data from the ATP World Tour website. The data is updated annually in October. The data contains ATP tournaments, match scores, match stats, rankings and players overview. The latest available data is for 2017.

The dataset has 53 CSV files:

├── 1_tournaments
│   └── tournaments_1877-2017_UNINDEXED.csv
├── 2_match_scores
│   ├── match_scores_1877-1967_UNINDEXED.csv
│   ├── match_scores_1968-1990_UNINDEXED.csv
│   ├── match_scores_1991-2016_UNINDEXED.csv
│   └── match_scores_2017_UNINDEXED.csv
├── 3_match_stats
│   ├── match_stats_1991-2016_UNINDEXED.csv
│   └── match_stats_2017_UNINDEXED.csv
├── 4_rankings
│   ├── rankings_1973.csv
│   ├── rankings_1974.csv
│   ├── rankings_1975.csv
│   ├── rankings_1976.csv
│   ├── rankings_1977.csv
│   ├── rankings_1978.csv
│   ├── rankings_1979.csv
│   ├── rankings_1980.csv
│   ├── rankings_1981.csv
│   ├── rankings_1982.csv
│   ├── rankings_1983.csv
│   ├── rankings_1984.csv
│   ├── rankings_1985.csv
│   ├── rankings_1986.csv
│   ├── rankings_1987.csv
│   ├── rankings_1988.csv
│   ├── rankings_1989.csv
│   ├── rankings_1990.csv
│   ├── rankings_1991.csv
│   ├── rankings_1992.csv
│   ├── rankings_1993.csv
│   ├── rankings_1994.csv
│   ├── rankings_1995.csv
│   ├── rankings_1996.csv
│   ├── rankings_1997.csv
│   ├── rankings_1998.csv
│   ├── rankings_1999.csv
│   ├── rankings_2000.csv
│   ├── rankings_2001.csv
│   ├── rankings_2002.csv
│   ├── rankings_2003.csv
│   ├── rankings_2004.csv
│   ├── rankings_2005.csv
│   ├── rankings_2006.csv
│   ├── rankings_2007.csv
│   ├── rankings_2008.csv
│   ├── rankings_2009.csv
│   ├── rankings_2010.csv
│   ├── rankings_2011.csv
│   ├── rankings_2012.csv
│   ├── rankings_2013.csv
│   ├── rankings_2014.csv
│   ├── rankings_2015.csv
│   ├── rankings_2016.csv
│   └── rankings_2017.csv
└── 5_players
    └── player_overviews_UNINDEXED.csv

Source

Original source: https://github.com/serve-and-volley/atp-world-tour-tennis-data Our fork: https://github.com/anuveyatsu/atp-world-tour-tennis-data

License

Creative Commons License
This work is licensed under a Creative Commons Attribution 4.0 International License.

Datapackage.json

Request Customized Data


Notifications of data updates and schema changes

Warranty / guaranteed updates

Workflow integration (e.g. Python packages, NPM packages)

Customized data (e.g. you need different or additional data)

Or suggest your own feature from the link below