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
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.
| Property | What it holds |
|---|---|
name | The tournament name, without a week number. A point stands for every week one tour held under that name in that city. |
tour | atp, wta, challenger or itf, the same words as the tour field of our API. |
gender | men or women. On the challenger tour, women means WTA 125. |
tour_label | A display label: ATP, WTA, ATP Challenger, WTA 125, ITF men or ITF women. |
tier | The 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. |
surface | hard, clay or grass. Null when we do not know it. |
city | The host city. |
country | The host country as an ISO 3166-1 alpha-2 code. |
time_zone | The IANA time zone of the host city, such as Europe/Paris. |
time_zone_source | venue 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_season | The latest season the tournament was played in that we hold. |
editions_in_latest_season | How many weeks the tour held there in the latest season. ITF towns often host several. |
precision | Always city. The point is the city, not the venue. |
geonames_id | The 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:
- 639: we hold no host country for them.
- 1: the countries we hold for them disagree.
- 50: GeoNames has no place by that name in that country.
- 40: several places in that country share the name and none clearly outweighs the others.
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
| Country | ATP and WTA | Challenger and WTA 125 | ITF | All |
|---|---|---|---|---|
| United States | 19 | 24 | 17 | 60 |
| France | 12 | 25 | 16 | 53 |
| Italy | 6 | 36 | 8 | 50 |
| Spain | 4 | 17 | 22 | 43 |
| China | 13 | 10 | 15 | 38 |
| Germany | 7 | 11 | 9 | 27 |
| Brazil | 2 | 12 | 11 | 25 |
| United Kingdom | 8 | 8 | 6 | 22 |
| Mexico | 4 | 15 | 2 | 21 |
| Australia | 7 | 5 | 7 | 19 |
| Argentina | 2 | 8 | 8 | 18 |
| Japan | 3 | 4 | 10 | 17 |
| Portugal | 2 | 8 | 6 | 16 |
| Canada | 4 | 6 | 5 | 15 |
| Croatia | 2 | 5 | 8 | 15 |
| Romania | 3 | 6 | 6 | 15 |
| Poland | 1 | 4 | 7 | 12 |
| Austria | 3 | 4 | 4 | 11 |
| Bulgaria | 1 | 3 | 6 | 10 |
| Czechia | 2 | 4 | 3 | 9 |
| India | 2 | 5 | 2 | 9 |
| Chile | 1 | 7 | 0 | 8 |
| Colombia | 1 | 7 | 0 | 8 |
| Sweden | 2 | 2 | 4 | 8 |
| Switzerland | 4 | 4 | 0 | 8 |
| Hungary | 1 | 0 | 5 | 6 |
| Kazakhstan | 2 | 2 | 2 | 6 |
| Turkey | 1 | 4 | 1 | 6 |
| Belgium | 2 | 0 | 3 | 5 |
| The Netherlands | 3 | 2 | 0 | 5 |
| Tunisia | 1 | 2 | 2 | 5 |
| United Arab Emirates | 3 | 1 | 1 | 5 |
| Ecuador | 0 | 3 | 1 | 4 |
| Egypt | 0 | 0 | 4 | 4 |
| Slovenia | 0 | 1 | 3 | 4 |
| South Korea | 1 | 2 | 1 | 4 |
| Georgia | 0 | 1 | 2 | 3 |
| Morocco | 1 | 0 | 2 | 3 |
| Pakistan | 0 | 1 | 2 | 3 |
| Qatar | 2 | 0 | 1 | 3 |
| Singapore | 1 | 0 | 2 | 3 |
| Slovakia | 0 | 2 | 1 | 3 |
| Uruguay | 0 | 3 | 0 | 3 |
| Armenia | 0 | 0 | 2 | 2 |
| Bolivia | 0 | 2 | 0 | 2 |
| Bosnia and Herzegovina | 1 | 1 | 0 | 2 |
| Botswana | 0 | 0 | 2 | 2 |
| Finland | 0 | 2 | 0 | 2 |
| Greece | 1 | 1 | 0 | 2 |
| Hong Kong | 2 | 0 | 0 | 2 |
| Moldova | 0 | 1 | 1 | 2 |
| New Zealand | 2 | 0 | 0 | 2 |
| Paraguay | 0 | 1 | 1 | 2 |
| Rwanda | 0 | 1 | 1 | 2 |
| Saudi Arabia | 2 | 0 | 0 | 2 |
| Serbia | 1 | 0 | 1 | 2 |
| South Africa | 0 | 0 | 2 | 2 |
| Thailand | 1 | 0 | 1 | 2 |
| Andorra | 0 | 1 | 0 | 1 |
| Angola | 0 | 0 | 1 | 1 |
| Azerbaijan | 0 | 0 | 1 | 1 |
| Bahrain | 0 | 1 | 0 | 1 |
| Dominican Republic | 0 | 1 | 0 | 1 |
| Ireland | 0 | 0 | 1 | 1 |
| Ivory Coast | 0 | 1 | 0 | 1 |
| Jamaica | 0 | 1 | 0 | 1 |
| Lithuania | 0 | 1 | 0 | 1 |
| Monaco | 1 | 0 | 0 | 1 |
| New Caledonia | 0 | 1 | 0 | 1 |
| North Macedonia | 0 | 1 | 0 | 1 |
| Peru | 0 | 1 | 0 | 1 |
| Philippines | 0 | 1 | 0 | 1 |
| Republic of the Congo | 0 | 1 | 0 | 1 |
| San Marino | 0 | 1 | 0 | 1 |
| Taiwan | 0 | 1 | 0 | 1 |
| Vietnam | 0 | 1 | 0 | 1 |
Every tournament on the map
Show all 660 tournaments
Andorra
- Andorra: Andorra (WTA 125)
Angola
- Luanda: M25 Luanda (ITF men)
Argentina
- Buenos Aires: Buenos Aires (ATP)
- Buenos Aires: Buenos Aires (ATP Challenger, 2 weeks)
- Buenos Aires: Buenos Aires (WTA 125)
- Buenos Aires: W50 Buenos Aires +H (ITF women, 2 weeks)
- Cipolletti: W15 Cipolletti (ITF women)
- Cordoba: Cordoba (ATP)
- Cordoba: Cordoba (ATP Challenger)
- Mar del Plata: M15 Mar Del Plata (ITF men)
- Neuquén: W35 Neuquen (ITF women)
- Rosario: Rosario (ATP Challenger)
- San Miguel de Tucuman: San Miguel de Tucuman (ATP Challenger)
- Santa Fe: Santa Fe (ATP Challenger)
- Tigre: Tigre (ATP Challenger, 2 weeks)
- Trelew: M15 Trelew (ITF men)
- Trelew: W15 Trelew (ITF women)
- Villa Constitución: M15 Villa Constitucion (ITF men)
- Villa María: M25 Villa Maria (ITF men)
- Villa Maria: Villa Maria (ATP Challenger)
Armenia
- Tsaghkadzor: M15 Tsaghkadzor (ITF men, 4 weeks)
- Tsaghkadzor: W15 Tsaghkadzor (ITF women, 2 weeks)
Australia
- Adelaide: Adelaide (ATP)
- Adelaide: Adelaide (WTA)
- Brisbane: Brisbane (ATP)
- Brisbane: Brisbane (ATP Challenger, 2 weeks)
- Brisbane: Brisbane (WTA)
- Brisbane: M15 Brisbane (ITF men, 3 weeks)
- Brisbane: W15 Brisbane (ITF women, 5 weeks)
- Burnie: Burnie (ATP Challenger, 2 weeks)
- Canberra: Canberra (ATP Challenger)
- Canberra: Canberra (WTA 125)
- Darwin: M25 Darwin (ITF men, 2 weeks)
- Darwin: W35 Darwin (ITF women, 2 weeks)
- Hobart: Hobart (WTA)
- Melbourne: Australian Open (ATP)
- Melbourne: Australian Open (WTA)
- Sydney: Sydney (ATP Challenger)
- Sydney: W75 Sydney (ITF women)
- Tamworth: M25 Tamworth (ITF men, 2 weeks)
- Wagga Wagga: W35 Wagga Wagga (ITF women, 2 weeks)
Austria
- Amstetten: W100 Amstetten (ITF women)
- Bad Waltersdorf: Bad Waltersdorf (ATP Challenger)
- Kitzbuhel: Kitzbuhel (ATP)
- Klagenfurt am Wörthersee: W15 Klagenfurt (ITF women)
- Linz: Linz (WTA)
- Mauthausen: Mauthausen (ATP Challenger)
- Salzburg: Salzburg (ATP Challenger)
- Tulln: Tulln (ATP Challenger)
- Vienna: M15 Vienna (ITF men)
- Vienna: Vienna (ATP)
- Vienna: W75 Vienna (ITF women)
Azerbaijan
- Baku: M15 Baku (ITF men, 2 weeks)
Bahrain
- Manama: Manama (ATP Challenger)
Belgium
- Antwerp: Antwerp (ATP)
- Brussels: Brussels (ATP)
- Knokke-Heist: W50 Knokke-Heist (ITF women)
- Koksijde: W75 Koksijde (ITF women)
- Nivelles: M25 Nivelles (ITF men)
Bolivia
- Santa Cruz: Santa Cruz (ATP Challenger, 2 weeks)
- Santa Cruz: Santa Cruz (WTA 125)
Bosnia and Herzegovina
- Banja Luka: Banja Luka (ATP)
- Banja Luka: Banja Luka (ATP Challenger)
Botswana
- Gaborone: M15 Gaborone (ITF men, 2 weeks)
- Gaborone: W15 Gaborone (ITF women, 2 weeks)
Brazil
- Barueri: W35 Barueri (ITF women)
- Belém: M15 Belem (ITF men)
- Belém: W15 Belem (ITF women)
- Brasilia: Brasilia (ATP Challenger)
- Brasília: W15 Brasilia (ITF women)
- Campinas: Campinas (ATP Challenger)
- Campos do Jordão: W15 Campos Do Jordao (ITF women, 2 weeks)
- Curitiba: Curitiba (ATP Challenger)
- Curitiba: M15 Curitiba (ITF men)
- Florianopolis: Florianopolis (ATP Challenger)
- Florianopolis: Florianopolis (WTA 125)
- Itajai: Itajai (ATP Challenger)
- Maringá: M15 Maringa (ITF men, 2 weeks)
- Piracicaba: Piracicaba (ATP Challenger)
- Porto Alegre: Porto Alegre (ATP Challenger)
- Porto Velho: M15 Porto Velho (ITF men)
- Porto Velho: W15 Porto Velho (ITF women)
- Rio de Janeiro: M25 Rio de Janeiro (ITF men)
- Rio de Janeiro: Rio de Janeiro (ATP)
- Rio de Janeiro: Rio de Janeiro (WTA 125)
- Santos: Santos (ATP Challenger)
- Sao Leopoldo: Sao Leopoldo (ATP Challenger)
- São Luís: W15 Sao Luis (ITF women)
- Sao Paulo: Sao Paulo (ATP Challenger)
- Sao Paulo: Sao Paulo (WTA)
Bulgaria
- Burgas: M15 Burgas (ITF men)
- Burgas: W50 Burgas (ITF women)
- Dobrich: Dobrich (ATP Challenger, 2 weeks)
- Haskovo: W50 Haskovo (ITF women)
- Pazardzhik: W50 Pazardzhik (ITF women)
- Plovdiv: Plovdiv (ATP Challenger)
- Plovdiv: W50 Plovdiv (ITF women)
- Sofia: Sofia (ATP)
- Sofia: Sofia (ATP Challenger, 2 weeks)
- Varna: W15 Varna (ITF women)
Canada
- Calgary: Calgary (ATP Challenger)
- Drummondville: Drummondville (ATP Challenger)
- Granby: Granby (ATP Challenger)
- Montreal: M15 Montreal (ITF men, 2 weeks)
- Montreal: Montreal (ATP)
- Montreal: Montreal (WTA)
- Montreal: W15 Montreal (ITF women)
- Québec: W35 Quebec City (ITF women)
- Saguenay: W75 Saguenay (ITF women)
- Toronto: Toronto (ATP)
- Toronto: Toronto (WTA)
- Toronto: W75 Toronto (ITF women)
- Vancouver: Vancouver (ATP Challenger)
- Vancouver: Vancouver (WTA 125)
- Winnipeg: Winnipeg (ATP Challenger)
Chile
- Antofagasta: Antofagasta (ATP Challenger)
- Colina: Colina (WTA 125)
- Concepcion: Concepcion (ATP Challenger)
- Coquimbo: Coquimbo (ATP Challenger)
- Santiago: Santiago (ATP)
- Santiago: Santiago (ATP Challenger)
- Temuco: Temuco (ATP Challenger)
- Vina del Mar: Vina Del Mar (ATP Challenger)
China
- Anning: W35 Anning (ITF women)
- Baotou: W50 Baotou (ITF women)
- Beijing: Beijing (ATP)
- Beijing: Beijing (WTA)
- Chengdu: Chengdu (ATP)
- Guangzhou: Guangzhou (ATP Challenger)
- Guangzhou: Guangzhou (WTA)
- Guiyang: M25 Guiyang (ITF men)
- Guiyang: W50 Guiyang (ITF women)
- Hangzhou: Hangzhou (ATP)
- Hangzhou: Hangzhou (ATP Challenger)
- Huzhou: Huzhou (WTA 125)
- Jinan: Jinan (ATP Challenger)
- Jinan: Jinan (WTA 125)
- Jiujiang: Jiujiang (WTA)
- Kunshan: W35 Kunshan (ITF women)
- Lu’an: M15 Luan (ITF men, 5 weeks)
- Lu’an: W100 Luan (ITF women, 5 weeks)
- Ma’anshan: M25 Maanshan (ITF men, 6 weeks)
- Ma’anshan: W15 Maanshan (ITF women, 6 weeks)
- Nanchang: Nanchang (WTA)
- Ningbo: Ningbo (WTA)
- Shanghai: Shanghai (ATP)
- Shanghai: Shanghai (ATP Challenger)
- Shenyang: W35 Shenyang (ITF women)
- Shenzhen: M25 Shenzhen (ITF men)
- Shenzhen: Shenzhen (ATP Challenger)
- Shenzhen: W15 Shenzhen (ITF women)
- Tianjin: W75 Tianjin (ITF women)
- Wuhan: Wuhan (WTA)
- Wuxi: Wuxi (ATP Challenger)
- Yinchuan: M25 Yinchuan (ITF men)
- Zhangjiagang: Zhangjiagang (ATP Challenger)
- Zhengzhou: W35 Zhengzhou (ITF women)
- Zhengzhou: Zhengzhou (WTA)
- Zhuhai: Zhuhai (ATP)
- Zhuhai: Zhuhai (ATP Challenger)
- Zhuhai: Zhuhai (WTA)
Colombia
- Barranquilla: Barranquilla (ATP Challenger)
- Barranquilla: Barranquilla (WTA 125)
- Bogota: Bogota (ATP Challenger)
- Bogota: Bogota (WTA)
- Cali: Cali (ATP Challenger)
- Cali: Cali (WTA 125)
- Ibague: Ibague (ATP Challenger)
- Medellin: Medellin (ATP Challenger)
Croatia
- Bol: M25 Bol (ITF men, 3 weeks)
- Bol: W35 Bol (ITF women, 3 weeks)
- Dubrovnik: Dubrovnik (WTA 125)
- Makarska: Makarska (WTA 125)
- Samobor: M25 Samobor (ITF men)
- Šibenik: M15 Sibenik (ITF men)
- Šibenik: W75 Sibenik (ITF women)
- Split: Split (ATP Challenger)
- Umag: M15 Umag (ITF men)
- Umag: Umag (ATP)
- Zadar: Zadar (ATP Challenger)
- Zagreb: M25 Zagreb (ITF men)
- Zagreb: W100 Zagreb (ITF women)
- Zagreb: Zagreb (ATP)
- Zagreb: Zagreb (ATP Challenger)
Czechia
- Liberec: Liberec (ATP Challenger)
- Louny: M25 Louny (ITF men)
- Ostrava: Ostrava (ATP Challenger)
- Ostrava: Ostrava (WTA)
- Pardubice: M25 Pardubice (ITF men)
- Prague: Livesport Prague Open (WTA)
- Prague: Prague (ATP Challenger)
- Prague: W50 Prague (ITF women)
- Prostejov: Prostejov (ATP Challenger)
Dominican Republic
- Santo Domingo: Santo Domingo (ATP Challenger)
Ecuador
- Guayaquil: Guayaquil (ATP Challenger)
- Quito: M15 Quito (ITF men, 2 weeks)
- Quito: Quito (ATP Challenger)
- Quito: Quito (WTA 125)
Egypt
- Hurghada: M15 Hurghada (ITF men, 7 weeks)
- Hurghada: W35 Hurghada (ITF women, 8 weeks)
- Sharm el-Sheikh: M25 Sharm ElSheikh (ITF men, 7 weeks)
- Sharm el-Sheikh: W35 Sharm ElSheikh (ITF women, 5 weeks)
Finland
- Helsinki: Helsinki (ATP Challenger)
- Tampere: Tampere (ATP Challenger)
France
- Aix-en-Provence: Aix en Provence (ATP Challenger)
- Aix-les-Bains: W35 Aix-Les-Bains (ITF women)
- Ajaccio: M25 Ajaccio +H (ITF men)
- Angers: Angers (WTA 125)
- Blois: Blois (ATP Challenger)
- Bordeaux: Bordeaux (ATP)
- Bordeaux: Bordeaux (ATP Challenger)
- Bourg-en-Bresse: M15 Bourg-En-Bresse (ITF men)
- Brest: Brest (ATP Challenger)
- Cassis: Cassis (ATP Challenger)
- Cherbourg: Cherbourg (ATP Challenger)
- Contrexeville: Contrexeville (WTA 125)
- Dijon: W15 Dijon (ITF women)
- Forbach: M15 Forbach (ITF men)
- Le Neubourg: W75 Le Neubourg (ITF women)
- Les Sables d'Olonne: Les Sables d'Olonne (WTA 125)
- Lille: Lille (ATP Challenger)
- Limoges: Limoges (WTA 125)
- Lyon: Lyon (ATP)
- Lyon: Lyon (ATP Challenger)
- Lyon: Lyon (WTA)
- Marseille: Marseille (ATP)
- Metz: Metz (ATP)
- Montpellier: Montpellier (ATP)
- Mouilleron le Captif: Mouilleron-Le-Captif (ATP Challenger)
- Nevers: M25 Nevers (ITF men)
- Nice: W35 Nice + H (ITF women)
- Orleans: Orleans (ATP Challenger)
- Paris: French Open (ATP)
- Paris: French Open (WTA)
- Paris: Paris (ATP)
- Paris: Paris (WTA)
- Paris: Paris (WTA 125)
- Pau: Pau (ATP Challenger)
- Plaisir: M25 Plaisir + H (ITF men)
- Poitiers: M15 Poitiers (ITF men)
- Poitiers: W75 Poitiers (ITF women)
- Quimper: Quimper (ATP Challenger)
- Reichstett: W15 Reichstett (ITF women)
- Reims: W35 Reims (ITF women)
- Rennes: Rennes (ATP Challenger)
- Roanne: Roanne (ATP Challenger)
- Rouen: Rouen (WTA)
- Rouen: Rouen (WTA 125)
- Royan: Royan (ATP Challenger)
- Saint Malo: Saint Malo (WTA 125)
- Saint-Palais-sur-Mer: W50 Saint-Palais-Sur-Mer (ITF women)
- Saint-Tropez: St. Tropez (ATP Challenger)
- Strasbourg: M15 Strasbourg (ITF men)
- Strasbourg: Strasbourg (WTA)
- Thionville: Thionville (ATP Challenger)
- Troyes: Troyes (ATP Challenger)
- Villeneuve-d'Ascq: W35 Villeneuve d'Ascq (ITF women)
Georgia
- Kutaisi: M15 Kutaisi (ITF men, 3 weeks)
- Tbilisi: Tbilisi (ATP Challenger)
- Telavi: M15 Telavi (ITF men, 2 weeks)
Germany
- Aschaffenburg: W100 Aschaffenburg (ITF women)
- Augsburg: Augsburg (ATP Challenger)
- Bad Homburg: Bad Homburg (WTA)
- Berlin: Berlin (WTA)
- Bonn: Bonn (ATP Challenger)
- Braunschweig: Braunschweig (ATP Challenger)
- Darmstadt: W50 Darmstadt (ITF women)
- Hamburg: Hamburg (ATP)
- Hamburg: Hamburg (ATP Challenger)
- Hamburg: Hamburg (WTA)
- Hamburg: Hamburg (WTA 125)
- Hamburg: W50 Hamburg (ITF women)
- Horb am Neckar: W50 Horb (ITF women)
- Ismaning: Ismaning (ATP Challenger)
- Karlsruhe: Karlsruhe (ATP Challenger)
- Koblenz: Koblenz (ATP Challenger)
- Leipzig: W75 Leipzig (ITF women)
- Luedenscheid: Luedenscheid (ATP Challenger)
- Meerbusch: Meerbusch (ATP Challenger)
- Munich: Munich (ATP)
- Offenbach: M15 Offenbach (ITF men)
- Rosbach vor der Höhe: M15 Rosbach (ITF men)
- Stuttgart: Stuttgart (ATP)
- Stuttgart: Stuttgart (WTA)
- Stuttgart: W50 Stuttgart-Vaihingen (ITF women)
- Troisdorf: M25 Troisdorf (ITF men)
- Troisdorf: Troisdorf (ATP Challenger)
Greece
- Athens: Athens (ATP)
- Athens: Athens (ATP Challenger)
Hong Kong
- Hong Kong: Hong Kong (ATP)
- Hong Kong: Hong Kong (WTA)
Hungary
- Budapest: Budapest (WTA)
- Budapest: M15 Budapest (ITF men)
- Pécs: M15 Pecs (ITF men)
- Pécs: W15 Pécs (ITF women)
- Székesfehérvár: W15 Szekesfehervar (ITF women)
- Szentendre: W15 Szentendre (ITF women)
India
- Bengaluru: Bengaluru (ATP Challenger, 2 weeks)
- Chennai: Chennai (ATP Challenger)
- Chennai: Chennai (WTA)
- Mumbai: M25 Mumbai (ITF men)
- Mumbai: Mumbai (WTA 125)
- New Delhi: New Delhi (ATP Challenger)
- Pune: Pune (ATP)
- Pune: Pune (ATP Challenger)
- Tumkūr: W35 Tumkur (ITF women)
Ireland
- Dublin: W50 Dublin (ITF women)
Italy
- Bari: Bari (WTA 125)
- Barletta: Barletta (ATP Challenger)
- Bergamo: Bergamo (ATP Challenger)
- Biella: Biella (ATP Challenger)
- Cagliari: Cagliari (ATP Challenger)
- Caltanissetta: M25 Caltanissetta (ITF men)
- Cesenatico: Cesenatico (ATP Challenger)
- Como: Como (ATP Challenger)
- Cordenons: Cordenons (ATP Challenger)
- Fano: M25 Fano (ITF men)
- Florence: Florence (WTA 125)
- Foggia: Foggia (WTA 125)
- Francavilla al Mare: Francavilla (ATP Challenger)
- Gaiba: Gaiba (WTA 125)
- Grado: Grado (WTA 125)
- Grado: M25 Grado (ITF men)
- Grado: W15 Grado (ITF women)
- Milan: M25 Milano (ITF men)
- Milan: Milan (ATP Challenger)
- Modena: Modena (ATP Challenger)
- Monza: Monza (ATP Challenger)
- Naples: Naples (ATP Challenger)
- Olbia: Olbia (ATP Challenger)
- Ortisei: Ortisei (ATP Challenger)
- Palermo: Palermo (WTA)
- Palermo: Palermo (WTA 125)
- Parma: Parma (ATP)
- Parma: Parma (ATP Challenger)
- Parma: Parma (WTA)
- Parma: Parma (WTA 125)
- Perugia: Perugia (ATP Challenger)
- Pozzuoli: M25 Pozzuoli (ITF men)
- Rende: Rende (WTA 125)
- Rome: M25 Rome (ITF men)
- Rome: Rome (ATP)
- Rome: Rome (ATP Challenger)
- Rome: Rome (WTA)
- Rome: Rome (WTA 125)
- Rome: W35 Rome (ITF women)
- Roseto Degli Abruzzi: Roseto Degli Abruzzi (ATP Challenger)
- San Benedetto Del Tronto: San Benedetto (ATP Challenger)
- Sanremo: Sanremo (ATP Challenger)
- Sassuolo: Sassuolo (ATP Challenger)
- Todi: Todi (ATP Challenger)
- Tolentino: Tolentino (WTA 125)
- Trieste: Trieste (ATP Challenger)
- Turin: Finals - Turin (ATP)
- Turin: Turin (ATP Challenger)
- Verona: Verona (ATP Challenger)
- Vicenza: Vicenza (ATP Challenger)
Ivory Coast
- Abidjan: Abidjan (ATP Challenger, 2 weeks)
Jamaica
- Kingston: Kingston (ATP Challenger)
Japan
- Kobe: Kobe (ATP Challenger)
- Kyoto: W75 Kyoto (ITF women, 2 weeks)
- Matsuyama: Matsuyama (ATP Challenger)
- Miyazaki: Miyazaki (ATP Challenger)
- Miyazaki: W35 Miyazaki (ITF women, 2 weeks)
- Nanao: W50 Nanao (ITF women)
- Osaka: Osaka (WTA)
- Sapporo: M25 Sapporo (ITF men)
- Sapporo: W15 Sapporo (ITF women, 2 weeks)
- Tanagura: M15 Tanagura (ITF men)
- Tokyo: M15 Tokyo (ITF men, 4 weeks)
- Tokyo: Tokyo (ATP)
- Tokyo: Tokyo (WTA)
- Tokyo: W15 Tokyo (ITF women, 2 weeks)
- Toyama: W15 Toyama (ITF women)
- Urayasu: M25 Urayasu (ITF men)
- Yokohama: Yokohama (ATP Challenger)
Kazakhstan
- Almaty: Almaty (ATP)
- Astana: Astana (ATP)
- Astana: Astana (ATP Challenger)
- Astana: M15 Astana (ITF men)
- Astana: W15 Astana (ITF women, 3 weeks)
- Shymkent: Shymkent (ATP Challenger, 2 weeks)
Lithuania
- Vilnius: Vilnius (ATP Challenger)
Mexico
- Acapulco: Acapulco (ATP)
- Acapulco: Acapulco (ATP Challenger)
- Cancun: Cancun (ATP Challenger)
- Cancun: Cancun (WTA 125)
- Guadalajara: Guadalajara (WTA)
- Guadalajara: Guadalajara (WTA 125)
- Leon: Leon (ATP Challenger)
- Manzanillo: Manzanillo (ATP Challenger)
- Merida: Merida (ATP Challenger)
- Mérida: Merida (WTA)
- Mexico City: Mexico City (ATP Challenger)
- Monterrey: Monterrey (ATP Challenger)
- Monterrey: Monterrey (WTA)
- Morelia: M15 Morelia (ITF men)
- Morelia: Morelia (ATP Challenger)
- Morelia: W50 Morelia (ITF women)
- Puerto Vallarta: Puerto Vallarta (ATP Challenger)
- Puerto Vallarta: Puerto Vallarta (WTA 125)
- San Luis Potosi: San Luis Potosi (ATP Challenger)
- San Luis Potosi: San Luis Potosi (WTA 125)
- Tampico: Tampico (WTA 125)
Moldova
- Chisinau: Chisinau (ATP Challenger)
- Chisinau: W15 Chisinau (ITF women)
Monaco
- Monaco: Monte Carlo (ATP)
Morocco
- Casablanca: M25 Casablanca (ITF men)
- Rabat: M25 Rabat (ITF men, 2 weeks)
- Rabat: Rabat (WTA)
New Caledonia
- Noumea: Noumea (ATP Challenger)
New Zealand
- Auckland: Auckland (ATP)
- Auckland: Auckland (WTA)
North Macedonia
- Skopje: Skopje (ATP Challenger)
Pakistan
- Islamabad: Islamabad (ATP Challenger)
- Islamabad: M15 Islamabad (ITF men)
- Islamabad: W15 Islamabad (ITF women)
Paraguay
- Asuncion: Asuncion (ATP Challenger)
- Asunción: M15 Asuncion (ITF men)
Peru
- Lima: Lima (ATP Challenger, 3 weeks)
Philippines
- Manila: Manila (WTA 125)
Poland
- Bolszewo: W35 Bolszewo (ITF women)
- Bytom: W75 Bytom (ITF women)
- Gdańsk: W50 Gdansk (ITF women)
- Grodzisk Mazowiecki: Grodzisk Mazowiecki (ATP Challenger)
- Kraków: W35 Krakow (ITF women)
- Poznan: Poznan (ATP Challenger)
- Radom: W15 Radom (ITF women)
- Rzeszów: M15 Rzeszow (ITF men)
- Szczecin: Szczecin (ATP Challenger)
- Warsaw: M15 Warsaw (ITF men)
- Warsaw: Warsaw (WTA)
- Warsaw: Warsaw (WTA 125)
Portugal
- Braga: Braga (ATP Challenger)
- Caldas Da Rainha: Caldas da Rainha (WTA 125)
- Elvas: W50 Elvas (ITF women)
- Estoril: Estoril (ATP)
- Estoril: Estoril (ATP Challenger)
- Évora: W50 Evora (ITF women)
- Lagos: W35 Lagos (ITF women)
- Lisbon: Lisbon (ATP Challenger)
- Lourinhã: M25 Lourinha (ITF men)
- Oeiras: Oeiras (ATP Challenger, 4 weeks)
- Oeiras: Oeiras (WTA)
- Oeiras: Oeiras (WTA 125, 2 weeks)
- Porto: Porto (ATP Challenger, 2 weeks)
- Porto: Porto (WTA 125)
- Setúbal: M25 Setubal (ITF men)
- Sintra: M25 Sintra (ITF men, 2 weeks)
Qatar
- Doha: Doha (ATP)
- Doha: Doha (WTA)
- Doha: M25 Doha (ITF men, 2 weeks)
Republic of the Congo
- Brazzaville: Brazzaville (ATP Challenger)
Romania
- Bistriţa: M25 Bistrita (ITF men)
- Brasov: Brasov (ATP Challenger)
- Bucharest: Bucharest (ATP)
- Bucharest: Bucharest (WTA 125)
- Bucharest: M15 Bucharest (ITF men, 3 weeks)
- Bucharest: W15 Bucharest (ITF women, 3 weeks)
- Cluj-Napoca: Cluj-Napoca (WTA)
- Constanţa: M15 Constanta (ITF men)
- Constanţa: W15 Constanta (ITF women)
- Curtea de Argeş: M15 Curtea De Arges (ITF men)
- Iasi: Iasi (ATP Challenger)
- Iasi: Iasi (WTA)
- Iasi: Iasi (WTA 125)
- Sibiu: Sibiu (ATP Challenger)
- Targu Mures: Targu Mures (ATP Challenger)
Rwanda
- Kigali: Kigali (ATP Challenger, 2 weeks)
- Kigali: M25 Kigali (ITF men, 2 weeks)
San Marino
- San Marino: San Marino (ATP Challenger)
Saudi Arabia
- Jeddah: Next Gen Finals - Jeddah (ATP)
- Riyadh: Finals - Riyadh (WTA)
Serbia
- Belgrade: Belgrade (ATP)
- Zlatibor: M25 Zlatibor (ITF men)
Singapore
- Singapore: M15 Singapore (ITF men)
- Singapore: Singapore (WTA)
- Singapore: W15 Singapore (ITF women)
Slovakia
- Bratislava: Bratislava (ATP Challenger)
- Kosice: Kosice (ATP Challenger)
- Košice: W75 Kosice (ITF women)
Slovenia
- Kranjska Gora: M15 Kranjska Gora (ITF men)
- Ljubljana: Ljubljana (WTA 125)
- Portorož: W75 Portoroz (ITF women)
- Slovenj Gradec: M25 Slovenj Gradec (ITF men)
South Africa
- Mbombela: M15 Mbombela (ITF men)
- Mbombela: W15 Mbombela (ITF women)
South Korea
- Busan: Busan (ATP Challenger)
- Changwon: W35 Changwon (ITF women)
- Seoul: Seoul (ATP Challenger)
- Seoul: Seoul (WTA)
Spain
- Alicante: Montemar (ATP Challenger)
- Badalona: W15 Badalona (ITF women)
- Barcelona: Barcelona (ATP)
- Barcelona: Barcelona (ATP Challenger)
- Barcelona: W60 Barcelona (ITF women)
- Castelldefels: M25 Castelldefels (ITF men)
- Estepona: W35 Estepona (ITF women)
- Gijón: M25 Gijon (ITF men)
- Girona: Girona (ATP Challenger)
- La Bisbal D'Empordá: La Bisbal D'Emporda (WTA 125)
- Lleida: Lleida (WTA 125)
- Madrid: M15 Madrid (ITF men)
- Madrid: Madrid (ATP)
- Madrid: Madrid (ATP Challenger)
- Madrid: Madrid (WTA)
- Madrid: Madrid (WTA 125)
- Madrid: W15 Madrid (ITF women)
- Malaga: Malaga (ATP Challenger)
- Melilla: M15 Melilla (ITF men)
- Melilla: W15 Melilla (ITF women)
- Murcia: Murcia (ATP Challenger)
- Oliva: W15 Oliva (ITF women)
- Ontinyent: W15 Ontinyent (ITF women)
- Ourense: W75 Ourense (ITF women)
- Pontevedra: M15 Pontevedra (ITF men)
- Pozoblanco: Pozoblanco (ATP Challenger)
- Reus: M25 Reus (ITF men)
- Reus: Reus (WTA 125)
- Reus: W35 Reus (ITF women)
- Sabadell: M25 Sabadell (ITF men, 2 weeks)
- Sabadell: W35 Sabadell (ITF women)
- San Sebastian: San Sebastian (WTA 125)
- Segovia: Segovia (ATP Challenger)
- Valencia: Valencia (ATP)
- Valencia: Valencia (ATP Challenger)
- Valencia: Valencia (WTA 125)
- Vic: Vic (WTA 125)
- Villena: M15 Villena (ITF men, 2 weeks)
- Villena: Villena (ATP Challenger)
- Villena: W15 Villena (ITF women)
- Yecla: W50 Yecla (ITF women)
- Zaragoza: M25 Zaragoza (ITF men)
- Zaragoza: W75 Zaragoza (ITF women)
Sweden
- Bastad: Bastad (ATP)
- Bastad: Bastad (WTA 125)
- Bastad: M15 Bastad (ITF men)
- Bastad: W35 Bastad (ITF women)
- Danderyd: Danderyd (ATP Challenger)
- Falun: M25 Falun (ITF men)
- Stockholm: Stockholm (ATP)
- Täby: W15 Taby (ITF women)
Switzerland
- Basel: Basel (ATP)
- Biel: Biel (ATP Challenger)
- Geneva: Geneva (ATP)
- Gstaad: Gstaad (ATP)
- Lausanne: Lausanne (WTA)
- Lugano: Lugano (ATP Challenger)
- Montreux: Montreux (WTA 125)
- Zug: Zug (ATP Challenger)
Taiwan
- Taipei: Taipei (ATP Challenger)
Thailand
- Hua Hin: Hua Hin (WTA, 2 weeks)
- Nakhon Pathom: M25 Nakhon Pathom (ITF men)
The Netherlands
- Amersfoort: Amersfoort (ATP Challenger)
- Bunschoten: Bunschoten (ATP Challenger)
- Rotterdam: Rotterdam (ATP)
- s-Hertogenbosch: Hertogenbosch (ATP)
- s-Hertogenbosch: Hertogenbosch (WTA)
Tunisia
- Monastir: M25 Monastir (ITF men, 24 weeks)
- Monastir: Monastir (ATP Challenger)
- Monastir: Monastir (WTA)
- Monastir: W50 Monastir (ITF women, 23 weeks)
- Tunis: Tunis (ATP Challenger)
Turkey
- Antalya: Antalya (ATP Challenger)
- Antalya: Antalya (WTA 125, 3 weeks)
- Istanbul: Istanbul (ATP)
- Istanbul: Istanbul (ATP Challenger, 2 weeks)
- Istanbul: W35 Istanbul (ITF women)
- Samsun: Samsun (WTA 125)
United Arab Emirates
- Abu Dhabi: Abu Dhabi (WTA)
- Dubai: Dubai (ATP)
- Dubai: Dubai (WTA)
- Dubai: W100 Dubai (ITF women)
- Fujairah: Fujairah (ATP Challenger)
United Kingdom
- Aldershot: W35 Aldershot (ITF women)
- Birmingham: Birmingham (ATP Challenger)
- Birmingham: Birmingham (WTA)
- Birmingham: Birmingham (WTA 125)
- Birmingham: W35 Birmingham (ITF women)
- Eastbourne: Eastbourne (ATP)
- Eastbourne: Eastbourne (WTA)
- Glasgow: Glasgow (ATP Challenger)
- Glasgow: M25 Glasgow (ITF men)
- Glasgow: W35 Glasgow (ITF women, 2 weeks)
- Ilkley: Ilkley (ATP Challenger)
- Ilkley: Ilkley (WTA 125)
- London: London (ATP)
- London: London (WTA)
- London: Wimbledon (ATP)
- London: Wimbledon (WTA)
- Nottingham: Nottingham (ATP Challenger, 3 weeks)
- Nottingham: Nottingham (WTA)
- Roehampton: Roehampton (ATP Challenger)
- Sheffield: M25 Sheffield (ITF men)
- Sheffield: W35 Sheffield (ITF women)
- Surbiton: Surbiton (ATP Challenger)
United States
- Ann Arbor: M15 Ann Arbor, MI (ITF men)
- Atlanta: Atlanta (ATP)
- Austin: Austin (WTA)
- Austin: Austin (WTA 125)
- Austin: M25 Austin, TX (ITF men)
- Austin: W50 Austin, TX (ITF women)
- Bakersfield: M25 Bakersfield, CA (ITF men)
- Bakersfield: W35 Bakersfield, CA (ITF women)
- Berkeley: W35 Berkeley, CA (ITF women)
- Bloomfield Hills: Bloomfield Hills (ATP Challenger)
- Champaign: Champaign (ATP Challenger)
- Charleston: Charleston (WTA)
- Charleston: Charleston (WTA 125, 2 weeks)
- Charlottesville: Charlottesville (ATP Challenger)
- Chicago: Chicago (ATP Challenger)
- Chicago: Chicago (WTA 125)
- Cincinnati: Cincinnati (ATP)
- Cincinnati: Cincinnati (WTA)
- Cleveland: Cleveland (WTA)
- Dallas: Dallas (ATP)
- Delray Beach: Delray Beach (ATP)
- Edmond: M15 Edmond, OK (ITF men)
- Edmond: W100 Edmond, OK (ITF women)
- Fayetteville: M15 Fayetteville, AR (ITF men)
- Houston: Houston (ATP)
- Indian Wells: Indian Wells (ATP)
- Indian Wells: Indian Wells (ATP Challenger, 2 weeks)
- Indian Wells: Indian Wells (WTA)
- Ithaca: M25 Ithaca, NY (ITF men)
- Knoxville: Knoxville (ATP Challenger)
- Las Vegas: Las Vegas (ATP Challenger)
- Las Vegas: M25 Las Vegas (ITF men)
- Las Vegas: W35 Las Vegas (ITF women)
- Lexington: W75 Lexington, KY (ITF women)
- Little Rock: Little Rock (ATP Challenger)
- Miami: Miami (ATP)
- Miami: Miami (WTA)
- Midland: Midland (WTA 125)
- New York: US Open (ATP)
- New York: US Open (WTA)
- Norman: M25 Norman, OK (ITF men)
- Norman: W35 Norman, OK (ITF women)
- Philadelphia: Philadelphia (WTA 125)
- Phoenix: Phoenix (ATP Challenger)
- San Diego: San Diego (ATP Challenger)
- San Diego: San Diego (WTA)
- Sarasota: Sarasota (ATP Challenger)
- Savannah: Savannah (ATP Challenger)
- Sioux Falls: Sioux Falls (ATP Challenger)
- Stanford: Stanford (WTA 125)
- Sumter: Sumter (ATP Challenger)
- Sumter: W75 Sumter, SC (ITF women)
- Tallahassee: Tallahassee (ATP Challenger)
- Templeton: W75 Templeton, CA (ITF women)
- Tiburon: Tiburon (ATP Challenger)
- Tyler: Tyler (ATP Challenger)
- Washington: Washington (ATP)
- Washington: Washington (WTA)
- Winston Salem: Winston Salem (ATP Challenger)
- Winston-Salem: Winston-Salem (ATP)
Uruguay
- Montevideo: Montevideo (ATP Challenger)
- Montevideo: Montevideo (WTA 125)
- Punta del Este: Punta Del Este (ATP Challenger)
Vietnam
- Phan Thiet: Phan Thiet (ATP Challenger, 2 weeks)
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.