Career 2025 2024 2023 2022 2021 2020 2019 2018 2017 2016 2015 2014 2013 2012 2011 2010 2009 2008 2007 2006 2005 2004 
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 Karlsruhe Challenger M25 Marburg M25+H Kassel M25 Roehampton M25 Porto Porto Challenger M15 Budapest M15 Kursumlijska Banja M15 Kursumlijska Banja Mouilleron-Le-Captif Challenger Bergamo Challenger M25 Benicarlo M15 Valencia M25 Vic Girona Challenger Oeiras 1 Challenger Hamburg Challenger M15 Azay-le-Rideau M15 Dubrovnik M15 Poitiers M15 Bressuire M15 Doboj Pau Challenger M15+H Bagnoles de l'Orne M25 Toulouse-Balma Koblenz Challenger Cherbourg Challenger Lille Challenger M25 Trnava M15 Split Split Challenger M15 Monastir Barcelona Challenger M15 Monastir M15 Gijon M25 Mataro M15 Osijek M15 Prijedor M25 Villeneuve-Loubet M15 Monastir M25+H Ajaccio M15 Kamen Porto Challenger Pozoblanco Challenger M15 Monastir M15 Monastir M25+H Bagneres-de-Bigorre M25 Porto M25 Bali Porto 2 Challenger Rennes Challenger M15 Bali M15 Singapore M15 Monastir Mouilleron-Le-Captif Challenger M15 Kayseri M15 Bressuire Roanne Challenger St. Brieuc Challenger M25 Monastir M25 Monastir M15 Monastir M15 Heraklion Banja Luka Challenger M15 Doha M15 Doha M15 Monastir St. Tropez Challenger M15 Poitiers M15 Monastir M25 Monastir M15 Heraklion M15 Monastir M25 Esch/Alzette Tulln Challenger M15 Hinode Cherbourg Challenger Trieste Challenger M15 Doha M25 Hazebrouck M15 Monastir M25 Toulouse-Balma Troyes Challenger Oeiras 5 Challenger Porto 2 Challenger M15 Lons-le-Saunier M25 Carnac M25 Villeneuve-Loubet M25 Mataro M15 Kayseri Royan Challenger Nottingham 3 Challenger M15 Kayseri Pozoblanco Challenger Segovia Challenger M15 Bali Cassis Challenger M15 Kayseri Rennes Challenger Roanne Challenger Mouilleron-Le-Captif Challenger Orleans Challenger M15 Kayseri Brest Challenger M15 Monastir Bosnia/Herzegovina F1 Serbia&Montenegro F1 France F19 Bosnia/Herzegovina F1 Bosnia/Herzegovina F2 Croatia F3 Serbia & Montenegro F6 Croatia F5 Serbia F5 Serbia F1 Portugal F2 Bosnia & Herzegovina F3 Italy F22 France F13 France F14 France F15 Croatia F1 France F19 Croatia F7 France F20 Rodez Sudan F1 Sudan F2 Great Britain F1 Great Britain F2 France F1 France F2 Turkey F4 France F5 Italy F3 France F6 Bosnia & Herzegovina F1 Bosnia & Herzegovina F2 Bosnia & Herzegovina F3 Bosnia & Herzegovina F4 Bosnia & Herzegovina F5 Serbia F2 France F10 Croatia F8 Turkey F32 Turkey F33 Turkey F34 Turkey F35 Turkey F1 Turkey F2 Turkey F3 Turkey F4 Croatia F1 Croatia F2 France F4 France F5 Italy F1 Bosnia & Herzegovina F2 Bosnia & Herzegovina F3 Bosnia & Herzegovina F4 Bosnia & Herzegovina F5 Serbia F1 Serbia F2 Serbia F4 Serbia F5 Serbia F6 Serbia F7 Serbia F8 Croatia F8 Croatia F9 Serbia F11 Serbia F13 Serbia F14 Croatia F11 Croatia F12 Turkey F43 Turkey F44 Turkey F45 Turkey F46 Turkey F2 Croatia F2 France F4 Canada F1 Serbia & Montenegro F3 Serbia & Montenegro F4 Canada F2 Croatia F4 Croatia F5 Bosnia & Herzegovina F1 France F12 Turkey F35 Senegal F1 Senegal F2 Turkey F49 Turkey F50 France F1 Turkey F2 Turkey F3 Turkey F5 Turkey F6 Greece F1 Greece F2 Greece F3 Greece F4 Turkey F22 Turkey F23 Turkey F24 Turkey F25 Tunisia F7 Egypt F27 Egypt F28 Egypt F29 Senegal F1 Senegal F2 Turkey F46 Turkey F27 Turkey F28 Turkey F29 Germany F18 Egypt F40 Egypt F41 Nigeria F3 Nigeria F4 Nigeria F2 Croatia F8 Egypt F13 Egypt F14 Egypt F1 (Sharm El Sheikh) Egypt F2 (Sharm El Sheikh) Egypt F3 (Sharm El Sheikh) Egypt F8 (Sharm El Sheikh) Egypt F9 (Sharm El Sheikh) Croatia F4 Egypt F12 (Sharm El Sheikh) Egypt F13 (Sharm El Sheikh) Bosnia/Herzegovina F1 Bosnia/Herzegovina F2 Bosnia/Herzegovina F3 Serbia F1 Serbia F2 Serbia F3 Serbia F4 Croatia F9 France F12 Tunisia F4 Tunisia F5 Tunisia F6 France F2 France F3 Turkey F3 Turkey F4 Turkey F5 Turkey F6 Bosnia/Herzegovina F2 Bosnia/Herzegovina F3 Bosnia/Herzegovina F4 Serbia F2 Serbia F3 Serbia F4 Serbia F5 Serbia F6 France F13 France F15 Bosnia/Herzegovina F6 Bosnia/Herzegovina F7 France F17 Croatia F10 France F20 Iran F5 Iran F6 France F1 France F2 Croatia F1 Portugal F1 France F4 Portugal F3 Turkey F4 Turkey F5 Bosnia & Herzegovina F1 Bosnia & Herzegovina F2 Bosnia & Herzegovina F4 Serbia F2 France F8 Serbia F3 France F9 France F10 Syria F1 France F12 Syria F2 Belgium F2 Serbia F7 Belgium F3 Croatia F7 Croatia F8 France F13 Egypt F7 (Sharm El Sheikh) Egypt F8 (Sharm El Sheikh) France F15 Bosnia/Herzegovina F5 Bosnia/Herzegovina F6 France F18 Croatia F9 France F19 Croatia F10 France F20 Turkey F12 Turkey F13 Hungary F6 (Gyor) France F1 Germany F3 France F2 Germany F4 Bosnia/Herzegovina F1 Bosnia & Herzegovina F2 France F4 France F5 Turkey F6 Spain F11 Turkey F7 France F7 Spain F14 Bosnia & Herzegovina F3 M25 Kiseljak Bosnia & Herzegovina F4 Bosnia & Herzegovina F5 Bosnia & Herzegovina F7 France F8 M25 Gyor Serbia F2 France F10 Serbia F3 France F11 France F12 M25 Stockholm M25 Falun Estonia F1 Estonia F2 M25+H Lagos M25+H Lagos Spain F27 M15 Opava M15 Prague Serbia F4 Spain F29 Serbia F5 M15 Monastir M15 Manacor M15 Monastir M15+H Bagnoles-de-l'Orne M25 Nussloch M15+H Bressuire Belgium F2 France F17 M25 Aktobe M25 Aktobe M15 Vale Do Lobo M15 Trnava M15 Faro M15 Toulouse M15 Doha M15 Sintra M25+H Rodez M15 Sharm El Sheikh M15 Sharm El Sheikh M15 Sharm El Sheikh M15 Cairo M15 Benicarlo M15 Cairo M15 Madrid M15 Cairo M15 Manacor M15 Manacor M15+H Bressuire M15 Sharm El Sheikh M15 Sharm El Sheikh M25 Vale do Lobo M25 Faro M15 Sharm El Sheikh M15 Sharm El Sheikh M25 Vale do Lobo M15 Poitiers M15 Sharm El Sheikh M15 Sharm El Sheikh M15 Sharm El Sheikh M25 Reus M25 Angers M15 Sibenik M15 Las Palmas de Gran Canaria M15 Prijedor M25 Kiseljak M15 Sarajevo M15 Sibenik M25 Montauban M25 Belgrade M25 Velenje M25+H Ajaccio M15 Doboj M15 Xativa M25 Prostejov M25 Santander M25 Bagneres-De-Bigorre M15 Pirot M25 Skopje M25+H Rodez M25 Toulouse M15 Manacor M25 Vale do Lobo M15 Creteil M25 Trimbach M15 Poitiers M25 Toulouse-Balma M25 Reus M25 Angers M25 Split M25 Vic M15 Sarajevo M25 Montauban M25 Maribor M25 Maribor M25 Trnava M15 Trnava M25 Loughborough M25 Sheffield M25 Sunderland M15 Sharm ElSheikh M15 Sharm ElSheikh M25 Dubrovnik M15 Meerbusch M15 Osijek M15 Prijedor M15 Brcko M15 Sarajevo France F18 France F4 M15 Madrid Sarajevo Open 2004 - Sarajevo Sarajevo Open - Sarajevo Banja Luka Challenger 2005 - Banja Luka BH Telecom Indoors Sarajevo 2006 - Sarajevo Sony Ericsson Open 2008 - Belgrade Challenger DCNS de Cherbourg - Cherbourg BH Indoor Sarajevo - Sarajevo Medjurgorje Open - Medjugorje Open D'Orleans - Orleans Banja Luka Challenger 2008 - Banja Luka Belgrade Challenger Cherbourg Challenger Sarajevo Challenger Samarkand Challenger Cherbourg Challeger Sarajevo Challenger St. Brieuc Challenger Bordeaux Challenger Rijeka Challenger Napoli Challenger Palermo Challenger Aachen Challenger Bratislava Challenger Quimper Challenger Casablanca Challenger Cherbourg Challenger Serbia F3 Barletta Challenger St. Brieuc Challenger Monza Challenger Rome Challenger Bordeaux Challenger Pozoblanco Challenger Orbetello Challenger Recanati Challenger Segovia Challenger San Marino Challenger Manerbio Challenger St. Remy Challenger Istanbul Challenger Mons Challenger Rennes Challenger Orleans Challenger Bratislava Challenger Helsinki Challenger Noumea Challenger Quimper Challenger Cherbourg Challenger Sarajevo Challenger Bath Challenger St. Brieuc Challenger Napoli Challenger Tunis Challenger Bordeaux Challenger Nottingham Challenger Scheveningen Challenger Recanati Challenger Pozoblanco Challenger Cordenons Challenger Segovia Challenger St. Remy Challenger Petange Challenger Banja Luka Challenger Orleans Challenger Mons Challenger Rennes Challenger Seoul Challenger Geneva Challenger Bratislava Challenger Heilbronn Challenger Quimper Challenger Cherbourg Challenger Rimouski Challenger St. Brieuc Challenger Itajai Challenger Santos Challenger Sao Paulo Challenger Tunis Challenger Ostrava Challenger Bordeaux Challenger Nottingham Challenger Furth Challenger Kosice Challenger Timisoara Challenger San Benedetto Challenger Recanati Challenger San Marino Challenger St. Remy Challenger Istanbul Challenger Petange Challenger Izmir Challenger Orleans Challenger Mons Challenger Rennes Challenger Eckental Challenger Bratislava Challenger Heilbronn Challenger Cherbourg Challenger Guadalajara Challenger Le Gosier Challenger Tunis Challenger Bordeaux Challenger Samarkand Challenger Karshi Challenger Nottingham Challenger Arad Challenger Kosice Challenger Milan Challenger Cortina Challenger San Marino Challenger Meerbusch Challenger Genova Challenger St. Remy Challenger Banja Luka Challenger Izmir Challenger Orleans Challenger Sibiu Challenger Mons Challenger Rennes Challenger Mouilleron-Le-Captif Challenger Ortisei Challenger Helsinki Challenger Andria Challenger Noumea Challenger Happy Valley Challenger Cherbourg Challenger Quimper Challenger Guangzhou Challenger Shenzhen Challenger Le Gosier Challenger Napoli Challenger Mersin Challenger Karshi Challenger Bordeaux Challenger Samarkand Challenger Prostejov Challenger Prague Challenger Fergana Challenger Portoroz Challenger Cordenons Challenger Meerbusch Challenger Manerbio Challenger Como Challenger Genova Challenger Istanbul Challenger Izmir Challenger Orleans Challenger Agri Challenger Mons Challenger Tashkent Challenger Eckental Challenger Ortisei Challenger Happy Valley Challenger Bergamo Challenger Cherbourg Challenger Quimper Challenger Jonkoping Challenger Kazan Challenger Rome Challenger Prostejov Challenger Surbiton Challenger Ilkley Challenger Braunschweig Challenger Recanati Challenger Segovia Challenger Portoroz Challenger Manerbio Challenger Como Challenger Genova Challenger St. Remy Challenger Istanbul Challenger Izmir Challenger Orleans Challenger Mons Challenger Tashkent Challenger Brest Challenger Budapest Challenger Eckental Challenger Bratislava Challenger Mouilleron-Le-Captif Challenger Brescia Challenger Andria Challenger Noumea Challenger Koblenz Challenger Rennes Challenger Cherbourg Challenger Wroclaw Challenger St. Brieuc Challenger Sophia Antipolis Challenger Ostrava Challenger Aix En Provence Challenger Karshi Challenger Bordeaux Challenger Samarkand Challenger Surbiton Challenger Nottingham Challenger Ilkley Challenger Recanati Challenger Perugia Challenger Astana Challenger Cortina Challenger Segovia Challenger Portoroz Challenger Como Challenger Genova Challenger Szczecin Challenger Istanbul Challenger Izmir Challenger Orleans Challenger Tashkent Challenger Ortisei Challenger Brest Challenger Eckental Challenger Bratislava Challenger Mouilleron-Le-Captif Challenger Andria Challenger Noumea Challenger Koblenz Challenger Rennes Challenger Quimper Challenger Budapest Challenger Cherbourg Challenger Bergamo Challenger Lille Challenger St. Brieuc Challenger Alicante Challenger Mexico City Challenger Guadalajara Challenger Leon Challenger Aix En Provence Challenger Karshi Challenger Bordeaux Challenger Samarkand Challenger Loughborough Challenger Poznan Challenger Shymkent Challenger Lyon Challenger Almaty Challenger Fergana Challenger Blois Challenger Recanati Challenger Perugia Challenger Astana Challenger Segovia Challenger Portoroz Challenger Cordenons Challenger Mallorca Challenger Seville Challenger Zhangjiagang Challenger Szczecin Challenger Shanghai Challenger Sibiu Challenger Orleans Challenger Florence Challenger Ortisei Challenger Barcelona Challenger Ismaning Challenger Eckental Challenger Bratislava Challenger Mouilleron-Le-Captif Challenger Andria Challenger Noumea Challenger Koblenz Challenger Lille Challenger St. Brieuc Challenger Sophia Antipolis Challenger Barletta Challenger Tunis Challenger Francavilla Challenger Bordeaux Challenger Seoul Challenger Aix En Provence Challenger Busan Challenger Lisbon Challenger Gwangju Challenger Vicenza Challenger Prostejov Challenger Fergana Challenger Blois Challenger Recanati Challenger Perugia Challenger Nur-Sultan Challenger Amersfoort Challenger Prague Challenger Segovia Challenger Manerbio Challenger Portoroz Challenger Istanbul Challenger Ortisei Challenger Cherbourg Challenger Cherbourg Challenger Prostejov Challenger Trieste Challenger Prague 2 Challenger Warsaw Challenger Banja Luka Challenger Rennes Challenger Istanbul 2 Challenger Mouilleron-Le-Captif Challenger Losinj Challenger Brest Challenger Eckental Challenger Roanne Challenger Ortisei Challenger Pau Challenger Bari Challenger Forli 2 Challenger Forli 3 Challenger Forli 1 Challenger Forli 2 Challenger Cherbourg Challenger Forli 5 Challenger Biel Challenger Lugano Challenger Turin Challenger Sanremo Challenger Split Challenger Rome 1 Challenger Prague 2 Challenger Bordeaux Challenger Zagreb Challenger Tunis Challenger Vicenza Challenger Troisdorf Challenger Forli 6 Challenger Poznan Challenger Lyon Challenger Milan Challenger Luedenscheid Challenger Troyes Challenger Salzburg Challenger Porto Challenger Trieste Challenger Pozoblanco Challenger Zug Challenger Segovia Challenger Grodzisk Mazowiecki Challenger Banja Luka Challenger Prague 3 Challenger Como Challenger Cassis Challenger Rennes Challenger Istanbul Challenger Orleans Challenger Mouilleron-Le-Captif Challenger Ismaning Challenger Hamburg Challenger Vilnus Challenger Brest Challenger Ortisei Challenger Bergamo Challenger Roanne Challenger Bratislava Challenger Valencia Challenger Maia Challenger Oeiras 1 Challenger Oeiras 2 Challenger Ottignies-Louvain-la-Neuve Challenger Koblenz Challenger Cherbourg Challenger Pau Challenger Lugano Challenger Szekesfehervar Challenger Zadar Challenger Lille Challenger Madrid Challenger Oeiras 3 Challenger Rome Challenger Aix En Provence Challenger Mauthausen Challenger Troisdorf Challenger Perugia Challenger Blois Challenger Aircel Chennai Open - Chennai Serbia Open - Belgrade BMW Open - Munich AEGON Championships - London ATP Studena Croatia Open - Umag Open de Moselle - Metz Open Sud de France - Montpellier Open 13 - Marseille Serbia Open - Belgrade Open de Nice Cote d'Azur - Nice AEGON Championships - London Moselle Open - Metz Aircel Chennai Open - Chennai Apia International - Sydney Open Sud de France - Montpellier Grand Prix Hassan II - Casablanca Barcelona Open BancSabadell - Barcelona AEGON Championships - London AEGON International - Eastbourne Hall of Fame Tennis Championships - Newport Credit Agricole Suisse Open - Gstaad Bet-at-home Cup - Kitzbuhel Winston-Salem Open - Winston-Salem Moselle Open - Metz If Stockholm Open - Stockholm Erste Bank Open - Vienna Swiss Indoors Basel - Basel Apia International - Sydney Open Sud de France - Montpellier ABN AMRO World Tennis Tournament - Rotterdam Open 13 - Marseille Grand Prix Hassan II - Casablanca Barcelona Open BancSabadell - Barcelona BRD Nastase Tiriac Trophy - Bucharest BMW Open - Munich Open de Nice Cote d'Azur - Nice AEGON Championships - London Topshelf Open - 's-Hertogenbosch SkiStar Swedish Open - Bastad Bet-at-home Open - Hamburg Credit Agricole Suisse Open - Gstaad Bet-at-home Cup - Kitzbuhel Moselle Open - Metz Swiss Indoors Basel - Basel Heineken Open - Auckland Open Sud de France - Montpellier PBZ Zagreb Indoors - Zagreb Open 13 - Marseille Barcelona Open BancSabadell - Barcelona BRD Nastase Tiriac Trophy - Bucharest TEB BNP Paribas Istanbul Open - Istanbul Topshelf Open - 's-Hertogenbosch SkiStar Swedish Open - Bastad Credit Agricole Suisse Open - Gstaad Austrian Open - Kitzbuhel Moselle Open - Metz Kremlin Cup - Moscow Erste Bank Open - Vienna Valencia Open - Valencia Millennium Estoril Open - Estoril Open Sud de France - Montpellier Garanti Koza Sofia Open - Sofia Open 13 - Marseille Grand Prix Hassan II - Marrakech Barcelona Open BancSabadell - Barcelona BRD Nastase Tiriac Trophy - Bucharest Millennium Estoril Open - Estoril AEGON Championships - London Bet-at-home Open - Hamburg Generali Open - Kitzbuhel Moselle Open - Metz European Open - Antwerp Swiss Indoors Basel - Basel Open Sud de France - Montpellier Barcelona Open BancSabadell - Barcelona Hungarian Open - Budapest Millennium Estoril Open - Estoril Ricoh Open - 's-Hertogenbosch AEGON Championships - London Konzum Croatia Open - Umag Bet-at-home Open - Hamburg Moselle Open - Metz European Open - Antwerp Swiss Indoors Basel - Basel Qatar ExxonMobil Open - Doha Open Sud de France - Montpellier Open 13 Provence - Marseille Barcelona Open BancSabadell - Barcelona Millennium Estoril Open - Estoril TEB BNP Paribas Istanbul Open - Istanbul Plava Laguna Croatia Open - Umag Swiss Open - Gstaad Moselle Open - Metz European Open - Antwerp Open Sud de France - Montpellier Open Parc - Lyon Turkish Airlines Open Antalya - Antalya Nature Valley International - Eastbourne Banja Luka Open - Banja Luka Serbia F3 BNP Paribas Masters - Paris Sony Open Tennis - Miami Monte-Carlo Rolex Masters - Monte-Carlo BNP Paribas Masters - Paris Sony Open Tennis - Miami Monte-Carlo Rolex Masters - Monte-Carlo BNP Paribas Masters - Paris Miami Open - Miami Mutua Madrid Open - Madrid BNP Paribas Masters - Paris Miami Open - Miami Monte-Carlo Rolex Masters - Monte-Carlo Internazionali BNL d'Italia - Rome Croatia F1 French Open - Paris Wimbledon - London U.S. Open - New York Australian Open - Melbourne French Open - Paris Wimbledon - London 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 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 Davis Cup, Group 2, 1R, MKD-BIH 2-3 Davis Cup, Europe/Africa Group II, 2R, EST-BIH 2-3 Davis Cup, Europe/Africa Group II, 3R, POR-BIH 3-2 Davis Cup, Group II, 1R, MAR-BIH 2-3 Davis Cup, Group II, 2R, BIH-EST 3-2 Davis Cup, Group II, 3R, DEN-BIH 3-2 Davis Cup, Group II, 1R, BIH-LUX 4-1 Hopman Cup - Perth All Lower level tournaments Mallorca Challenger Orleans Challenger Cordenons Challenger Maia Challenger