| Result | W–L | Date | Tournament | Tier | Surface | Partner | Opponents | Score |
|---|
| Loss | 0–1 | Nov 2013 | Greece F17, Heraklion | Futures | Hard | Paul Cayre | Miki Janković
Tom Kočevar-Dešman | 4–6, 0–6 |
| Loss | 0–2 | Aug 2014 | Finland F2, Hyvinkaa | Futures | Clay | Paul Cayre | Jesper Brunstrom
Patrik Rosenholm | 2–6, 3–6 |
| Loss | 0–3 | May 2015 | Turkey F18, Antalya | Futures | Hard | Benjamin Bonzi | Maximilian Neuchrist
Lucas Miedler | 2–6, 3–6 |
| Win | 1–3 | May 2015 | Algeria F3, Annaba | Futures | Clay | Sadio Doumbia | Rafael Camilo
Adria Mas Mascolo | 6–3, 7–6(7–5) |
| Win | 2–3 | Jul 2015 | France F13, Bourg-en-Bresse | Futures | Clay | Maxime Teixeira | Gianni Mina
Elie Rousset | 7–6(7–5), 4–6, [10–8] |
| Win | 3–3 | Jul 2015 | France F15, Troyes | Futures | Clay | Loic Perret | Julien Demois
Yanais Laurent | 4–6, 6–2, [10–7] |
| Win | 4–3 | Oct 2015 | Tunisia F26, El Kantaoui | Futures | Hard | Benjamin Bonzi | Lukas Mugevicius
Roberto Ortega Olmedo | 4–6, 6–4, [10–8] |
| Win | 5–3 | Oct 2015 | Tunisia F27, El Kantaoui | Futures | Hard | Benjamin Bonzi | Anis Ghorbel
Aziz Dougaz | 6–2, 6–2 |
| Win | 6–3 | Oct 2015 | France F23, Rodez | Futures | Hard | Filip Peliwo | Jonathan Eysseric
Tom Jomby | 6–7(2–7), 6–4, [10–4] |
| Win | 7–3 | Feb 2016 | Israel F1, Tel Aviv | Futures | Hard | Laurent Lokoli | Peter Heller
Jaime Pulgar-Garcia | 6–3, 7–5 |
| Win | 8–3 | Mar 2016 | France F5, Toulouse | Futures | Hard | Benjamin Bonzi | Martin Beran
Maxime Tabatruong | 7–5, 6–3 |
| Win | 9–3 | May 2016 | Algeria F1, Oran | Futures | Clay | Alexandre Müller | Pol Toledo Bagué
Adria Mas Mascolo | 6–4, 6–4 |
| Loss | 9–4 | May 2016 | Algeria F2, Algiers | Futures | Clay | Jordi Muñoz Abreu | Grégoire Jacq
Alexandre Müller | 4–6, 3–6 |
| Win | 10–4 | May 2016 | Algeria F3, Algiers | Futures | Clay | Jordi Muñoz Abreu | Grégoire Jacq
Jonathan Kanar | 6–4, 7–6(7–4) |
| Win | 11–4 | Aug 2016 | Switzerland F3, Collonge-Bellerive | Futures | Clay | Gonçalo Oliveira | Antoine Bellier
Hugo Nys | 6–3, 7–5 |
| Win | 12–4 | Aug 2016 | Switzerland F4, Lausanne | Futures | Clay | Gonçalo Oliveira | Louroi Martinez
Federico Coria | 7–5, 6–2 |
| Win | 13–4 | Sep 2016 | Switzerland F5, Sion | Futures | Clay | Gonçalo Oliveira | Louroi Martinez
Federico Coria | 6–3, 6–3 |
| Loss | 13–5 | Sep 2016 | Tunisia F22, Hammamet | Futures | Clay | Benjamin Bonzi | Mariano Kestelboim
Franco Agamenone | 2–6, 6–2, [7–10] |
| Win | 14–5 | Sep 2016 | Tunisia F23, Hammamet | Futures | Clay | Benjamin Bonzi | Mariano Kestelboim
Franco Agamenone | 2–6, 7–5, [10–4] |
| Win | 15–5 | Dec 2016 | Thailand F5, Hua Hin | Futures | Hard | Sadio Doumbia | Soonwoo Kwon
Lee Jea Moon | 6–3, 6–4 |
| Loss | 15–6 | Jan 2017 | Bangkok, Thailand | Challenger | Hard | Sadio Doumbia | Sonchat Ratiwatana
Sanchai Ratiwatana | 6–7(4–7), 5–7 |
| Win | 16–6 | Mar 2017 | France F5, Toulouse | Futures | Hard | Thai-Son Kwiatkowski | Niels Desein
Yannick Jankovits | 6–3, 7–6(7–4) |
| Win | 17–6 | Sep 2017 | Egypt F24, Cairo | Futures | Clay | Johan Sebastien Tatlot | Fernando Romboli
Fabrizio Ornago | 6–4, 6–4 |
| Win | 18–6 | Jan 2018 | France F2, Bressuire | Futures | Hard | Sadio Doumbia | Sebastien Boltz
Erik Crepaldi | 6–3, 7–5 |
| Loss | 18–7 | Aug 2018 | Hungary F6, Győr | Futures | Clay | Sadio Doumbia | Danylo Kalenichenko
Filip Polášek | 4–6, 6–3, [17–19] |
| Win | 19–7 | Oct 2018 | Lebanon F2, Jounieh | Futures | Clay | Sadio Doumbia | Wilson Leite
Nicolo Turchetti | 4–6, 6–2, [10–4] |
| Win | 20–7 | Apr 2019 | M25+H Abuja, Nigeria | World Tennis Tour | Hard | Sadio Doumbia | Benjamin Lock
Courtney John Lock | 6–7(5–7), 6–3, [10–7] |
| Win | 21–7 | Apr 2019 | M25+H Abuja, Nigeria | World Tennis Tour | Hard | Sadio Doumbia | Dan Added
Michail Pervolarakis | 6–4, 5–7, [10–6] |
| Loss | 21–8 | Jul 2019 | M25 Bourg-en-Bresse, France | World Tennis Tour | Clay | Sadio Doumbia | Arthur Reymond
Matteo Martineau | 1–6, 6–7(4–7) |
| Loss | 21–9 | Jul 2019 | M25+H Kassel, Germany | World Tennis Tour | Clay | Sadio Doumbia | Mats Rosenkranz
James Frawley | 5–7, 6–7(10–12) |
| Loss | 21–10 | Aug 2019 | Manerbio, Italy | Challenger | Clay | Sadio Doumbia | Fernando Romboli
Fabrício Neis | 4–6, 6–7(4–7) |
| Win | 22–10 | Sep 2019 | M25 Trieste, France | World Tennis Tour | Clay | Sadio Doumbia | Davide Galoppini
Pietro Rondoni | 6–3, 6–2 |
| Win | 23–10 | Sep 2019 | Banja Luka, Bosnia & Herzegovina | Challenger | Clay | Sadio Doumbia | Facundo Mena
Sergio Galdós | 6–3, 7–6(7–4) |
| Win | 24–10 | Sep 2019 | Romania, Romania | Challenger | Clay | Sadio Doumbia | Ivan Sabanov
Matej Sabanov | 6–4, 3–6, [10–7] |
| Win | 25–10 | Oct 2020 | M25+H Rodez, France | World Tennis Tour | Hard | Sadio Doumbia | Igor Sijsling
Glenn Smits | 6–3, 7–5 |
| Loss | 25–11 | Nov 2020 | Parma, Italy | Challenger | Hard | Sadio Doumbia | Albano Olivetti
Grégoire Barrère | 2–6, 4–6 |
| Win | 26–11 | Dec 2020 | Campinas, Brazil | Challenger | Clay | Sadio Doumbia | Luis David Martinez
Felipe Meligeni Alves | 6–7(7–9), 7–5, [10–7] |
| Win | 27–11 | Jan 2021 | M15 Manacor, Spain | World Tennis Tour | Hard | Sadio Doumbia | Dan Added
Antoine Bellier | 7–6(7–1), 6–1 |
| Win | 28–11 | Apr 2021 | Rome, Italy | Challenger | Clay | Sadio Doumbia | Paolo Lorenzi
Juan Pablo Varillas | 7–6(7–5), 7–5 |
| Win | 29–11 | May 2021 | Rome 2, Italy | Challenger | Clay | Sadio Doumbia | Guillermo Durán
Guido Andreozzi | 7–5, 6–3 |
| Loss | 29–12 | May 2021 | Oeiras 3, Portugal | Challenger | Clay | Sadio Doumbia | Hunter Reese
Sem Verbeek | 6–4, 4–6, [7–10] |
| Win | 30–12 | June 2021 | Aix-en-Provence, France | Challenger | Clay | Sadio Doumbia | Robert Galloway
Alex Lawson | 6–7(4–7), 7–5, [10–4] |
| Win | 31–12 | June 2021 | Verona, Italy | Challenger | Clay | Sadio Doumbia | Luca Margaroli
Gonçalo Oliveira | 7–5, 4–6, [10–6] |
| Win | 32–12 | October 2021 | Brest, France | Challenger | Hard (i) | Sadio Doumbia | Salvatore Caruso
Federico Gaio | 4–6, 6–3, [10–3] |
| Win | 33–12 | January 2022 | Forlì, Italy | Challenger | Hard (i) | Sadio Doumbia | Nicolás Mejía
Alexander Ritschard | 6-2, 6-3 |
| Win | 34–12 | February 2022 | Las Palmas, Spain | Challenger | Clay | Sadio Doumbia | Matteo Arnaldi
Luciano Darderi | 5–7, 6–4, [10–7] |
| Loss | 34–13 | April 2022 | Split, Croatia | Challenger | Clay | Sadio Doumbia | Nathaniel Lammons
Albano Olivetti | 6–4, 6–7(6–8), [7–10] |
| Loss | 34–14 | April 2022 | Rome, Italy | Challenger | Clay | Sadio Doumbia | Jesper de Jong
Bart Stevens | 6–3, 5–7, [8–10] |
| Loss | 34–15 | May 2022 | Forlì, Italy | Challenger | Clay | Sadio Doumbia | Nicolás Barrientos
Miguel Ángel Reyes-Varela | 5–7, 6–4, [4–10] |
| Win | 35–15 | June 2022 | Perugia, Italy | Challenger | Clay | Sadio Doumbia | Marco Bortolotti
Sergio Martos Gornés | 6-2, 6-4 |
| Win | 36–15 | June 2022 | Oeiras, Portugal | Challenger | Clay | Sadio Doumbia | Robert Galloway
Alex Lawson | 6–3, 3–6, [15–13] |
| Loss | 36–16 | Aug 2022 | Grodzisk Mazowiecki, Poland | Challenger | Hard | Hugo Nys | Robin Haase
Philipp Oswald | 3–6, 4–6 |
| Win | 37–16 | Nov 2022 | Roanne, France | Challenger | Hard (i) | Sadio Doumbia | Dustin Brown
Szymon Walków | 7–6(7–5), 6–4 |
| Win | 38–16 | Jan 2023 | Quimper, France | Challenger | Hard (i) | Sadio Doumbia | Anirudh Chandrasekar
Arjun Kadhe | 6–2, 6–4 |
| Win | 39–16 | Apr 2023 | Split, Croatia | Challenger | Clay | Sadio Doumbia | Anirudh Chandrasekar
Vijay Sundar Prashanth | 6–4, 6–4 |
| Loss | 39–17 | May 2023 | Bordeaux, France | Challenger | Clay | Sadio Doumbia | Lloyd Glasspool
Harri Heliövaara | 4–6, 2–6 |
| Win | 40–17 | Mar 2024 | Phoenix, USA | Challenger | Hard | Sadio Doumbia | Rinky Hijikata
Henry Patten | 6–3, 6–2 |
| Win | 41–17 | Jan 2025 | Quimper, France | Challenger | Hard (i) | Sadio Doumbia | Manuel Guinard
Romain Arneodo | 6–2, 4–6, [10–3] |