World No. 119 · 14 career titles · career win–loss 932–643. Match history, ranking timeline and head-to-head records below.

| Country | Colombia |
| Born | 2000 |
| Plays | Rechtshänder |
| Height | 183 cm |
| Win–loss | 932–643 |
| Titles | 14 |
| Finals | 10 |
| Ranking | #119 · 509 Pkt. |
| Career high | #119 |
Strength 0–100 is our own calculation, not an official tour ranking: 100 is the strongest in history, 70 is about the level of the world No. 100.
| Event · Round | Opponent | Score | Surface | |
|---|---|---|---|---|
| L | Saint Tropez, France, Qualifying · R32 | Ugo Blanchet (FRA) | 0-2 | Hard |
| L | Davis Cup Qualifiers 2nd Rd · UNK | Tallon Griekspoor (NED) | 2-6, 4-6 | Hard |
| L | US Open · Q1 | Liam Draxl (CAN) | 6-4, 6-7, 6-4 | Hard |
| L | ATP Challenger Cancun, Mexico · R16 | Marcelo Tomas BARRIOS VERA | 6-2, 7-6(6) | |
| L | Cancun Country Open · R32 | Camilo Ugo Carabelli (ARG) | 7-5, 6-4 | Hard |
| L | Cancun Country Open · R16 | Tomas Barrios Vera | 6-2, 7-6 | Hard |
| W | Cincinnati Open · Q2 | Henrique Rocha (POR) | 7-5, 4-6, 6-3 | Hard |
| L | Cincinnati Open · R128 | Adam Walton (AUS) | 7-6, 6-0 | Hard |
| W | Cincinnati Open · Q1 | Jacob Fearnley (GBR) | 6-3, 3-6, 6-2 | Hard |
| L | Omnium Banque Nationale présenté par Rogers · R64 | Lorenzo Musetti (ITA) | 7-6, 6-2 | Hard |
| W | ATP Montreal, Canada · R128 | Martin Landaluce | 4-6, 6-4, 6-3 | |
| W | Omnium Banque Nationale présenté par Rogers · R128 | Martin Landaluce | 4-6, 6-4, 6-3 | Hard |
| Season | Win–Loss | Titles | Year-end rank |
|---|---|---|---|
| 2026 | 45–40 | 2 | |
| 2025 | 70–71 | 2 | |
| 2024 | 80–58 | 4 | |
| 2023 | 42–62 | ||
| 2022 | 84–80 | 2 | |
| 2021 | 59–58 | ||
| 2020 | 26–23 | ||
| 2019 | 133–70 | 5 | |
| 2018 | 140–69 | 1 | |
| 2017 | 168–56 | ||
| 2016 | 65–36 | ||
| 2015 | 11–10 |