Knockout bracket
Round of 16
Quarterfinal
Early rounds
Round of 32 12 matches
| Winner | Loser | Set 1 | Set 2 | Set 3 |
|---|---|---|---|---|
| Aleksandar Vukic | Hugo Grenier | 2-6 | 6-2 | 7-64 |
| Kamil Majchrzak | Jay Clarke | 6-3 | 7-5 | · |
| Quentin Halys | Ricardas Berankis | 6-1 | 6-2 | · |
| Bernabe Zapata Miralles | Dennis Novak | 6-4 | 6-1 | · |
| Vit Kopriva | Cem Ilkel | 6-4 | 6-2 | · |
| Emil Ruusuvuori | Egor Gerasimov | 6-0 | 7-611 | · |
| Daniel Altmaier | Prajnesh Gunneswaran | 7-65 | 6-2 | · |
| Radu Albot | Federico Gaio | 6-2 | 7-63 | · |
| Joao Sousa | Arjun Kadhe | 6-75 | 7-64 | 6-2 |
| Stefano Travaglia | Ramkumar Ramanathan | 7-67 | 4-6 | 6-3 |
| Yuki Bhambri | Jozef Kovalik | 6-710 | 6-2 | 7-5 |
| Elias Ymer | Gian Marco Moroni | 7-5 | 3-6 | 6-4 |
Players
| Player | Country | Reached | |
|---|---|---|---|
| Joao Sousa | POR | Winner | |
| Emil Ruusuvuori | FIN | Final | |
| Elias Ymer | SWE | Semifinal | |
| Kamil Majchrzak | POL | Semifinal | |
| Daniel Altmaier | GER | Quarterfinal | |
| Jiri Vesely | CZE | Quarterfinal | |
| Lorenzo Musetti | ITA | Quarterfinal | |
| Stefano Travaglia | ITA | Quarterfinal | |
| Aleksandar Vukic | AUS | Round of 16 | |
| Aslan Karatsev | RUS | Round of 16 | |
| Bernabe Zapata Miralles | ESP | Round of 16 | |
| Gianluca Mager | ITA | Round of 16 | |
| Quentin Halys | FRA | Round of 16 | |
| Radu Albot | MDA | Round of 16 | |
| Vit Kopriva | CZE | Round of 16 | |
| YB | Yuki Bhambri | IND | Round of 16 |
| AK | Arjun Kadhe | IND | Round of 32 |
| Cem Ilkel | TUR | Round of 32 | |
| Dennis Novak | AUT | Round of 32 | |
| Egor Gerasimov | BLR | Round of 32 | |
| Federico Gaio | ITA | Round of 32 | |
| GM | Gian Marco Moroni | ITA | Round of 32 |
| Hugo Grenier | FRA | Round of 32 | |
| Jay Clarke | GBR | Round of 32 | |
| Jozef Kovalik | SVK | Round of 32 | |
| PG | Prajnesh Gunneswaran | IND | Round of 32 |
| Ramkumar Ramanathan | IND | Round of 32 | |
| Ricardas Berankis | LTU | Round of 32 |