Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004 2003 2002 2001
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 Nigeria F1 Nigeria F2 Portugal F2 Portugal F3 Italy F1 Italy F3 Germany F4 Great Britain F1 Spain F6 Tunisia F2 Tunisia F3 Spain F13 Morocco F2 Morocco F3 Spain F17 Spain F18 Romania F16 Portugal #1-w3 Spain F31 Portugal #1-w3 Morocco F1 Morocco F2 Spain F33 Morocco F1 Morocco F2 Portugal F2 Germany F12 Italy F28 Spain F39 Spain F41 Spain F42 Italy F1 Portugal F4 Portugal F5 Portugal F6 Italy F13 Bosnia & Herzegovina F2 Croatia F8 Bosnia/Herzegovina F6 Bosnia/Herzegovina F1 Bosnia & Herzegovina F2 Croatia F7 Croatia F8 Croatia F1 Croatia F2 Italy F6 Bosnia & Herzegovina F3 Serbia F2 Croatia F8 Croatia F9 Croatia F13 Croatia F14 Turkey F32 Turkey F33 Turkey F3 Turkey F4 Croatia F1 Italy F1 Italy F2 Bosnia & Herzegovina F1 Bosnia & Herzegovina F2 Bosnia & Herzegovina F3 Bosnia & Herzegovina F5 Croatia F12 Turkey F2 Croatia F1 Portugal F1 Portugal F2 Portugal F3 Portugal F4 Italy F1 Italy F5 Bulgaria F1 Italy F12 Romania F4 Bosnia & Herzegovina F4 Italy F13 Serbia F3 Italy F15 Poland F3 Poland F5 Portugal F10 Croatia F12 Portugal F11 Peru F2 Portugal F9 Portugal F10 Portugal F11 Sri Lanka F1 Sri Lanka F2 Sri Lanka F3 Portugal F1 Portugal F3 Qatar F1 Qatar F2 Qatar F3 Portugal F12 Tunisia F4 Portugal F1 Portugal F3 Spain F7 Portugal F4 Portugal F1 Italy F27 Spain F24 Spain F25 Spain F27 Portugal F5 Spain F12 Spain F13 Israel F3 Italy F7 Italy F20 Bosnia & Herzegovina F2 Croatia F2 Bosnia & Herzegovina F5 Serbia F1 Serbia F3 Serbia F7 Croatia F7 Croatia F12 Croatia F11 Poland F4 Portugal F3 Portugal #1-w1 Portugal #1-w2 Peru F3 Portugal #1-w4 Spain F29 Spain F32 Portugal #1-w1 Portugal #1-w2 Portugal #1-w4 Portugal F4 Spain F29 Spain F30 Spain F32 Spain F34 Spain F6 Spain F7 Romania F17 Portugal F1 Ostrava Challenger Banja Luka Challenger Spain F28 Marrakech Challenger Cordenons Challenger Poznan Challenger San Marino Challenger Meerbusch Challenger Alessandria Challenger Buenos Aires Challenger Kazan Challenger Sao Paulo Challenger Casablanca Challenger Kenitra Challenger Kobe Challenger Noumea Challenger Mohammedia Challenger Casablanca Challenger Santo Domingo Challenger Sibiu Challenger Croatia F10 Aptos Challenger New Haven Challenger Bratislava Challenger Bendigo Challenger Split Challenger Barcelona Challenger Meerbusch Challenger Bulgarian Open Challenger - Sofia Istanbul Challenger Bratislava 2 Challenger Helsinki Challenger Danderyd Challenger Canberra Challenger Manama Challenger Barletta Challenger Ilkley Challenger Sao Jose Do Rio Preto Challenger Bonn Challenger Istanbul Challenger Guangzhou Challenger Irving Challenger Lyon Challenger Montemar Challenger Casablanca Challenger Canberra Challenger Zadar Challenger Buenos Aires Challenger Manacor Challenger Bratislava 2 Challenger Estoril Open - Estoril Orbetello Challenger Brasov Challenger Grand Prix Hassan II - Casablanca Estoril Open - Estoril Fergana Challenger - Fergana Open Diputacion Ciudad de Pozoblanco - Cordoba Brasil Open - Costa do Sauipe s'Tennis Masters Challenger - Graz Estoril Open - Estoril Brasil Open - Costa do Sauipe Estoril Open - Estoril Akbank Private Banking TED Open - Istanbul Medibank International - Sydney Movistar Open - Santiago Brasil Open - Costa do Sauipe Grand Prix Hassan II - Casablanca Copa Petrobras-Argentina - Buenos Aires Abierto Internacional Varonil Ciudad de Cancun - Cancun ATP Studena Croatia Open - Umag Tunis Challenger Qatar ExxonMobil Open - Doha Prostejov Challenger Lugano Challenger Heineken Open - Auckland Turin Challenger Cordenons Challenger Abierto Mexicano Telcel - Acapulco Estoril Open - Estoril Studena Croatia Open - Umag Guayaquil Challenger Tanger Challenger Rabat Challenger Mercedes Cup - Stuttgart If Stockholm Open - Stockholm Brisbane International - Brisbane Open 13 - Marseille Prostejov Challenger Turin Challenger Cordenons Challenger San Marino Challenger Trani Challenger Seville Challenger Montevideo Challenger Trnava Challenger Asuncion Challenger Sao Paulo Challenger Winston-Salem Open - Winston-Salem Aircel Chennai Open - Chennai Grand Prix Hassan II - Casablanca Barcelona Open BancSabadell - Barcelona TEB BNP Paribas Istanbul Open - Istanbul Geneva Open - Geneva Vegeta Croatia Open - Umag Marrakech Challenger Szczecin Challenger Rome Challenger Santos Challenger Matsuyama Challenger Sao Paulo Challenger Arad Challenger Antalya Challenger Zadar Challenger Cordenons Challenger Banja Luka Challenger Seville Challenger Banja Luka Challenger Mallorca Challenger Garanti Koza Sofia Open - Sofia Memphis Open - Memphis Abierto Mexicano Telcel - Acapulco Sao Paulo Challenger Rome Challenger Prostejov Challenger Erste Bank Open - Vienna Poznan Challenger Bergamo Challenger Alphen Challenger Banja Luka Challenger Sibiu Challenger Ottignies-Louvain-la-Neuve Challenger Spain F8 Chennai Challenger Memphis Open - Memphis Delray Beach Open - Delray Beach San Benedetto Challenger Oberstaufen Challenger Split Challenger Dubai Duty Free Tennis Championships - Dubai Guadalajara Challenger Hungarian Open - Budapest Bet-at-home Open - Hamburg Abierto Mexicano - Los Cabos Winston-Salem Open - Winston-Salem St. Petersburg Open - St. Petersburg Shenzhen Open - Shenzhen Sydney International - Sydney Open Sud de France - Montpellier ABN AMRO World Tennis Tournament - Rotterdam Dubai Duty Free Tennis Championships - Dubai Gazprom Hungarian Open - Budapest AEGON Championships - London Antalya Cup - Antalya Plava Laguna Croatia Open - Umag St. Petersburg Open - St. Petersburg Shenzhen Open - Shenzhen Kremlin Cup - Moscow ABN AMRO World Tennis Tournament - Rotterdam Geneva Open - Geneva Turkish Airlines Open Antalya - Antalya SkiStar Swedish Open - Bastad Winston-Salem Open - Winston-Salem St. Petersburg Open - St. Petersburg Zhuhai Open - Zhuhai Kremlin Cup - Moscow Qatar ExxonMobil Open - Doha Delray Beach Open - Delray Beach Abierto Mexicano Telcel - Acapulco bett1HULKS Championships - Cologne Astana Open - Nur-Sultan Open Sud de France - Montpellier Serbia Open - Belgrade Plava Laguna Croatia Open - Umag VIII Open Internacional D'Andorra - Andorra St. Petersburg Open - St. Petersburg Kremlin Cup - Moscow Open Sud de France - Montpellier Open 13 Provence - Marseille Alphen Challenger Grand Prix Hassan II - Marrakech Serbia Open - Belgrade Santo Domingo Challenger Nottingham 2 Challenger Stockholm Open - Stockholm Firenze Open - Florence Banja Luka Open - Banja Luka Erste Bank Open - Vienna Qatar ExxonMobil Open - Doha Hangzhou Open - Hangzhou Rio Open - Rio de Janeiro European Open - Brussels Erste Bank Open - Vienna Copa Sevilla Internacionales de Andalucia - Seville Czech Open - Prostejov ATU Cup - Weiden Open de Montauban - Montauban X Ciutat de Barcelona - Barcelona Olbia Challenger - Olbia Lisbon Challenger ECM Prague Open 2005 - Prague Zagreb Open - Zagreb Badden Open by Rothaus - Ettlingen Schickendanz Open - Furth Trofeo Internacional Club Laieta - Barcelona Nord LB Open - Braunschweig Open de Montauban - Montauban Societa Canottieri Mincio 2005 - Mantova Arroyo de la Encomienda - Valladolid 7° Trani Cup - Trani San Marino Cepu Open - San Marino LXV Concurso Internacional Vigo - Vigo Antonio Savoldi-Marco Co. - Manerbio Black Forest Open - Freudenstadt Challenger Copa Sevilla - Seville XI Ciutat de Barcelona - Barcelona Blois Challenger Brest Challenger Maia Challenger UTC Open by Selena - Cherkassy BH Indoor Sarajevo - Sarajevo Tunis Open - Tunis Memorial A. Manfredini Sassuolo Challenger - Sassuolo San Benedetto Challenger - San Benedetto Medjurgorje Open - Medjugorje Copa Petrobras-Brazil - Aracaju Copa Petrobras-Paraguay - Asuncion Bancolombia Open - Cali Challenger Britania Zavaleta - Puebla Tanger Challenger Meknes Challenger Sarajevo Challenger Napoli Challenger Athens Challenger Sofia Challenger Estoril Open - Estoril Medellin Challenger Lugano Challenger Cancun Challenger Como Challenger Santiago Challenger Rabat Challenger Sao Paulo Challenger Prague Challenger Bordeaux Challenger Rijeka Challenger Kosice Challenger Braunschweig Challenger Poznan Challenger Trani Challenger San Marino Challenger Genova Challenger Madrid Challenger Sao Jose Do Rio Preto Challenger Sao Leopoldo Challenger Meknes Challenger Sao Paulo Challenger Tour Finals Blumenau Challenger Zagreb Challenger Oeiras 3 Challenger Rome Challenger Bordeaux Challenger Milan Challenger San Marino Challenger Como Challenger Brasov Challenger Lermontov Challenger Cherbourg Challenger Trieste Challenger Sarajevo Challenger Napoli Challenger Samarkand Challenger Kosice Challenger Tulln Challenger Liberec Challenger Itajai Challenger Santos Challenger Trnava Challenger Sibiu Challenger Barcelona Challenger Kolkata Challenger New Delhi Challenger Cap Cana Challenger Casablanca Challenger Rome Challenger Bratislava Challenger Mersin Challenger Itajai Challenger Sao Paulo Challenger Tunis Challenger Samarkand Challenger Arad Challenger Kosice Challenger Portoroz Challenger Bergamo Challenger Poznan Challenger Cordenons Challenger Meknes Challenger Tashkent Challenger Geneva Challenger Helsinki Challenger Santo Domingo Challenger Santos Challenger Poznan Challenger Morelos Challenger Irving Challenger San Luis Potosi Challenger Ostrava Challenger Heilbronn Challenger Moscow Challenger Braunschweig Challenger San Benedetto Challenger Bordeaux Challenger Andria Challenger Alphen Challenger Meknes Challenger Mersin Challenger Medellin Challenger Trnava Challenger Genova Challenger Mohammedia Challenger Bendigo Challenger Lima Challenger Sony Ericsson Open - Miami Guayaquil Challenger Sony Ericsson Open - Miami Nottingham 1 Challenger Quimper Challenger Monte-Carlo Rolex Masters - Monte-Carlo Lille Challenger BNP Paribas Open - Indian Wells Palermo Challenger Prostejov Challenger Sarajevo Challenger Buenos Aires Challenger Kosice Challenger Orleans Challenger Sony Open Tennis - Miami Tunis Challenger BNP Paribas Open - Indian Wells Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo Internazionali BNL d'Italia - Rome Ismaning Challenger Lisbon Challenger BNP Paribas Masters - Paris BNP Paribas Open - Indian Wells Ostrava Challenger Miami Open - Miami Karshi Challenger Rome 2 Challenger Monte-Carlo Rolex Masters - Monte-Carlo Salzburg-Anif Challenger Tunis Challenger Shanghai Rolex Masters - Shanghai BNP Paribas Open - Indian Wells Miami Open - Miami Bratislava Challenger Helsinki Challenger Monte-Carlo Rolex Masters - Monte-Carlo Mutua Madrid Open - Madrid Internazionali BNL d'Italia - Rome BRD Nastase Tiriac Trophy - Bucharest Rogers Cup - Toronto Lugano Challenger Mauthausen Challenger Kremlin Cup - Moscow Shanghai Rolex Masters - Shanghai Sibiu Challenger BNP Paribas Masters - Paris BNP Paribas Open - Indian Wells Yokohama Challenger Szekesfehervar Challenger Miami Open - Miami Ostrava Challenger Poznan Challenger Monte-Carlo Rolex Masters - Monte-Carlo Mutua Madrid Open - Madrid TEB BNP Paribas Istanbul Open - Istanbul Internazionali BNL d'Italia - Rome Braunschweig Challenger Phoenix Challenger Tampere Challenger Shanghai Rolex Masters - Shanghai Cortina Challenger BNP Paribas Masters - Paris Internazionali BNL d'Italia - Rome Zagreb Challenger Bratislava Challenger Nottingham 2 Challenger Western & Southern Open - New York TEB BNP Paribas Istanbul Open - Istanbul Forli 5 Challenger Miami Open - Miami Tampere Challenger Konzum Croatia Open - Umag Kenitra Challenger Rosario Challenger Perugia Challenger Como Challenger Vancouver Challenger Estoril Open - Estoril Marbella Challenger Belgrade Challenger Zug Challenger Santo Domingo Challenger Plava Laguna Croatia Open - Umag Konzum Croatia Open - Umag Prague 2 Challenger Abierto Mexicano Telcel - Acapulco Miami Open - Miami Movistar Chile Open - Santiago BNP Paribas Open - Indian Wells Aircel Chennai Open - Chennai Copa Claro - Buenos Aires Open Sabadell Atlantico - Barcelona Estoril Open - Estoril Copa Claro - Buenos Aires Open Sabadell Atlantico - Barcelona Japan Open Tennis Championships - Tokyo Adelaide International - Adelaide Hamburg Open - Hamburg Portugal Open - Oeiras Hellenic Championship - Athens Portugal Open - Oeiras Bet-at-home Open - Hamburg Winston-Salem Open - Winston-Salem PBZ Zagreb Indoors - Zagreb Millennium Estoril Open - Estoril Qatar ExxonMobil Open - Doha BMW Open - Munich Delray Beach Open - Delray Beach BRD Nastase Tiriac Trophy - Bucharest Millennium Estoril Open - Estoril Open de Nice Cote d'Azur - Nice Aegon Nottingham Open - Nottingham Winston-Salem Open - Winston-Salem Kremlin Cup - Moscow Garanti Koza Sofia Open - Sofia Erste Bank Open - Vienna PBZ Zagreb Indoors - Zagreb Abierto Mexicano - Los Cabos Erste Bank Open - Vienna Plava Laguna Croatia Open - Umag China Open - Beijing Erste Bank Open - Vienna Open Sud de France - Montpellier New York Open - New York Hamburg European Open - Hamburg Anytech365 Andalucia Open - Marbella Qatar ExxonMobil Open - Doha Millennium Estoril Open - Estoril Dubai Duty Free Tennis Championships - Dubai Nordea Open - Bastad Astana Open - Astana Stockholm Open - Stockholm Apia International - Sydney Bucharest Open - Bucharest Open Parc - Lyon Argentina Open - Buenos Aires Tiriac Open - Bucharest Barcelona Open Banc Sabadell - Barcelona Kremlin Cup - Moscow Brisbane International - Brisbane Mallorca Championships - Mallorca Nordea Open - Bastad Japan Open Tennis Championships - Tokyo Open 13 Provence - Marseille TEB BNP Paribas Istanbul Open - Istanbul Abierto Mexicano de Tenis Mifel - Los Cabos ABN AMRO World Tennis Tournament - Rotterdam Vilnius Challenger Heilbronn Challenger Bratislava 1 Challenger Brasil Open - Sao Paulo Mutua Madrid Open - Madrid Cincinnati Open - Cincinnati Rolex Paris Masters - Paris BNP Paribas Open - Indian Wells BCR Open Romania - Bucharest National Bank Open - Toronto Aircel Chennai Open - Chennai Western & Southern Open - Cincinnati Internazionali BNL d'Italia - Rome Moselle Open - Metz Abierto Mexicano Telcel - Acapulco BNP Paribas Open - Indian Wells China Open - Beijing Miami Open - Miami Grand Prix Hassan II - Casablanca German Tennis Championships - Hamburg Rakuten Japan Open - Tokyo Qatar ExxonMobil Open - Doha Western & Southern Open - Cincinnati Open 13 Provence - Marseille Dubai Duty Free Tennis Championships - Dubai Internazionali BNL d'Italia - Rome Australian Open - Melbourne Wimbledon - London U.S. Open - New York French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne U.S. Open - New York Australian Open Qualifying - Doha Australian Open - Melbourne French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Australian Open - Melbourne French Open - Paris Wimbledon - London Davis Cup, Group 2, 2R, SCG-POR 5-0 Davis Cup, Group 2, 2R, POR-ALG 3-2 Davis Cup, Group 1, 1R, LUX-POR 4-1 Davis Cup, Group 2, 2R, POR-TUN 4-1 Davis Cup, Group 2, 2R, POR-CYP 5-0 Davis Cup, Group 2, 1R, CYP-POR 3-2 Davis Cup, Group 2, PO, ALG-POR 0-5 Davis Cup, Group 2, 1R, POR-DEN 4-1 Davis Cup, Europe/Africa Group II, 2R, POR-CYP 5-0 Davis Cup, Europe/Africa Group II, 2R, EST-BIH 2-3 Davis Cup, Group I, 2R, ISR-POR 3-2 Davis Cup, Group II, 1R, BIH-LUX 4-1 Davis Cup, Group II, 1R, POR-BEN 5-0 Davis Cup, Group II, 2R, BIH-MDA 1-3 Davis Cup, Group II, 2R, POR-LTU 5-0 Wimbledon - London U.S. Open - New York Davis Cup, Group II, 1R, BIH-GRE 3-1 Davis Cup, Group II, 2R, FIN-BIH 2-3 French Open - Paris Davis Cup, Group I, PO, RUS-POR 4-1 Davis Cup, Group II, 1R, POR-MAR 4-1 Davis Cup, Group II, 2R, POR-FIN 4-1 Davis Cup, Group II, 3R, LTU-BIH 0-5 Davis Cup, Group I, 1R, BIH-POL 5-0 Davis Cup, World Group I, PO, BIH-RSA 3-1 Davis Cup, Group I, 1R, BIH-MEX 3-1 Davis Cup, World Group, PO, SWE-BIH 3-1 Davis Cup, World Group I, 1R, TPE-BIH 3-2 Davis Cup, Group I, 1R, ECU-BIH 3-2 French Open (juniors) Wimbledon (juniors) U.S. Open (juniors) All Lower level tournaments Davis Cup, Group 2, 3R, POR-SLO 4-1 Davis Cup, Group 1, 1R, GEO-POR 3-2 Davis Cup, Europe/Africa Group II, 3R, POR-BIH 3-2 Davis Cup, Group I, 1R, POR-SVK 4-1 Davis Cup, Group I, 2R, SUI-POR 5-0 Davis Cup, Group II, 3R, DEN-BIH 3-2 Davis Cup, Group II, 2R, BLR-BIH 4-1 Davis Cup, Group II, 3R, MDA-POR 2-3 Davis Cup, Group II, 3R, BIH-LTU 2-3 Davis Cup, Group II, 1R, ZIM-BIH 1-4 Davis Cup, Group II, 3R, POR-BLR 3-2 Davis Cup, Group I, 2R, SVK-BIH 2-3 Davis Cup, World Group, QR, AUS-BIH 4-0 Davis Cup, Group I, 1R, PER-BIH 3-2 Davis Cup, Group I, PO, TUN-BIH 1-3 Davis Cup, Group I, 1R, BIH-GER 0-4 Davis Cup, Group I, PO, BUL-BIH 1-3 Davis Cup, Group I, PO, UZB-BIH 1-3 Davis Cup, Group II, 2R, BIH-TUR 3-1 Davis Cup, Group I, 2R, BIH-NED 1-3 Olympics - Rio de Janeiro U.S. Open - New York Salzburg Challenger Australian Open - Melbourne BNP Paribas Open - Indian Wells Internazionali BNL d'Italia - Rome Shanghai Rolex Masters - Shanghai Almaty Open - Almaty Belgrade Open - Belgrade Australian Open - Melbourne Boss Open - Stuttgart Wimbledon - London U.S. Open - New York Hangzhou Open - Hangzhou Shanghai Rolex Masters - Shanghai French Open - Paris