| Result | W–L | Date | Tournament | Tier | Surface | Partner | Opponents | Score | 
| Win | 1–0 | Sep 2008 | Greece F4, Kefallonia | Futures | Hard |  Ilija Vučić |  Peter Lucassen 
  Jan-Wouter Roep | 6–3, 6–3 | 
| Win | 2–0 | Jul 2009 | Germany F11, Cologne | Futures | Clay |  Tomislav Brkić |  Daniel Caracciolo 
  Jacek Szygowski | 6–3, 7–6(7–2) | 
| Win | 3–0 | Aug 2010 | Croatia F5, Vinkovci | Futures | Clay |  Mislav Hižak |  Toni Androić 
  Marin Milan | 6–3, 6–4 | 
| Win | 4–0 | Sep 2010 | Croatia F6, Osijek | Futures | Clay |  Mislav Hižak |  Marin Draganja 
  Dino Marcan | 4–6, 6–2, [10–4] | 
| Win | 5–0 | Feb 2011 | Croatia F2, Zagreb | Futures | Hard (i) |  Mislav Hižak |  Mate Delić 
  Kristijan Mesaroš | 6–3, 6–7(3–7), [10–4] | 
| Win | 6–0 | Apr 2011 | Italy F5, Vercelli | Futures | Clay |  Erik Crepaldi |  Philipp Oswald 
  Bertram Steinberger | 7–6(7–4), 6–7(4–7), [10–5] | 
| Win | 7–0 | Jul 2011 | Serbia F4, Kikinda | Futures | Clay |  Mislav Hižak |  Nikola Čačić 
  Goran Tošić | 7–5, 7–5 | 
| Loss | 7–1 | Aug 2011 | Croatia F6, Čakovec | Futures | Clay |  Mislav Hižak |  Marin Draganja 
  Dino Marcan | 7–6(7–4), 3–6, [3–10] | 
| Loss | 7–2 | Sep 2011 | Italy F28, Brusaporto | Futures | Carpet (i) |  Matteo Volante |  Enrico Iannuzzi 
  Luca Vanni | 3–6, 7–6(7–4), [9–11] | 
| Win | 8–2 | Oct 2011 | Germany F15, Hambach | Futures | Carpet (i) |  Sandro Ehrat |  Marko Lenz 
  George von Massow | 6–4, 6–2 | 
| Win | 9–2 | May 2012 | Bosnia & Herzegovina F3, Brčko | Futures | Clay |  Nikola Mektić |  Filip Horanský 
  Aldin Šetkić | 6–1, 6–3 | 
| Win | 10–2 | Aug 2012 | Canada F6, Winnipeg | Futures | Hard |  Yuichi Ito |  Filip Peliwo 
  Milan Pokrajac | 3–6, 6–3, [20–18] | 
| Win | 11–2 | Sep 2012 | Canada F8, Toronto | Futures | Hard |  Márton Fucsovics |  Chase Buchanan 
  Tennys Sandgren | 6–2, 6–4 | 
| Loss | 11–3 | Jun 2013 | Slovenia F2, Maribor | Futures | Clay |  Janez Semrajč |  Lukas Jastraunig 
  Nicolas Reissig | 6–3, 6–7(5–7), [9–11] | 
| Loss | 11–4 | Jul 2013 | Granby, Canada | Challenger | Hard |  Adam El Mihdawy |  Érik Chvojka 
  Peter Polansky | 4–6, 3–6 | 
| Loss | 11–5 | Aug 2013 | Canada F5, Calgary | Futures | Hard |  Milan Pokrajac |  Jean-Yves Aubone 
  Dennis Nevolo | 5–7, 3–6 | 
| Win | 12–5 | Aug 2013 | Canada F6, Winnipeg | Futures | Hard |  Milan Pokrajac |  Filip Peliwo 
  David Sofaer | 6–0, 4–6, [13–11] | 
| Win | 13–5 | Oct 2013 | Nigeria F1, Lagos | Futures | Hard |  Ruan Roelofse |  Borna Ćorić 
  Dino Marcan | 7–6(7–3), 6–2 | 
