| Loss | 0–1 | Jul 2014 | Belgium F6, Knokke | Futures | Clay | United States Ashok Narayana | Chile Cristóbal Saavedra Corvalán Chile Ricardo Urzua-Rivera | 4–6, 5–7 |
| Loss | 0–2 | Jun 2015 | USA F16B, Charlottesville | Futures | Hard | United States Gonzales Austin | United States Hunter Nicholas New Zealand Finn Tearney | 2–6, 2–6 |
| Loss | 0–3 | Jul 2015 | USA F21, Wichita | Futures | Hard | United States Gonzales Austin | Barbados Darian King India Sanam Singh | 3–6, 3–6 |
| Loss | 0–4 | Jul 2015 | Canada F5, Vancouver | Futures | Hard | United States Hunter Nicholas | United States Andre Dome New Zealand Finn Tearney | 4–6, 4–6 |
| Win | 1–4 | Oct 2015 | Israel F13, Tel Aviv | Futures | Hard | South Africa Keith-Patrick Crowley | United States Eric James Johnson United States John Lamble | 6–7(1–7), 6–3, [10–3] |
| Win | 2–4 | Oct 2015 | Israel F15, Tel Aviv | Futures | Hard | South Africa Keith-Patrick Crowley | Israel Oz Daniel United States Eric James Johnson | 7–6(7–5), 6–2 |
| Win | 3–4 | Dec 2015 | Dominican Republic F1, Santiago | Futures | Clay | United States Raleigh Smith | Portugal Gonçalo Oliveira Germany Peter Torebko | 7–6(9–7), 6–2 |
| Win | 4–4 | Dec 2015 | Dominican Republic F2, Santo Domingo | Futures | Clay | South Africa Keith-Patrick Crowley | Argentina Juan Ignacio Galarza Argentina Facundo Mena | 4–6, 6–4, [10–5] |
| Win | 5–4 | Dec 2015 | Dominican Republic F3, Santo Domingo Este | Futures | Hard | South Africa Keith-Patrick Crowley | Argentina Mateo Nicolas Martinez Mexico Luis Patiño | 7–6(7–3), 6–2 |
| Win | 6–4 | Mar 2016 | Canada F2, Sherbrooke | Futures | Hard (i) | South Africa Keith-Patrick Crowley | United Kingdom Luke Bambridge United Kingdom Liam Broady | 3–6, 7–6(7–3), [10–6] |
| Win | 7–4 | Mar 2016 | Drummondville, Canada | Challenger | Hard (i) | United States James Cerretani | United Kingdom Dan Evans United Kingdom Lloyd Glasspool | 3–6, 6–3, [11–9] |
| Win | 8–4 | Jun 2016 | Milan, Italy | Challenger | Clay | Mexico Miguel Ángel Reyes-Varela | Italy Alessandro Motti Chinese Taipei Peng Hsien-yin | 1–6, 7–6(7–4), [10–5] |
| Loss | 8–5 | Jul 2016 | Marburg, Germany | Challenger | Clay | Mexico Miguel Ángel Reyes-Varela | United States James Cerretani Austria Philipp Oswald | 3–6, 2–6 |
| Win | 9–5 | Jul 2016 | Tampere, Finland | Challenger | Clay | Spain David Pérez Sanz | Australia Steven de Waard Germany Andreas Mies | 6–4, 6–4 |
| Win | 10–5 | Jan 2017 | Happy Valley, Australia | Challenger | Hard | Chile Hans Podlipnik-Castillo | Australia Steven de Waard Australia Marc Polmans | 7–6(7–5), 4–6, [10–6] |
| Win | 11–5 | Jun 2017 | Caltanissetta, Italy | Challenger | Clay | United States James Cerretani | Ukraine Denys Molchanov Croatia Franko Škugor | 6–3, 3–6, [10–6] |
| Loss | 11–6 | Feb 2018 | Burnie, Australia | Challenger | Hard | United States Evan King | Spain Marcel Granollers Spain Gerard Granollers | 6–7(8–10), 2–6 |
| Loss | 11–7 | Jun 2019 | Little Rock, United States | Challenger | Hard | Philippines Treat Huey | Argentina Matias Franco Descotte Brazil Orlando Luz | 5–7, 6–1, [10–12] |
| Loss | 11–8 | Sep 2019 | Columbus, United States | Challenger | Hard (i) | United States Nathan Pasha | United States Martin Redlicki United States Jackson Withrow | 4–6, 6–7(4–7) |
| Loss | 11–9 | Oct 2019 | Las Vegas, United States | Challenger | Hard | United States Nathan Pasha | Philippines Ruben Gonzales South Africa Ruan Roelofse | 6–2, 3–6, [8–10] |
| Win | 12–9 | Mar 2020 | Calgary, Canada | Challenger | Hard (i) | United States Nathan Pasha | Canada Filip Peliwo Australia Harry Bourchier | 7–6(7–4), 6–3 |
| Loss | 12–10 | Feb 2021 | Nur-Sultan, Kazakhstan | Challenger | Hard (i) | United States Nathan Pasha | Ukraine Denys Molchanov Kazakhstan Aleksandr Nedovyesov | 4–6, 4–6 |
| Loss | 12–11 | Mar 2021 | Nur-Sultan, Kazakhstan | Challenger | Hard (i) | United States Nathan Pasha | United States Nathaniel Lammons United States Jackson Withrow | 4–6, 2–6 |
| Win | 13–11 | Sep 2021 | Cary, USA | Challenger | Hard | United States William Blumberg | United States Stefan Kozlov Canada Peter Polansky | 6–4, 1–6, [10–4] |
| Loss | 13–12 | Oct 2021 | Santiago, Chile | Challenger | Clay | United States Evan King | Ecuador Diego Hidalgo Chile Nicolás Jarry | 3–6, 7–5, [6–10] |
| Win | 14–12 | Oct 2021 | Santiago, Chile | Challenger | Clay | United States Evan King | Mexico Hans Hach Verdugo Mexico Miguel Ángel Reyes-Varela | 3–6, 7–6(7–3), [16–14] |
| Win | 15–12 | Oct 2021 | Las Vegas, USA | Challenger | Hard | United States William Blumberg | Chinese Taipei Jason Jung United States Evan King | 7–5, 6–7(5–7), [10–5] |
| Win | 16–12 | Nov 2021 | Charlottesville, USA | Challenger | Hard (i) | United States William Blumberg | Philippines Treat Huey Denmark Frederik Nielsen | 3–6, 6–1, [14–12] |
| Loss | 16–13 | Nov 2021 | Champaign, USA | Challenger | Hard (i) | Philippines Treat Huey | United States Nathaniel Lammons United States Jackson Withrow | 4–6, 6–3, [6–10] |
| Win | 17–13 | Jan 2022 | Cleveland, USA | Challenger | Hard (i) | United States William Blumberg | United States Robert Galloway United States Jackson Withrow | 6–3, 7–6(7–4) |
| Loss | 17–14 | May 2022 | Little Rock, USA | Challenger | Hard | United States Robert Galloway | Australia Andrew Harris United States Christian Harrison | 3–6, 4–6 |
| Loss | 17–15 | Jul 2022 | Winnipeg, Canada | Challenger | Hard | Australia John-Patrick Smith | United Kingdom Billy Harris Canada Kelsey Stevenson | 6–2, 6–7(9–11), [8–10] |
| Win | 18–15 | Oct 2022 | Hamburg, Germany | Challenger | Hard (i) | Philippines Treat Huey | Jamaica Dustin Brown Germany Julian Lenz | 7–6(8–6), 6–4 |