Skip to content
Live Tennis API Free API key ↗
Menu
Free dataset

Where professional tennis tournaments are played

This map places 660 professional tennis tournaments in 76 countries, each at its host city. That is 74 ATP, 70 WTA, 220 ATP Challenger, 67 WTA 125, 105 ITF men and 124 ITF women, every one seen in a season from 2023 to 2026. The same points are a free GeoJSON file under CC BY 4.0.

Download the GeoJSONHow each point is placed

Show on the map
World map of professional tennis tournaments660 tournaments, each at its host city: 144 ATP and WTA tours, 287 ATP Challenger and WTA 125 and 229 ITF World Tennis Tour. The list of tournaments by country under the map names every one.
Point size and colour show the level. On a computer, hover over a point for the tournaments in that city. On a phone, the map scrolls sideways, and the list by country names every tournament. Land outline from Natural Earth.

What is in each feature?

The file is one GeoJSON FeatureCollection (RFC 7946) of Point features, with longitude and latitude in WGS 84. Each feature has these properties.

The properties of each feature
PropertyWhat it holds
nameThe tournament name, without a week number. A point stands for every week one tour held under that name in that city.
touratp, wta, challenger or itf, the same words as the tour field of our API.
gendermen or women. On the challenger tour, women means WTA 125.
tour_labelA display label: ATP, WTA, ATP Challenger, WTA 125, ITF men or ITF women.
tierThe level the tournament was played at in its latest season, such as grand_slam, atp_500, challenger_75 or itf_w35. Null when we do not know it.
surfacehard, clay or grass. Null when we do not know it.
cityThe host city.
countryThe host country as an ISO 3166-1 alpha-2 code.
time_zoneThe IANA time zone of the host city, such as Europe/Paris.
time_zone_sourcevenue when the zone is the one our match-time tool uses for the venue, geonames when it is the GeoNames zone of the city.
latest_seasonThe latest season the tournament was played in that we hold.
editions_in_latest_seasonHow many weeks the tour held there in the latest season. ITF towns often host several.
precisionAlways city. The point is the city, not the venue.
geonames_idThe GeoNames id of the city the point comes from.
One feature from the current file
{
  "type": "Feature",
  "id": "atp-men-292223-dubai",
  "geometry": {
    "type": "Point",
    "coordinates": [
      55.3093,
      25.0772
    ]
  },
  "properties": {
    "name": "Dubai",
    "tour": "atp",
    "gender": "men",
    "tour_label": "ATP",
    "tier": "atp_500",
    "surface": "hard",
    "city": "Dubai",
    "country": "AE",
    "time_zone": "Asia/Dubai",
    "time_zone_source": "venue",
    "latest_season": 2026,
    "editions_in_latest_season": 1,
    "precision": "city",
    "geonames_id": 292223
  }
}

How is each point placed?

A tournament goes on the map only when we hold its host country and host city. Every country we hold for it has to agree. ITF weeks are named after their town, so for those events the town in the name counts as the city. A main-tour name is never read that way. When a name states a place, the city we hold has to be that place. Qualifying draws and doubles are left out, since they share the main draw's city.

The point is that city's position in GeoNames, looked up within the host country. Sometimes several places in the country share the name. We then take the largest when all the others lie within 30 km of it, as districts of one city do. We also take it when it has at least twenty times the population of the next one. If GeoNames does not know the size of one of the others, the largest also needs 100,000 people. A bigger place elsewhere in the country may also go by that name. Then we cannot tell which one is meant. In those cases the tournament stays off the map. No coordinate is typed in by hand, and no point claims to be the venue.

Of 1,390 tournaments we hold a season for, we could not place 730, so they are not in the file:

The time zone is the one our match-time tool uses for the venue. In a country with more than one clock the tool sometimes does not know it. The feature then takes the zone GeoNames gives the city, and time_zone_source says so.

How do I use the file?

Download it:

curl -O https://livetennisapi.com/data/tennis-tournaments.geojson

The file is served with open CORS, so a web map can load it straight from this address. With Leaflet:

