| Result | W–L | Date | Tournament | Tier | Surface | Partner | Opponents | Score |
|---|
| Loss | 0–1 | Oct 2009 | ITF Stockholm, Sweden | 10,000 | Hard (i) | Alexandra Artamonova | Lyudmyla Kichenok
Nadiia Kichenok | 3–6, 1–6 |
| Loss | 0–2 | Sep 2010 | ITF Novi Sad, Serbia | 10,000 | Clay | Ekaterina Yakovleva | Jana Jandová
Martina Kubičíková | 7–6(4), 4–6, [9–11] |
| Loss | 0–3 | Feb 2011 | ITF Zell am Harmersbach, Germany | 10,000 | Carpet (i) | Sviatlana Pirazhenka | Kim Kilsdonk
Nicolette van Uitert | 5–7, 4–6 |
| Loss | 0–4 | Apr 2011 | ITF Almaty, Kazakhstan | 10,000 | Hard (i) | Sviatlana Pirazhenka | Albina Khabibulina
Zuzana Luknárová | 6–7(2), 6–4, [5–10] |
| Loss | 0–5 | Oct 2011 | ITF Minsk, Belarus | 10,000 | Carpet (i) | Olga Ianchuk | Polina Monova
Anna Smolina | 3–6, 4–6 |
| Loss | 0–6 | Feb 2012 | ITF Moscow, Russia | 25,000 | Hard (i) | Tatiana Kotelnikova | Oksana Kalashnikova
Marta Sirotkina | 6–7(2), 6–4, [9–11] |
| Loss | 0–7 | Apr 2012 | ITF Moscow, Russia | 25,000 | Hard (i) | Tatiana Kotelnikova | Paula Kania
Polina Pekhova | 4–6, 6–3, [7–10] |
| Loss | 0–8 | Sep 2012 | ITF Sharm El Sheikh, Egypt | 10,000 | Hard | Fatma Al-Nabhani | Olga Brózda
Lu Jiaxiang | 5–7, 2–6 |
| Win | 1–8 | Dec 2012 | ITF Istanbul, Turkey | 10,000 | Hard (i) | Ekaterina Yashina | Ekaterine Gorgodze
Sofia Kvatsabaia | 6–3, 6–2 |
| Win | 2–8 | Jan 2013 | ITF Sharm El Sheikh, Egypt | 10,000 | Hard | Eugeniya Pashkova | Melanie Klaffner
Melis Sezer | 6–3, 6–1 |
| Win | 3–8 | Jun 2013 | ITF Sharm El Sheikh, Egypt | 10,000 | Hard | Kyra Shroff | Alina Mikheeva
Sylwia Zagórska | 6–4, 6–2 |
| Loss | 3–9 | Jun 2013 | ITF Istanbul, Turkey | 10,000 | Hard | Polina Leykina | Christina Shakovets
Julia Stamatova | 2–6, 0–6 |
| Win | 4–9 | Jul 2013 | ITF Istanbul, Turkey | 10,000 | Hard | Polina Leykina | Maryna Kolb
Nadiya Kolb | 7–6(2), 7–5 |
| Win | 5–9 | Jun 2014 | Kazan Open, Russia | 10,000 | Clay | Margarita Lazareva | Polina Novoselova
Sofia Smagina | 6–1, 0–6, [10–6] |
| Win | 6–9 | Jun 2014 | ITF Minsk, Belarus | 10,000 | Clay | Sviatlana Pirazhenka | Anna Smolina
Liubov Vasilyeva | 6–1, 6–3 |
| Loss | 6–10 | Jun 2014 | ITF Minsk, Belarus | 25,000 | Clay | Sviatlana Pirazhenka | Irina Khromacheva
Ilona Kremen | 5–7, 0–6 |
| Loss | 6–11 | Jul 2014 | ITF Plzeň, Czech Republic | 25,000 | Clay | Anastasiya Vasylyeva | Sandra Klemenschits
Renata Voráčová | 4–6, 5–7 |
| Win | 7–11 | Nov 2014 | ITF Équeurdreville, France | 25,000 | Hard (i) | Olga Doroshina | Fanny Caramaro
Alice Ramé | 6–3, 6–3 |
| Win | 8–11 | Nov 2014 | ITF Minsk, Belarus | 25,000 | Hard (i) | Ilona Kremen | Olga Doroshina
Sofia Shapatava | 6–3, 6–4 |
| Win | 9–11 | Feb 2015 | ITF Moscow, Russia | 25,000 | Hard (i) | Anastasiya Vasylyeva | Natela Dzalamidze
Veronika Kudermetova | 6–4, 6–4 |
| Win | 10–11 | Apr 2015 | ITF Dijon, France | 15,000 | Hard (i) | Olga Doroshina | Nicola Geuer
Laura Schaeder | 4–6, 6–2, [10–2] |
| Win | 11–11 | Jul 2015 | ITF Darmstadt, Germany | 25,000 | Clay | Irina Khromacheva | Pemra Özgen
Anne Schäfer | 6–4, 6–4 |
| Win | 12–11 | Jul 2015 | ITF Horb, Germany | 15,000 | Clay | Carolin Daniels | Catalina Pella
Guadalupe Pérez Rojas | 7–6(3), 4–6, [10–7] |
| Win | 13–11 | Aug 2015 | Neva Cup St. Petersburg, Russia | 25,000 | Clay | Carolin Daniels | Natela Dzalamidze
Veronika Kudermetova | 6–4, 4–6, [10–6] |
| Win | 14–11 | Sep 2015 | Open de Biarritz, France | 100,000 | Clay | Başak Eraydın | Réka Luca Jani
Stephanie Vogt | 6–4, 6–4 |
| Loss | 14–12 | Feb 2016 | Open de l'Isère, France | 25,000 | Hard (i) | Amra Sadiković | Manon Arcangioli
Alizé Lim | 5–7, 2–6 |
| Loss | 14–13 | Mar 2016 | ITF Nanjing, China | 10,000 | Hard | Kseniia Bekker | Chayenne Ewijk
Rosalie van der Hoek | 4–6, 2–6 |
| Loss | 14–14 | Apr 2016 | Lale Cup Istanbul, Turkey | 50,000 | Hard | Valentyna Ivakhnenko | Nigina Abduraimova
Barbora Štefková | 4–6, 6–1, [6–10] |
| Win | 15–14 | Dec 2016 | Ankara Cup, Turkey | 50,000 | Hard (i) | Anna Blinkova | Sabina Sharipova
Ekaterina Yashina | 4–6, 6–3, [11–9] |
| Win | 16–14 | Mar 2017 | Zhuhai Open, China | 60,000 | Hard | Lesley Kerkhove | Lyudmyla Kichenok
Nadiia Kichenok | 6–4, 6–2 |
| Win | 17–14 | Jun 2017 | Bredeney Ladies Open, Germany | 25,000 | Clay | Carolin Daniels | Anita Husarić
Kimberley Zimmermann | 6–1, 6–4 |
| Win | 18–14 | Aug 2017 | ITF Leipzig, Germany | 25,000 | Clay | Valentyna Ivakhnenko | Tereza Mrdeža
Ankita Raina | 6–2, 6–1 |
| Win | 19–14 | Sep 2017 | ITF Guiyang, China | 25,000 | Hard | Sabina Sharipova | Jiang Xinyu
Tang Qianhui | 6–2, 6–3 |
| Loss | 19–15 | Dec 2017 | Dubai Tennis Challenge, UAE | 100,000+H | Hard | Lesley Kerkhove | Mihaela Buzărnescu
Alena Fomina | 4–6, 3–6 |
| Win | 20–15 | Apr 2021 | Oeiras Ladies Open, Portugal | 60,000 | Clay | Andreea Mitu | Marina Melnikova
Conny Perrin | 3–6, 6–4, [10–3] |
| Win | 21–15 | Mar 2022 | Guanajuato Open, Mexico | 60,000+H | Hard | Kaitlyn Christian | Anastasia Tikhonova
Daniela Vismane | 6–0, 6–2 |