| Result | W–L | Date | Tournament | Tier | Surface | Partner | Opponents | Score |
|---|
| Loss | 0–1 | Dec 2015 | Czech Republic F8,Opava | Futures | Carpet | Matěj Vocel | Filip Dolezel
Petr Michnev | 1–6, 4–6 |
| Loss | 0–2 | Sep 2017 | Hungary F8,Opava | Futures | Clay | Ondrej Krstev | Sora Fukuda
Danylo Kalenichenko | 4–6, 4–6 |
| Loss | 0–3 | Jan 2018 | Turkey F1,Antalya | Futures | Hard | Michal Konecny | Altuğ Çelikbilek
Jakob Sude | 6–7(4–7), 6–2, [4–10] |
| Loss | 0–4 | May 2018 | Czech Republic F2,Jablonec | Futures | Clay | Petr Nouza | Filip Duda
Michael Vrbenský | 3–6, 6–4, [5–10] |
| Win | 1–4 | Jun 2018 | Czech Republic F3,Most | Futures | Clay | Petr Michnev | Tomáš Macháč
Michael Vrbenský | 6–2, 2–6, [10–7] |
| Win | 2–4 | Jul 2018 | Czech Republic F5,Ústí nad Orlicí | Futures | Clay | Filip Polášek | Tomáš Macháč
Antonin Bolardt | 7–6(7–2), 7–6(7–5) |
| Loss | 2–5 | Jul 2018 | Czech Republic F6,Brno | Futures | Clay | Filip Polášek | Petr Nouza
David Škoch | 3–6, 6–2, [12–14] |
| Loss | 2–6 | Aug 2018 | Liberec, Czech Republic | Challenger | Clay | Filip Polášek | Sander Gillé
Joran Vliegen | 3–6, 4–6 |
| Win | 3–6 | Mar 2020 | M15Trnava, Slovakia | World Tennis Tour | Hard | Jan Šátral | Kai Lemstra
Christoph Negritu | 6–3, 6–4 |
| Win | 4–6 | Feb 2021 | M15St. Petersburg, Russia | World Tennis Tour | Hard | Andrew Paulson | Alexander Cozbinov
Marat Deviatiarov | 4–6, 6–4, [10–8] |
| Win | 5–6 | Feb 2021 | M15St. Petersburg, Russia | World Tennis Tour | Hard | Andrew Paulson | Artem Dubrivnyy
Alexey Zakharov | 3–6, 7–6(7–5), [10–2] |
| Loss | 5–7 | May 2021 | Ostrava, Czech Republic | Challenger | Clay | Andrew Paulson | Marc Polmans
Sergiy Stakhovsky | 6–7(4–7), 6–3, [7–10] |
| Loss | 5–8 | May 2021 | M25Prague, Czech Republic | World Tennis Tour | Clay | Andrew Paulson | Franco Agamenone
Piotr Matuszewski | 4–6, 3–6 |
| Win | 6–8 | May 2021 | M25Jablonec, Czech Republic | World Tennis Tour | Clay | Andrew Paulson | Uladzimir Ignatik
Vitaliy Sachko | 0–6, 6–2, [10–7] |
| Loss | 6–9 | Jun 2022 | M15Alkmaar, Netherlands | World Tennis Tour | Clay | Matěj Vocel | Alexander Donski
Karl Friberg | 6–3, 3–3 (RET) |
| Win | 7–9 | Jul 2022 | M15Litija, Slovenia | World Tennis Tour | Clay | Matěj Vocel | Tomislav Podvinski
Alen Rogic-Hadzalic | 6–0, 6–2 |
| Win | 8–9 | Aug 2022 | M15Malmö, Sweden | World Tennis Tour | Hard | Matěj Vocel | Filip Bergevi
Mick Veldheer | 6–4, 3–6, [10–7] |
| Win | 9–9 | Jul 2023 | M25Kassel, Germany | World Tennis Tour | Clay | Jiri Barnat | Murkel Dellien
Stefan Latinović | 6–4, 6–4 |
| Win | 10–9 | Oct 2023 | Ortisei, Italy | Challenger | Hard | Andrew Paulson | Maximilian Neuchrist
Jakub Paul | 4–6, 7–6(9–7), [11–9] |
| Win | 11–9 | Nov 2023 | M25Antalya, Turkey | World Tennis Tour | Clay | Timo Stodder | Mircea-Alexandru Jecan
Dan Alexandru Tomescu | 6–4, 6–2 |
| Loss | 11–10 | Jan 2024 | M25Nußloch, Germany | World Tennis Tour | Carpet | Matěj Vocel | Daniel Masur
Kai Wehnelt | 1–6, 6–3, [8–10] |
| Win | 12–10 | Feb 2024 | Nottingham, United Kingdom | Challenger | Hard (i) | Petr Nouza | Antoine Escoffier
Joshua Paris | 6–3, 7–6(7–3) |
| Win | 13–10 | Feb 2024 | Tenerife, Spain | Challenger | Hard | Petr Nouza | Sander Arends
Sem Verbeek | 6–4, 4–6, [11–9] |
| Loss | 13–11 | May 2024 | Tunis, Tunisia | Challenger | Clay | Michael Vrbenský | Federico Agustin Gómez
Marcus Willis | 6–4, 1–6, [6–10] |
| Loss | 13–12 | May 2024 | Skopje, North Macedonia | Challenger | Clay | Andrew Paulson | Ryan Seggerman
Patrik Trhac | 3–6, 6–7(4–7) |
| Loss | 13–13 | Jun 2024 | Milan, Italy | Challenger | Clay | Petr Nouza | Ryan Seggerman
Patrik Trhac | 6–2, 4–6, [6–10] |
| Loss | 13–14 | Jul 2024 | Salzburg, Austria | Challenger | Clay | Petr Nouza | Manuel Guinard
Grégoire Jacq | 6–2, 3–6, [12–14] |
| Win | 14–14 | Jul 2024 | San Marino | Challenger | Clay | Petr Nouza | Theo Arribage
Orlando Luz | 1–6, 7–5, [10–6] |
| Win | 15–14 | Sep 2024 | Seville, Spain | Challenger | Clay | Petr Nouza | George Goldhoff
Fernando Romboli | 6–3, 6–2 |