| Win | 14–5 | Oct 2013 | Nigeria F2, Lagos | Futures | Hard |  Ruan Roelofse |  Borna Ćorić 
  Dino Marcan | 7–5, 6–3 | 
| Loss | 14–6 | Nov 2013 | Tyumen, Russia | Challenger | Hard (i) |  Ivan Anikanov |  Sergey Betov 
  Aliaksandr Bury | 4–6, 2–6 | 
| Loss | 14–7 | Jan 2014 | Nouméa, New Caledonia | Challenger | Hard |  Blaž Rola |  Austin Krajicek 
  Tennys Sandgren | 6–7(4–7), 3–6 | 
| Win | 15–7 | Oct 2014 | Tashkent, Uzbekistan | Challenger | Hard |  Lukáš Lacko |  Frank Moser 
  Alexander Satschko | 6–3, 3–6, [13–11] | 
| Win | 16–7 | Nov 2016 | Kobe, Japan | Challenger | Hard |  Daniel Masur |  Jeevan Nedunchezhiyan 
  Christopher Rungkat | 4–6, 6–3, [10–6] | 
| Loss | 16–8 | Jan 2017 | France F2, Bressuire | Futures | Hard (i) |  Ruan Roelofse |  Corentin Denolly 
  Hugo Nys | 4–6, 2–6 | 
| Loss | 16–9 | Apr 2017 | USA F13, Little Rock | Futures | Hard |  Philip Bester |  Luke Bambridge 
  Gavin van Peperzeel | 6–2, 3–6, [9–11] | 
| Win | 17–9 | Jun 2017 | Italy F15, Reggio Emilia | Futures | Clay |  Grzegorz Panfil |  Alexander Centenari 
  Gonzalo Escobar | 6–1, 7–6(7–4) | 
| Win | 18–9 | Nov 2017 | Pune, India | Challenger | Hard |  Tomislav Brkić |  Pedro Martínez 
  Adrián Menéndez Maceiras | 6–1, 7–6(7–5) | 
| Win | 19–9 | May 2018 | Puerto Vallarta, Mexico | Challenger | Hard |  Danilo Petrović |  Benjamin Lock 
  Fernando Romboli | 6–7(2–7), 6–4, [10–5] | 
| Win | 20–9 | Jun 2018 | Poprad-Tatry, Slovakia | Challenger | Clay |  Tomislav Brkić |  Nikola Čačić 
  Luca Margaroli | 6–3, 4–6, [16–14] | 
| Loss | 20–10 | Jul 2018 | Perugia, Italy | Challenger | Clay |  Tomislav Brkić |  Daniele Bracciali 
  Matteo Donati | 3–6, 6–3, [7–10] | 
| Win | 21–10 | Jul 2018 | Padova, Italy | Challenger | Clay |  Tomislav Brkić |  Walter Trusendi 
  Andrea Vavassori | 6–3, 7–6(7–4) | 
| Loss | 21–11 | Feb 2019 | Dallas, USA | Challenger | Hard (i) |  Ruan Roelofse |  Marcos Giron 
  Dennis Novikov | 4–6, 6–7(3–7) | 
| Win | 22–11 | Jun 2019 | Milan, Italy | Challenger | Clay |  Tomislav Brkić |  Andrei Vasilevski 
  Andrea Vavassori | 7–6(8–6), 6–2 | 
| Win | 23–11 | Jul 2019 | Perugia, Italy | Challenger | Clay |  Tomislav Brkić |  Rogério Dutra Silva 
  Szymon Walków | 6–4, 6–3 | 
| Win | 24–11 | Jul 2019 | Cordenons, Italy | Challenger | Clay |  Tomislav Brkić |  Nikola Ćaćić 
  Antonio Šančić | 6–2, 6–3 | 
| Win | 25–11 | Aug 2019 | L'Aquila, Italy | Challenger | Clay |  Tomislav Brkić |  Luca Margaroli 
  Andrea Vavassori | 6–3, 6–2 | 
| Win | 26–11 | Sep 2019 | Biella, Italy | Challenger | Clay |  Tomislav Brkić |  Ariel Behar 
  Andrey Golubev | 7–6(7-2), 6–4 |