| Result | W–L | Date | Tournament | Tier | Surface | Partner | Opponents | Score |
|---|
| Win | 1–0 | Oct 2008 | Australia F8, Traralgon | Futures | Hard | Dane Propoggia | Jared Easton Mikal Statham | 6–3, 6–4 |
| Win | 2–0 | Oct 2008 | Australia F9, Sale | Futures | Clay | Dane Propoggia | Andrew Gregory Greg Jones | w/o |
| Loss | 2–1 | Oct 2008 | Australia F10, Happy Valley | Futures | Hard | Dane Propoggia | Kaden Hensel Adam Hubble | 4–6, 6–7(3–7) |
| Loss | 2–2 | Nov 2008 | USA F29, Honolulu | Futures | Hard | Igor Sijsling | James Ludlow Andreas Siljeström | 0–6, 6–4, [4–10] |
| Loss | 2–3 | Dec 2008 | Australia F12, Sorrento | Futures | Hard | Dane Propoggia | Kaden Hensel Adam Hubble | 6–7(2–7), 7–6(7–3), [3–10] |
| Loss | 2–4 | Jul 2009 | USA F17, Peoria | Futures | Clay | Denis Zivkovic | Vasek Pospisil Milos Raonic | 3–6, 4–6 |
| Loss | 2–5 | Nov 2009 | Australia F10, Kalgoorlie | Futures | Hard | Dane Propoggia | Brydan Klein Robert Smeets | 3–6, 6–7(5–7) |
| Win | 3–5 | Dec 2009 | Australia F11, Bendigo | Futures | Hard | Dane Propoggia | Colin Ebelthite Sadik Kadir | 6–4, 6–3 |
| Loss | 3–6 | Sep 2010 | Australia F5, Cairns | Futures | Hard | Dayne Kelly | Colin Ebelthite Adam Feeney | 0–6, 2–6 |
| Loss | 3–7 | Sep 2010 | Australia F7, Alice Springs | Futures | Hard | Dane Propoggia | Colin Ebelthite Adam Feeney | 4–6, 4–6 |
| Win | 4–7 | Nov 2010 | Australia F10, Kalgoorlie | Futures | Hard | Joel Lindner | Colin Ebelthite Adam Feeney | 7–6(7–5), 4–6, [10–6] |
| Win | 5–7 | Apr 2011 | Australia F4, Bundaberg | Futures | Clay | Michael Venus | Érik Chvojka Jose Statham | 2–6, 6–2, [10–4] |
| Win | 6–7 | Nov 2012 | Australia F12, Bendigo | Futures | Hard | Adam Feeney | Matthew Barton Michael Look | 6–1, 3–6, [14–12] |
| Win | 7–7 | Feb 2013 | West Lakes, Australia | Challenger | Hard | Sam Groth | James Duckworth Greg Jones | 6–2, 6–4 |
| Loss | 7–8 | Mar 2013 | Kyoto, Japan | Challenger | Carpet (i) | Chris Guccione | Purav Raja Divij Sharan | 4–6, 5–7 |
| Win | 8–8 | Apr 2013 | León, Mexico | Challenger | Hard | Chris Guccione | Purav Raja Divij Sharan | 6–3, 7–5 |
| Loss | 8–9 | Aug 2013 | Aptos, USA | Challenger | Hard | Chris Guccione | Jonathan Erlich Andy Ram | 3–6, 7–6(8–6), [2–10] |
| Win | 9–9 | Oct 2013 | Sacramento, USA | Challenger | Hard | John-Patrick Smith | Jarmere Jenkins Donald Young | 7–6(7–1), 4–6, [14–12] |
| Win | 10–9 | Feb 2014 | Burnie, Australia | Challenger | Hard | John-Patrick Smith | Toshihide Matsui Danai Udomchoke | 6–4, 6–2 |
| Loss | 10–10 | Apr 2014 | Australia F4, Melbourne | Futures | Clay | Adam Hubble | Bradley Mousley Jordan Thompson | w/o |
| Loss | 10–11 | Oct 2014 | Tiburon, USA | Challenger | Hard | Carsten Ball | Bradley Klahn Adil Shamasdin | 5–7, 2–6 |
| Win | 11–11 | Nov 2014 | Yokohama, Japan | Challenger | Hard | Bradley Klahn | Marcus Daniell Artem Sitak | 4–6, 6–4, [10–7] |
| Win | 12–11 | Feb 2015 | Burnie, Australia | Challenger | Hard | Carsten Ball | Radu Albot Matthew Ebden | 7–5, 6–4 |
| Win | 13–11 | Mar 2014 | Australia F1, Adelaide | Futures | Hard | Carsten Ball | Steven de Waard Christopher O'Connell | 6–4, 6–3 |
| Win | 14–11 | Mar 2014 | Australia F2, Port Pirie | Futures | Hard | Carsten Ball | Steven de Waard Jacob Grills | 5–7, 7–6(7–1), [10–7] |
| Win | 15–11 | Mar 2014 | Australia F3, Mildura | Futures | Grass | Carsten Ball | Ryan Agar Matthew Barton | 6–2, 6–3 |
| Loss | 15–12 | Aug 2015 | Canada F6, Saskatoon | Futures | Hard | Patrick Davidson | Marcos Giron Farris Fathi Gosea | 3–6, 2–6 |
| Loss | 15–13 | Oct 2015 | Tiburon, USA | Challenger | Hard | Carsten Ball | Johan Brunström Frederik Nielsen | 6–7(2–7), 1–6 |
| Win | 16–13 | Nov 2015 | Toyota, Japan | Challenger | Carpet (i) | Brydan Klein | Riccardo Ghedin Yi Chu-huan | 6–2, 7–6(7–3) |
| Loss | 16–14 | Feb 2016 | Launceston, Australia | Challenger | Hard | Dayne Kelly | Luke Saville Jordan Thompson | 1–6, 6–4, [11–13] |
| Win | 17–14 | May 2016 | Seoul, Korea, Rep. | Challenger | Hard | John-Patrick Smith | Gong Maoxin Yi Chu-huan | 6–3, 7–5 |
| Win | 18–14 | Jul 2016 | Binghamton, USA | Challenger | Hard | John-Patrick Smith | Liam Broady Guilherme Clezar | 6–4, 6–2 |
| Win | 19–14 | Oct 2016 | Tiburon, USA | Challenger | Hard | John-Patrick Smith | Quentin Halys Dennis Novikov | 6–1, 6–2 |
| Loss | 19–15 | Oct 2016 | Stockton, USA | Challenger | Hard | John-Patrick Smith | Brian Baker Sam Groth | 2–6, 6–4, [2–10] |
| Win | 20–15 | Oct 2016 | Las Vegas, USA | Challenger | Hard | Brian Baker | Bjorn Fratangelo Denis Kudla | 6–1, 7–5 |
| Win | 21–15 | Oct 2016 | Traralgon, Australia | Challenger | Hard | John-Patrick Smith | Matthew Barton Matthew Ebden | 6–4, 6–4 |
| Loss | 21–16 | Nov 2016 | Canberra, Australia | Challenger | Hard | John-Patrick Smith | Luke Saville Jordan Thompson | 2–6, 3–6 |
| Win | 22–16 | Nov 2016 | Toyota, Japan | Challenger | Carpet (i) | John-Patrick Smith | Jeevan Nedunchezhiyan Christopher Rungkat | 6–3, 6–4 |
| Win | 23–16 | Feb 2017 | San Francisco, USA | Challenger | Hard (i) | John-Patrick Smith | Gong Maoxin Zhang Ze | 6–7(4–7), 7–5, [10–7] |
| Loss | 23–17 | Mar 2017 | Drummondville, Canada | Challenger | Hard (i) | John-Patrick Smith | Sam Groth Adil Shamasdin | 3–6, 6–2, [8–10] |
| Loss | 23–18 | Jun 2017 | Nottingham, Great Britain | Challenger | Grass | John-Patrick Smith | Ken Skupski Neal Skupski | 6–7(1–7), 6–2, [7–10] |
| Win | 24–18 | Aug 2018 | Aptos, USA | Challenger | Hard | Thanasi Kokkinakis | Jonny O'Mara Joe Salisbury | 6–2, 4–6, [10–8] |
| Win | 25–18 | Sep 2018 | Cassis, France | Challenger | Hard | Sergiy Stakhovsky | Marc-Andrea Hüsler Gonçalo Oliveira | 6–2, 6–3 |
| Loss | 25–19 | Oct 2018 | Calgary, Canada | Challenger | Hard (i) | John-Patrick Smith | Robert Galloway Nathan Pasha | 4–6, 6–4, [6–10] |
| Win | 26–19 | Nov 2018 | Champaign, USA | Challenger | Hard (i) | John-Patrick Smith | Hans Hach Luis David Martínez | 6–4, 4–6, [10–8] |
| Loss | 26–20 | Feb 2019 | Chennai, India | Challenger | Hard | Luke Saville | Gianluca Mager Andrea Pellegrino | 3–6, 6–7(7–9) |
| Loss | 26–21 | Mar 2019 | Drummondville, Canada | Challenger | Hard (i) | John-Patrick Smith | Scott Clayton Adil Shamasdin | 5–7, 6–3, [5–10] |
| Loss | 26–22 | Apr 2019 | León, Mexico | Challenger | Hard | John-Patrick Smith | Lucas Miedler Sebastian Ofner | 6–4, 4–6, [6–10] |
| Win | 27–22 | May 2019 | Puerto Vallarta, Mexico | Challenger | Hard | John-Patrick Smith | Gonzalo Escobar Luis David Martínez | 7–6(12–10), 6–3 |
| Loss | 27–23 | Oct 2019 | Ningbo Challenger, China | Challenger | Hard | Alex Bolt | Andrew Harris Marc Polmans | 0–6, 1–6 |
| Win | 28–23 | Mar 2021 | Biella, Italy | Challenger | Hard (i) | Lloyd Glasspool | Denys Molchanov Sergiy Stakhovsky | 6–3, 6-4 |
| Win | 29-23 | Apr 2021 | Marbella, Spain | Challenger | Clay | Dominic Inglot | Romain Arneodo Hugo Nys | 1–6, 6–3, [10–6] |
| Win | 30-23 | June 2021 | Nottingham, UK | Challenger | Grass | Ken Skupski | Matthew Ebden John-Patrick Smith | 4–6, 7–5, [10–6] |
| Win | 31-23 | June 2021 | Nottingham, UK | Challenger | Grass | Marc Polmans | Benjamin Bonzi Antoine Hoang | 6–4, 4–6, [10–8] |
| Loss | 31-24 | Oct 2021 | Alicante, Spain | Challenger | Hard | Romain Arneodo | Denys Molchanov David Vega Hernández | 4-6, 2-6 |