fetch('https://livetennisapi.com/data/tennis-tournaments.geojson')
  .then((r) => r.json())
  .then((data) => L.geoJSON(data).addTo(map));

In Python with GeoPandas:

import geopandas as gpd
gdf = gpd.read_file("https://livetennisapi.com/data/tennis-tournaments.geojson")
print(gdf.groupby("country").size().sort_values().tail())

QGIS, kepler.gl, Mapbox, deck.gl and geojson.io open it as it is. Each response carries an ETag, so a client that polls it only downloads a changed file.

Which countries host the most tournaments?

The most points are in United States (60), France (53), Italy (50), Spain (43) and China (38).

All 76 countries
Points on the map by host country and level
CountryATP and WTAChallenger and WTA 125ITFAll
United States19241760
France12251653
Italy636850
Spain4172243
China13101538
Germany711927
Brazil2121125
United Kingdom88622
Mexico415221
Australia75719
Argentina28818
Japan341017
Portugal28616
Canada46515
Croatia25815
Romania36615
Poland14712
Austria34411
Bulgaria13610
Czechia2439
India2529
Chile1708
Colombia1708
Sweden2248
Switzerland4408
Hungary1056
Kazakhstan2226
Turkey1416
Belgium2035
The Netherlands3205
Tunisia1225
United Arab Emirates3115
Ecuador0314
Egypt0044
Slovenia0134
South Korea1214
Georgia0123
Morocco1023
Pakistan0123
Qatar2013
Singapore1023
Slovakia0213
Uruguay0303
Armenia0022
Bolivia0202
Bosnia and Herzegovina1102
Botswana0022
Finland0202
Greece1102
Hong Kong2002
Moldova0112
New Zealand2002
Paraguay0112
Rwanda0112
Saudi Arabia2002
Serbia1012
South Africa0022
Thailand1012
Andorra0101
Angola0011
Azerbaijan0011
Bahrain0101
Dominican Republic0101
Ireland0011
Ivory Coast0101
Jamaica0101
Lithuania0101
Monaco1001
New Caledonia0101
North Macedonia0101
Peru0101
Philippines0101
Republic of the Congo0101
San Marino0101
Taiwan0101
Vietnam0101

Every tournament on the map

Show all 660 tournaments

Andorra

Angola

Argentina

Armenia

Australia

Austria

Azerbaijan

Bahrain

Belgium

Bolivia

Bosnia and Herzegovina

Botswana

Brazil

Bulgaria

Canada

Chile

China

Colombia

Croatia

Czechia

Dominican Republic

Ecuador

Egypt

Finland

France

Georgia

Germany

Greece

Hong Kong

Hungary

India

Ireland

Italy

Ivory Coast

Jamaica

Japan

Kazakhstan

Lithuania

Mexico

Moldova

Monaco

Morocco

New Caledonia

New Zealand

North Macedonia

Pakistan

Paraguay

Peru

Philippines

Poland

Portugal

Qatar

Republic of the Congo

Romania

Rwanda

San Marino

Saudi Arabia

Serbia

Singapore

Slovakia

Slovenia

South Africa

South Korea

Spain

Sweden

Switzerland

Taiwan

Thailand

The Netherlands

Tunisia

Turkey

United Arab Emirates

United Kingdom

United States

Uruguay

Vietnam

What licence is it under?

CC BY 4.0. You can share and adapt the file, including for commercial use, as long as you credit Live Tennis API and GeoNames. A credit line that works is "Tournament locations: Live Tennis API (livetennisapi.com), city coordinates from GeoNames, CC BY 4.0." Read the licence summary. The city coordinates come from GeoNames, also under CC BY 4.0. The land outline on this page is from Natural Earth, which is in the public domain.

How do I report a wrong point?

Write to hello@livetennisapi.com with the tournament and where it is played. Once the fix is in our data, the file shows it within seven hours.

Need the matches, not just the places? See the historical tennis data API, or the free match times in your time zone.

This map and the file were built on 28 October 2026, and are rebuilt every six hours. The download link always serves the current file.