Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010
All Rounds Final 1/2 1/4 First Second Third Fourth Pre-q Rubber 1 Rubber 2 Rubber 3 Rubber 4 Rubber 5 Robin Bronze Q3 N/A Q2 Q1 ER Q4 CR QF Q5 N/A
All Courts Acrylic N/A Clay Grass Carpet Hard I.hard
All Tour Wimbledon - London U.S. Open - New York Mallorca Challenger Zhuhai Open - Zhuhai Alicante Challenger China Open - Beijing Hamburg Challenger Rakuten Japan Open - Tokyo Brest Challenger Rolex Paris Masters - Paris Matsuyama Challenger Australian Open - Melbourne Dallas Open - Dallas Delray Beach Open - Delray Beach Mifel Tennis Open - Los Cabos BNP Paribas Open - Indian Wells Abierto Mexicano Telcel - Acapulco Oeiras 3 Challenger Internazionali BNL d'Italia - Rome Millennium Estoril Open - Estoril Mutua Madrid Open - Madrid M25 Sabadell Oeiras 4 Challenger Open Parc - Lyon Cagliari Challenger Turin Challenger Prostejov Challenger M25 Setubal Porto Challenger French Open - Paris Rothesay International - Eastbourne M25 Mungia-Laukariz Western & Southern Open - Cincinnati M25 Roda de Bara Atlanta Open - Atlanta M25 Porto Hangzhou Open - Hangzhou Dobrich 2 Challenger U.S. Open - New York Lisbon Challenger M25 Satu Mare Braga Challenger Dallas Open - Dallas M25 Vila Real de Santo Antonio M25 Vale do Lobo Delray Beach Open - Delray Beach M25 Vale do Lobo Grodzisk Mazowiecki Challenger Yokkaichi Challenger Maia Challenger Brisbane International - Brisbane Adelaide International - Adelaide Australian Open - Melbourne Oeiras 2 Challenger Miami Open - Miami Citi Open - Washington Zug Challenger Cassis Challenger National Bank Open - Toronto Boss Open - Stuttgart Terra Wortmann Open - Halle Poznan Challenger Iasi Challenger Wimbledon - London Winston-Salem Open - Winston-Salem Bunschoten Challenger Citi Open - Washington Porto 2 Challenger U.S. Open - New York Shanghai Challenger Seville Challenger Davis Cup, World Group, Q2, JPN-GER 0-4 Suzhou Challenger Shanghai Rolex Masters - Shanghai M25 Setubal Portugal F5 Portugal F1 Portugal F2 Portugal F4 Portugal F5 USA F26 USA F28 USA F31 USA F2 USA F3 USA F4 Portugal F3 USA F11 USA F12 Spain F25 Mexico F10 Portugal F4 Mexico F11 Portugal F5 Brazil F31 USA F29 Brazil F32 Mexico F3 USA F6 USA F7 Portugal F4 USA F9 Egypt F2 Egypt F3 Egypt F4 USA F11 USA F12 Portugal F5 Portugal F6 Portugal F7 Mexico F4 Portugal F2 Spain F26 Spain F27 Spain F30 USA F24 USA F25 Spain F33 Portugal F9 Mexico F15 Portugal F10 Portugal F11 Egypt F33 Spain F41 Spain F42 Chile F11 Turkey F49 Chile F12 Turkey F50 USA F1 USA F2 Portugal F1 Portugal F2 USA F5 Portugal F3 USA F6 Turkey F7 Turkey F8 Turkey F9 Portugal F4 Portugal F5 Portugal F6 Belgium F2 Belgium F3 Japan F8 Belgium F4 Belgium F5 Spain F21 Romania F2 Romania F13 Portugal F8 Portugal F9 Portugal F10 Portugal F11 Turkey F42 Turkey F43 Tunisia F3 Tunisia F4 Portugal F3 Morocco F2 Morocco F3 Italy F6 Portugal F4 Portugal F7 Mozambique F1 Mozambique F2 Spain F18 Belgium F13 Spain F28 Egypt F36 Egypt F37 Egypt F38 Egypt F39 Turkey F6 Turkey F7 Portugal F3 Egypt F9 Egypt F10 Czech Republic F4 Romania F15 Turkey F47 Turkey F48 Egypt F1 (Sharm El Sheikh) Egypt F4 (Sharm El Sheikh) Egypt F5 (Sharm El Sheikh) Egypt F6 (Sharm El Sheikh) Portugal F5 (Quinta Da Marinha) Portugal F6 (Porto) Portugal F7 (Carcavelos) Ukraine F1 (Cherkassy) Ukraine F2 (Cherkassy) Romania F2 (Bacau) Tunisia F22 (Hammamet) Portugal F10 (Torres Vedras) Portugal F11 (Povoa de Varzim) Portugal F12 (Idanha-A-Nova) Portugal F13 (Idanha-A-Nova) Portugal F3 Tunisia F27 (Hammamet) Tunisia F28 (Hammamet) Tunisia F29 (Hammamet) Tunisia F30 (Hammamet) Portugal F1 (Vale Do Lobo) Portugal F3 (Loule) Portugal F5 (Vilamoura) Portugal F6 (Lisbon) Portugal F7 (Porto) Egypt F32 Portugal F8 (Cascais) Tunisia F23 (Hammamet) Portugal F14 (Sintra) Portugal F15 (Sintra) Turkey F5 Tunis Challenger Malaga Challenger Hamburg Challenger Ottignies-Louvain-la-Neuve Challenger Cagliari Challenger Troisdorf Challenger Malaga Challenger M25 Elvas M25 Vale do Lobo M25 Monastir M25 Bakio M25 Castelo Branco M25 Idanha-a-Nova M25 Idanha-a-Nova M25 Vila Real de Santo Antonio M25 Faro M25 Loule M25 Valldoreix M25 Sintra M25 Sintra Kyoto Challenger Sarasota Challenger Sao Leopoldo Challenger Yokohama Challenger Sarasota Challenger Guimaraes Challenger Segovia Challenger Yokohama Challenger Toyota Challenger Kyoto Challenger Rimouski Challenger Guadalajara Challenger Leon Challenger Itajai Challenger Sarasota Challenger Sao Paulo Challenger Savannah Challenger Santos Challenger Tallahassee Challenger M25 Tavira Vicenza Challenger Mestre Challenger Kosice Challenger Milan Challenger Lexington Challenger Vancouver Challenger Segovia Challenger Istanbul Challenger Geneva Challenger Ortisei Challenger Yokohama Challenger Toyota Challenger Happy Valley Challenger Casablanca Challenger Hong Kong Challenger New Delhi Challenger Kolkata Challenger Irving Challenger Sarasota Challenger Mersin Challenger Savannah Challenger Heilbronn Challenger Eskisehir Challenger Mestre Challenger Surbiton Challenger Ilkley Challenger Todi Challenger Granby Challenger Tampere Challenger Lexington Challenger Segovia Challenger Aptos Challenger Manerbio Challenger Campinas Challenger Porto Alegre Challenger Sao Paulo Challenger Hua Hin Challenger Yokohama Challenger Toyota Challenger Canberra Challenger Bangkok Challenger Manila Challenger Cherbourg Challenger Le Gosier Challenger Napoli Challenger Barletta Challenger Nanjing Challenger Turin Challenger Anning Challenger Rome Challenger Samarkand Challenger Mestre Challenger Caltanissetta Challenger Perugia Challenger Winnetka Challenger Bastad Challenger Winnipeg Challenger Poznan Challenger Tampere Challenger Prague Challenger Aptos Challenger Cordenons Challenger Manerbio Challenger Kaohsiung Challenger Aptos Challenger Kobe Challenger Shanghai Challenger Bangkok Challenger Traralgon Challenger Canberra Challenger Kobe Challenger Toyota Challenger Astana Challenger Bangkok Challenger Lisbon Challenger Milan Challenger Ningboo Challenger Kaohsiung Challenger Burnie Challenger Launceston Challenger Sarasota Challenger Tallahassee Challenger Braga Challenger Gimcheon Challenger Busan Challenger Mestre Challenger Blois Challenger Zhangjiagang Challenger Shanghai Challenger Kaohsiung Challenger Almaty Challenger Tashkent Challenger Traralgon Challenger Canberra Challenger Bratislava Challenger Bangalore Challenger Kobe Challenger Pune Challenger Lille Challenger Sophia Antipolis Challenger Braga Challenger Lisbon Challenger Jerusalem Challenger Bratislava Challenger Milan Challenger Amersfoort Challenger Prague Challenger Sopot Challenger Manerbio Challenger L'Aquila Challenger Baotou Challenger Jinan Challenger Kaohsiung Challenger Heilbronn Challenger Ningboo Challenger Liuzhou Challenger Shenzhen Challenger Helsinki Challenger Bendigo Challenger Bengalaru Challenger Bergamo Challenger Nur-Sultan Challenger Prague II Challenger Ostrava Challenger Prostejov Challenger Split Challenger Lisbon Challenger Parma Challenger Sao Paulo Challenger Maia Challenger Nur-Sultan 1 Challenger Nur-Sultan 2 Challenger Prague Challenger Zagreb Challenger Oeiras 3 Challenger Biella 7 Challenger Bratislava Challenger Porto Challenger Segovia Challenger Mallorca Challenger Kyiv Challenger Braga Challenger Lisbon Challenger Mouilleron-Le-Captif Challenger Alicante Challenger Brest Challenger Tenerife Challenger Bratislava Challenger Helsinki Challenger Traralgon Challenger Forli 3 Challenger Columbus Challenger Cleveland Challenger Bengalaru 1 Challenger Troisdorf Challenger Poznan Challenger Porto Challenger Iasi Challenger Rome Challenger Tampere Challenger San Benedetto Challenger Meerbusch Challenger Vancouver Challenger Banja Luka Challenger Toulouse Challenger Seville Challenger Braga Challenger Alicante Challenger St. Tropez Challenger Yokohama Challenger Matsuyama Challenger Kobe Challenger Yokkaichi Challenger Chennai Challenger Bengaluru Challenger Pune Challenger St. Brieuc Challenger Girona Challenger Madrid Challenger Oeiras 3 Challenger Ostrava Challenger Aix En Provence Challenger Francavilla Challenger Oeiras 4 Challenger Prostejov Challenger Augsburg Challenger Oeiras 1 Challenger Todi Challenger Porto Challenger Sumter Challenger Istanbul Challenger Lisbon Challenger Orleans Challenger Ostrava Challenger Playford Challenger Oeiras 3 Challenger Porto 2 Challenger French Open - Paris Birmingham Challenger U.S. Open - New York Milan Challenger Wimbledon - London Brasov Challenger Sofia 2 Challenger Lisbon Challenger Braga Challenger Tampere Challenger Porto Challenger Shenzhen Challenger Estoril Open - Estoril Estoril Open - Estoril Estoril Open - Estoril Portugal Open - Oeiras Portugal Open - Oeiras Erste Bank Open - Vienna Delray Beach Open - Delray Beach Grand Prix Hassan II - Casablanca US Men's Clay Court Championship - Houston Citi Open - Washington Malaysian Open - Kuala Lumpur Millennium Estoril Open - Estoril Brisbane International - Brisbane Memphis Open - Memphis Delray Beach Open - Delray Beach Millennium Estoril Open - Estoril Topshelf Open - 's-Hertogenbosch Gerry Weber Open - Halle Citi Open - Washington BB&T Atlanta Open - Atlanta Winston-Salem Open - Winston-Salem Shenzhen Open - Shenzhen Rakuten Japan Open - Tokyo Brisbane International - Brisbane Memphis Open - Memphis Delray Beach Open - Delray Beach Abierto Mexicano Telcel - Acapulco Millennium Estoril Open - Estoril Dubai Duty Free Tennis Championships - Dubai US Men's Clay Court Championship - Houston Millennium Estoril Open - Estoril Antalya Cup - Antalya Abierto Mexicano - Los Cabos Shenzhen Open - Shenzhen Rakuten Japan Open - Tokyo European Open - Antwerp Brisbane International - Brisbane Sydney International - Sydney Delray Beach Open - Delray Beach Abierto Mexicano Telcel - Acapulco Barcelona Open Banc Sabadell - Barcelona Millennium Estoril Open - Estoril Geneva Open - Geneva Citi Open - Washington Zhuhai Open - Zhuhai Intrum Stockholm Open - Stockholm Swiss Indoors Basel - Basel Tata Open Maharashtra - Pune New York Open - New York Delray Beach Open - Delray Beach Generali Open - Kitzbuhel bett1HULKS Championships - Cologne Hamburg European Open - Hamburg Sofia Open - Sofia Murray River Open - Melbourne Open 13 Provence - Marseille Abierto Mexicano Telcel - Acapulco Dubai Duty Free Tennis Championships - Dubai Millennium Estoril Open - Estoril Open Parc - Lyon Nature Valley International - Eastbourne Hall of Fame Open - Newport Citi Open - Washington St. Petersburg Open - St. Petersburg Kremlin Cup - Moscow Singapore Tennis Open - Singapore Emilia-Romagna Open - Parma Adelaide International 1 - Adelaide Adelaide International 2 - Adelaide Dallas Open - Dallas Delray Beach Open - Delray Beach Abierto Mexicano Telcel - Acapulco BMW Open - Munich Open Parc - Lyon Citi Open - Washington Rakuten Japan Open - Tokyo European Open - Antwerp Erste Bank Open - Vienna Korea Open - Seoul Adelaide International 1 - Adelaide Delray Beach Open - Delray Beach Abierto Mexicano Telcel - Acapulco Barcelona Open Banc Sabadell - Barcelona Truist Atlanta Open - Atlanta Barcelona Open Banc Sabadell - Barcelona Japan Open Tennis Championships - Tokyo Japan Open Tennis Championships - Tokyo Dubai Duty Free Tennis Championships - Dubai Rakuten Japan Open - Tokyo ATP Cup - Brisbane, Perth, Sydney Rakuten Japan Open - Tokyo Citi Open - Washington Millennium Estoril Open - Estoril Sony Open Tennis - Miami BNP Paribas Open - Indian Wells Miami Open - Miami Shanghai Rolex Masters - Shanghai Miami Open - Miami BNP Paribas Open - Indian Wells Miami Open - Miami BNP Paribas Open - Indian Wells Miami Open - Miami Rogers Cup - Toronto Western & Southern Open - Cincinnati BNP Paribas Open - Indian Wells Monte-Carlo Rolex Masters - Monte-Carlo Internazionali BNL d'Italia - Rome Coupe Rogers - Montreal Western & Southern Open - Cincinnati Shanghai Rolex Masters - Shanghai BNP Paribas Masters - Paris Internazionali BNL d'Italia - Rome Rolex Paris Masters - Paris BNP Paribas Open - Indian Wells Miami Open - Miami Mutua Madrid Open - Madrid Internazionali BNL d'Italia - Rome Rogers Cup - Toronto Western & Southern Open - Cincinnati Rolex Paris Masters - Paris BNP Paribas Open - Indian Wells Miami Open - Miami Mutua Madrid Open - Madrid National Bank Open - Montreal Rolex Paris Masters - Paris BNP Paribas Open - Indian Wells Shanghai Rolex Masters - Shanghai Shanghai Rolex Masters - Shanghai Miami Open - Miami Western & Southern Open - Cincinnati Mutua Madrid Open - Madrid U.S. Open (juniors) French Open (juniors) National Bank Open - Toronto Internazionali BNL d'Italia - Rome Cincinnati Open - Cincinnati Internazionali BNL d'Italia - Rome U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London Australian Open - Melbourne U.S. Open - New York Australian Open - Melbourne Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Miami Open - Miami Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris U.S. Open - New York Australian Open Qualifying - Doha French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris U.S. Open - New York Australian Open - Melbourne French Open - Paris French Open - Paris Davis Cup, Group I, 1R, SLO-POR 3-2 Davis Cup, Group I, PO, RUS-POR 4-1 Davis Cup, Group II, 1R, POR-MAR 4-1 Davis Cup, World Group, 1R, JPN-FRA 1-4 Davis Cup, World Group, PO, JPN-BIH 4-0 Davis Cup, World Group, QR, CHN-JPN 2-3 Davis Cup, Finals, Group A Davis Cup, World Group I, PO, LTU-POR 0-4 ATP Cup - Melbourne Wimbledon (juniors) U.S. Open (juniors) Australian Open (juniors) Wimbledon (juniors) U.S. Open (juniors) Australian Open (Asia, Wildcard) Australian Open (Asia, Wildcard) Kooyong Classic - Kooyong Australian Open - Melbourne National Bank Open - Montreal All Lower level tournaments Davis Cup, World Group, Q, JPN-GBR 3-2 Wimbledon - London Wimbledon - London Davis Cup, Group I, PO, JPN-POL 4-0 Davis Cup, World Group I, 1R, JPN-COL 3-1 Davis Cup, Group II, 2R, POR-FIN 4-1 Australian Open (juniors) French Open (juniors) Wimbledon (juniors) Davis Cup, World Group, PO, JPN-UKR 5-0 Davis Cup, Group I, 1R, POR-ISR 5-0 Davis Cup, Group I, PO, LIB-JPN 1-3 Olympics - Tokyo