Odise Roshi
Odise Roshi is an Albanian professional footballer who plays as a right winger for Turkish TFF 1. Lig club Ankara Keçiörengücü.
A product of the [FK FK Apolonia Fier|Apolonia Fier|Apolonia] academy, Roshi has played professionally in Albania and Germany, notably in the Bundesliga with 1. FC Köln, before spells in the Croatian top flight with Rijeka, the Russian Premier League with Akhmat Grozny, as well as in Hungary and Turkey, making more than 400 senior appearances across all competitions.
Roshi has represented Albania at under-17 and [Albania national Albania national under-21 football team|under-21 football team|-21] levels before making his senior debut in 2011. He went on to earn 71 caps and score five goals for the national side, and was part of the squad at UEFA Euro 2016.
Club career
Early career
Born in Fier, Albania, Roshi began playing football at the age of 10 with his hometown club Apolonia Fier.Roshi made his senior debut for Apolonia at age of 16 during the second-half of the 2006–07 Albanian Superliga season, appearing in four league matches as the club was relegated after finishing bottom of the table. In the following season, Apolonia returned to the top flight and competed in the 2008–09 Albanian Superliga, where Roshi made 17 league appearances as the club avoided relegation by just one point.
Flamurtari Vlorë
In July 2009, Roshi joined fellow Superliga side Flamurtari Vlorë. He scored his first goal for the club on 23 July in a UEFA Europa League second qualifying round match away to Scottish side Motherwell, netting Flamurtari's only goal in an 8–1 defeat. Roshi featured in the 2009 Albanian Supercup on 16 August 2009, coming on as a half-time substitute for Flamurtari in their 1–0 defeat to Tirana. Roshi made his league debut on 23 August in a 3–1 away win over Tirana, scoring Flamurtari's second goal while playing on the right wing. He continued to be a regular starter during the opening weeks of the campaign, before Flamurtari went scoreless in their next four league matches. Roshi ended this run on 4 October by scoring a brace in a 2–0 home win over Vllaznia on matchday six.Roshi made 29 league appearances during the 2009–10 season, logging 2,067 minutes of play, as Flamurtari finished fifth in the championship and missed out on qualification for European competitions.
In April 2010, Roshi spent several days on trial in France with PSG, training with the club's youth setup before returning to Flamurtari without securing a contract, although a move was reported as still possible after the end of the season. Although the move was reportedly valued at €250,000, the transfer did not materialize.
On 27 August 2010, in the second week of the 2010–11 Albanian Superliga, Roshi scored in a 2–1 home win over Tirana. On 7 November 2010, Flamurtari defeated Skënderbeu 4–0 on the final matchday of the first phase, a result that sent the club to the top of the league table. On 30 January 2011, Roshi scored twice in the opening minutes of a 4–2 home victory over Shkumbini on matchday 18 of the Superliga.
Flamurtari held top spot in the league from until mid-April before being chased by title rivals Skënderbeu. The club lost first place on matchday 28 following a defeat to Shkumbini, allowing Skënderbeu to overtake them at the top of the standings. On 20 April 2011, Roshi scored his 5th and final goal of the season in a 6–2 home win over Dinamo Tirana on matchday 29 of the Superliga.
Over the 2010–11 season, Roshi made 22 league appearances, Flamurtari finished the 2010–11 season as runners-up, four points behind champions Skënderbeu, while scoring 62 goals, the highest in the league.
Roshi was reported to be close to joining Belgian club Anderlecht in 2011.
1. FC Köln
On 19 May 2011, Roshi joined 1. FC Köln on a free transfer, signing a four-year contract.Roshi made his Bundesliga debut with Köln on 6 August 2011, appearing as a late substitute in a 3–0 home defeat against VfL Wolfsburg. On 5 February 2012, Roshi scored his first Bundesliga goal, giving Köln a 1–0 away victory over 1. FC Kaiserslautern; he was substituted on in the 70th minute and scored with a header one minute later from a corner kick he caused himself. Roshi earned the nickname “The Rocket” due to his exceptional pace, with reports noting his speed and prominence in the team. Roshi assisted the Milivoje Novaković's goal against 1. FC Nürnberg two weeks later in 2–1 loss.
Roshi finished the 2011–12 Bundesliga season with 20 appearances, including three starts, scoring one goal and providing one assist.
FSV Frankfurt
On 6 August 2012, Roshi joined FSV Frankfurt in the 2. Bundesliga on a season-long loan, linking up with fellow Albanian international Edmond Kapllani.Roshi made his debut for FSV Frankfurt on 12 August 2012, starting against Hertha BSC and was substituted in the 57th minute in a 3–1 victory. Five days later, Roshi made his DFB-Pokal debut, starting and playing 65 minutes in a 2–1 away win over Sonnenhof Großaspach in the first round, with all goals scored within the opening 22 minutes. On 2 September 2012, Roshi provided the assist for the winning goal in a 1–0 victory against Erzgebirge Aue. On 21 September 2012, Roshi scored his first goal for FSV Frankfurt against FC St. Pauli, netting in the 7th minute from outside the far corner of the box in a 2–1 win, which marked the club’s 100th home victory in the 2. Bundesliga. On 27 April 2013, he scored Frankfurt's second goal against Dynamo Dresden in the 84th minute, 10 minutes after coming on as a substitute in a 3–1 victory.
Roshi finished the 2012–13 2. Bundesliga season with 30 league appearances, including six starts, scoring two goals and providing one assist for FSV Frankfurt.
On 17 May 2013, Roshi signed a two-year permanent contract with the club.
Roshi spent much of the 2013–14 2. Bundesliga season as a rotational option, appearing primarily as a second-half substitute before becoming a regular starter from Round 27 onward, including multiple full 90-minute appearances, and finished with 23 league appearances, scoring once and registering four assists during the process. On 4 April 2014, Roshi started up front in place of his injured teammate Kapllani and scored in the 61st minute in a 2–1 loss against VfR Aalen; he was named in the Team of the Week. On 28 April 2014, Roshi received a one-match suspension after being sent off for unsporting behaviour in a 3–1 win over Energie Cottbus, with the club accepting the DFB’s ruling.
On 16 August 2014, Roshi recorded an assist in the opening round of the 2014–15 DFB-Pokal, setting up Zafer Yelen’s 41st-minute goal in a 3–3 draw against Sportfreunde Siegen that FSV Frankfurt went on to win 5–4 on penalties. In the 2014–15 2. Bundesliga Roshi was a regular starter, making 21 league appearances, scoring thrice and receiving five yellow cards. On 7 November 2014, Roshi scored his first goal of the season, netting the winner in a 1–0 away victory over VfR Aalen after coming on as a half-time substitute, in his first match back from injury. After recovering from muscular problems, Roshi returned on 8 February 2015 against 1. FC Nürnberg, scoring the opening goal in a 2–1 victory. Roshi scored again in the next fixture on 15 February 2015, netting the only goal in a 1–0 away win over RB Leipzig, securing three points for FSV Frankfurt.
HNK Rijeka
After declining to extend his contract with FSV Frankfurt, Roshi joined Croatian First League side Rijeka as a free agent on 6 June 2015, signing a three-year contract; he rejoined compatriot and Albania international Bekim Balaj at the club. Roshi was reported to earn around €250,000 per season.Roshi joined the club carrying a minor injury, with Rijeka manager Matjaž Kek stating that Roshi arrived with a problem sustained either at his former club or during international fixture. Roshi returned from injury for the league game against Slaven Belupo Koprivnica on 19 July 2015 and was named on the bench, remaining an unused substitute for the match. Roshi made his debut for Rijeka in the Europa League away fixture against Aberdeen on 23 July 2015. He made his league debut on 10 August 2015 in a 0–0 draw against Dinamo Zagreb, coming on as a substitute in the 58th minute for Bekim Balaj. He went on to make regular league appearances throughout the 2015–16 season, featuring primarily as a second-half substitute in most matches, and Rijeka had a strong defensive records in the league, keeping several clean sheets in many of the matches Roshi took part in. He scored his first goal for the club in their 4–1 home win against Zagreb on 4 October 2015. Roshi made a total of 20 league appearances, as Rijeka finished as runners-up behind Dinamo Zagreb. On 28 October 2015, Roshi scored once and provided an assist in Rijeka's 3–0 win over Opatija in the 2015–16 Croatian Cup second round, helping the club advance to the quarter-finals.
Roshi became the first Rijeka player to appear in a European Championship, featuring for Albania national team at Euro 2016.
Akhmat (Terek) Grozny
On 21 July 2016, Roshi signed a three-year contract with Terek Grozny in the Russian Premier League, rejoining fellow Albanian Bekim Balaj who had transferred earlier. Roshi made his debut for Terek Grozny on 31 July 2016 in the opening league match against Krylia Sovetov Samara in a 1–0 win, coming on as a substitute in the final 32 minutes of the match and providing the assist for the winning goal.During the 2016–17 season, Roshi was a regular starter for Terek Grozny, although his playing time decreased toward the end of the campaign, where he was mostly used as a substitute or featured only briefly. He also regularly provided assists for Balaj, contributing to the team's attacking play. Roshi scored his first goal on 22 October 2016, against Rubin Kazan in a 3–1 league win after coming on as a late substitute and netting in stoppage time. The goal was voted as the club’s best of the first half of the season. On 26 October 2016, Roshi scored the equaliser in the 53rd minute of a 2016–17 Russian Cup match against Ufa, which ended 1–1 after extra time before Akhmat were eliminated 4–3 on penalties. Roshi was considered a high-quality reinforcement and contributed to Terek Grozny’s strong start to the season. On 2 April 2017, Roshi provided an assist against Amkar Perm in matchday 21, which ended in a 1–1 draw. Terek Grozny ultimately finished fifth and narrowly missed qualifying for the UEFA Europa League by one point.
During the 2017–18 Russian Premier League season, Roshi featured sparingly in the first phase of the campaign, but in the second phase, he established himself as a regular starter, significantly increasing his minutes and contributing three assists, several of which came in narrow victories for Akhmat Grozny. On 8 May 2018, Roshi came on as a second-half substitute against Anzhi Makhachkala and scored in the closing minutes to seal a 2–0 win, which ensured the club’s survival in the Russian Premier League.
At the start of the 2018–19 Russian Premier League season, Roshi was an undisputed starter, playing every minute of the opening three matches before suffering an injury in the 32nd minute of the fourth matchday, on 18 August 2018, suffering an anterior cruciate ligament injury, which was expected to sideline him for approximately six months. Following the injury, Roshi successfully underwent knee surgery in Italy in late August 2018 and began his recovery process shortly after the operation. Roshi returned to the matchday squad in late March 2019, when he was named on the bench in a Russian Premier League match against Spartak Moscow where he was an unused substitute. Roshi made his first appearance after the injury on 8 April 2019, approximately seven and a half months after suffering the ACL injury, coming on as a substitute in the final minutes of a 3–1 away win against Orenburg. Roshi gradually returned to regular playing time, later starting two matches, including playing the full 90 minutes in a 1–0 away victory against Anzhi Makhachkala, but for the remainder of the season, he was primarily used as a substitute in the second half of matches, finishing with a total of 13 league appearances. Akhmat Grozny ended the season in 8th place in the league.
On 27 May 2019, Roshi extended his contract with Akhmat Grozny, signing a new three-year deal with the club.
In the 2019–20 season, Roshi scored in total eight goals across league and cup, finishing as the club's top scorer that campaign, and was also ranked third in the league statistics for successful dribbles, completing 68 out of 110 attempts. On 6 August 2019, Roshi scored the winning goal in matchday 4 of the 2019–20 Russian Premier League against Orenburg, marking his first goal in over a year following a long-term injury absence. On 16 September 2019, Roshi scored a penalty in an away match against Rostov, registering his second goal of the season. On 25 September 2019, Roshi featured in a 2019–20 Russian Cup match against SKA Khabarovsk, starting the game and scoring the decisive penalty in the shoot-out as the team advanced to the quarter-finals. On 23 November 2019, Roshi scored in a 2–0 away win against Orenburg, registering his third goal of the league season. Following his performance, he was named in the "Team of the Week 17". On 4 March 2020, Akhmat Grozny were eliminated from the Russian Cup quarter-finals after losing 3–2 to Zenit Petersburg, where Roshi scored the opening goal in the 59th minute, but Zenit eventually came from behind to win the match, which was also marked by tensions between supporters. On 13 March 2020, Roshi scored in the 10th minute against Dynamo Moscow, netting his fifth goal of the league. On 1 July 2020, Roshi scored twice in a 3–1 away victory against Arsenal Tula, including a penalty. Following his performance, he was named Player of the Match in the 25th round. At the end of the season, Akhmat Grozny finished fourth from bottom in league on equal points with Tambov and Krylia Sovetov Samara, avoiding relegation only due to superior head-to-head goal difference.
On 19 August 2020, Roshi scored twice in matchday 3 of the 2020–21 Russian Premier League against Volgograd, netting the second and third goals of the game. In November 2020, Roshi suffered a partial tear of the sartorius muscle in his right thigh, ruling him out for an indefinite period and returned to Albania for treatment. He made a total six league appearances and two goals.
Loan to Diósgyőri VTK
On 15 February 2021, he was loaned to Hungarian club Diósgyőri VTK until the end of the 2020–21 season. He was officially presented by the club three days later, after successfully completing his medical examinations. At the time of his arrival, Diósgyőri VTK were involved in a relegation battle during the 2020–21 season. He made his debut two days later, starting in a 3–1 away comeback victory against MOL Fehérvár, playing 55 minutes and receiving a yellow card in the 9th minute. During his loan spell in the second half of the season, Roshi made 11 league appearances in the 2020–21 Nemzeti Bajnokság I, starting six matches and playing a total of 462 minutes, but was unable to help the team avoid relegation.He returned to Akhmat Grozny following the end of his loan spell, but on 23 June 2021, Roshi mutually terminated his contract, becoming a free agent.
Boluspor
On 9 August 2021, Roshi signed a one-year contract with an option for a one-year extension with Boluspor in Turkey. He became Boluspor’s highest-paid player, earning €250,000 per season. Roshi made his debut on 27 August 2021, starting in a 3–1 away loss to Tuzlaspor, playing 84 minutes. On 30 October 2021, he provided his first assist in a 2–2 away draw against Manisa, setting up the equalising goal in the second half. On 14 May 2022, Roshi scored his first goal for Boluspor in a 2–1 away win against MKE Ankaragücü, opening the scoring in the 14th minute of the match.Sakaryaspor
On 22 June 2022, Roshi signed a two-year contract with newly promoted TFF 1 Lig side Sakaryaspor, with the deal set to run until 2024 and earning him €300,000 per season. Roshi made his debut on 18 September 2022, coming on as a substitute in the 72nd minute in a 3–2 away defeat to Samsunspor. On 20 November 2022, Roshi provided an assist in a 4–2 home win against Bandırmaspor, setting up Hurşit Taşcı’s goal in the 45th minute. On 21 January 2023, Roshi provided two assists in a 2–1 win against Altınordu. On 20 March 2023, Roshi scored against Bodrumspor the opening goal in the 43rd minute in a 2–1 win.On 1 October 2023, Roshi provided an assist in a 2023–24 TFF 1. Lig match against Eyüpspor, in a 2–0 win. On 12 November 2023, Roshi scored his first goal of the season, netting the second goal in the 28th minute of a 3–2 away win against his former club Boluspor. On 19 December 2023, Roshi scored his second goal of the season against Tuzlaspor in the 35th minute, putting his team ahead in a match that ended in a 3–1 victory. On 21 January 2024, Roshi scored his third goal against Gençlerbirliği in a 3–1 loss in the 19th round. On 3 February 2024, Roshi scored the winning goal in a 1–0 home victory against Bandırmaspor. On 6 April 2024, Roshi scored and provided an assist for both goals in a 2–0 away win against his former side Boluspor.
On 18 July 2024, Roshi left Sakaryaspor after his contract expired and became a free agent, choosing not to renew with the club.
Erzurumspor
Roshi remained in the Turkish second tier, signing on 14 August 2024 a one-season contract with Erzurumspor, having agreed terms earlier but been unable to register due to a prior transfer embargo on the club.On 21 September 2024, Roshi scored his second goal, netting in the 67th minute to give his team a 1–0 lead in a match they eventually won 2–0. On 14 December 2024, Roshi scored with a header in the 78th minute in a 3–2 away loss to İstanbulspor. On 8 February 2025, Roshi scored a hat-trick and provided an assist in a 7–0 away victory over Yeni Malatyaspor in the 23rd round. On 12 February 2025, Roshi scored Erzurumspor’s only goal in a 2–1 home defeat to Gençlerbirliği, heading home the equaliser in the 34th minute; he was also named man of the match after receiving the highest rating. On 7 March 2025, Roshi was sidelined due to injury and was not included in the squad following a knock sustained a few days earlier against Boluspor, on medical advice. At the time, he had made 25 appearances for the club, scoring seven goals and providing four assists.
Ankara Keçiörengücü
On 16 July 2025, Roshi signed for Ankara Keçiörengücü, marking his fourth stint in Turkish football.On 9 November 2025, Roshi scored and provided an assist within eight minutes in the 2025–26 TFF 1. Lig 13th round match against Adana Demirspor, scoring in the 5th minute and setting up the second goal seven minutes later. On 29 November 2025, Roshi scored the only goal in a 2–1 home defeat to Iğdır, netting with a bicycle kick late in the first half to temporarily equalise the scoreline. On 3 December 2025, Roshi scored in the Turkish Cup in a 2–0 extra-time win against Kayserispor, netting in the 117th minute to seal qualification to the fourth round after the match had ended goalless in regular time. This marked his second goal in two cup appearances. On 24 January 2026, Roshi scored a decisive goal in a 22nd-week match against Boluspor, helping his team secure an important victory and move closer to a playoff position.
International career
Youth
Roshi was capped three times for the Albania under-17 in the 2008 UEFA European Under-17 Championship qualifying round in October 2007.Roshi debutted for the U21 side on 5 September 2009 in the 2011 UEFA European Under-21 Championship qualification, in a 1–0 win after an own goal. Following his good second-half performance, in the next match four days later against Austria U21s, Roshi started the match and scored his first under-21 goal in the 41st minute, but Albania U21 lost 3–1. Roshi played in four of the next six qualifying matches and scored 2 more goals, and Albania U21s finished fourth of five teams, managing 1 win, 1 draw and 6 losses.
Roshi played also in the two opening 2013 UEFA European Under-21 Championship qualification matches against Poland U21s in a 3–0 loss on 2 September 2011 and in a 4–3 victory against Moldova U21s on 6 September, both for the full 90 minutes.
Senior team
He received his first senior call-up from head coach Josip Kuže on 30 September 2011, and made his debut on 7 October 2011, playing the full 90 minutes in a UEFA Euro 2012 qualifying Group D match against France, which ended in a 3–0 away defeat.Roshi went on to feature in several friendlies under head coach Gianni De Biasi before being included in the squad for the opening matches of the 2014 FIFA World Cup qualification in September 2012 against Cyprus and Switzerland. He appeared only in the latter, coming on as a substitute in a 2–0 away defeat to Switzerland. Roshi scored his first international goal on 16 October 2012 against Slovenia, heading in the only goal of a 1–0 victory. On 11 October 2013, Roshi won a penalty in a 2–1 away defeat to Switzerland, with Hamdi Salihi converting in the 90+1st minute. He made a total of eight appearances during the qualifying campaign, starting five matches and playing 564 minutes, as Albania finished fifth in the group.
In the opening match of the Euro 2016 qualifying campaign on 7 September 2014, away against Portugal, Roshi provided the assist for the only goal of the game, crossing to Bekim Balaj. This marked Albania’s first ever win against the "Seleção das Quinas". Throughout the qualifying campaign, Roshi continued mainly as a substitute, making a total of five appearances. He played the full 90 minutes in the final qualifying match away to Armenia, contributing to Albania’s third goal scored by Armando Sadiku in a 3–0 win, which confirmed their qualification for UEFA Euro 2016. This was Albania’s first appearance at a major men’s football tournament.
On 21 May 2016, Roshi was named in Albania's preliminary 27-man squad for UEFA Euro 2016, and in Albania's final 23-man UEFA Euro 2016 squad on 31 May. On 3 June 2016, in Albania’s final friendly before UEFA Euro 2016, Roshi assisted Sadiku’s 13th-minute equaliser in a 3–1 home defeat to Ukraine national football team. On 3 June 2016, in Albania’s final warm-up friendly before Euro 2016, Roshi assisted Sadiku’s 13th-minute equaliser in a 3–1 defeat to Ukraine.
He played as a starter in the opening Group A match against Switzerland, which was lost 1–0. Roshi then featured as a substitute in the remaining two group matches as Albania finished third in Group A with three points and a goal difference of –2. Albania were ranked last among the third-placed teams and were consequently eliminated from the tournament.
During the 2018 FIFA World Cup qualification – UEFA Group G, Roshi established himself as a regular starter, featuring in all matches, several of which he played for the full 90 minutes. Roshi scored his second international goal in a 2–1 friendly loss to Luxembourg on 4 June 2017. On 11 June 2017, during a World Cup qualification fixture against Israel, Roshi assisted the opening goal in a 3–0 away victory. In September 2017, continuing the qualification campaign, Roshi scored one goal in each match against Macedonia and Liechtenstein, as Albania recorded a 1–1 away draw and a 2–0 home victory respectively.
On 13 November 2017, Roshi provided two assists for Sadiku's goals during a friendly against Turkey, which ended in a 3–2 away victory. He captained Albania for the first time in his 48th appearance later on 26 March 2018, playing the first half of a 1–0 home loss to Norway.
Following the appointment of head coach Edoardo Reja, Albania adopted a 3–5–2 formation, a system in which Roshi was less suited due to his more offensive playing profile and his playing time became more limited; nevertheless, he remained the player who provided the most assists for Albania during Reja’s tenure. On 11 June 2019, Roshi returned after more than a year out due to a knee injury and marked his comeback by providing an assist in a 2–0 home victory against Moldova during the UEFA Euro 2020 qualification campaign, setting up Sokol Cikalleshi’s opening goal in the 66th minute. Later in the same campaign, he scored as a substitute in a 4–2 home victory over Iceland on 10 September 2019, netting Albania’s third goal to restore the lead in the 79th minute. He went on to record three additional assists during the qualification, including two on 14 November 2019 in a 2–2 away draw against Andorra.
In September 2021, during the 2022 FIFA World Cup qualification campaign, Roshi played twice as a half-time substitute and provided the winning assist in a 1–0 home victory against Hungary, and two other assists in a 5–0 away win over San Marino.
On 14 November 2024, Roshi announced his retirement from the Albania national team after having earned 71 caps, scored five goals and provided a total of 15 assists.
Nickname
Roshi earned the nickname Raketa due to his fast pace on the football pitch. In his physical test at Köln, Roshi ran 30 metres in 3.7 seconds and 100 metres in 10.9 seconds, achieving the highest score in his team.Personal life
In October 2021, Roshi became a father for the first time, announcing the birth of his son through a post on social media, in which he also revealed the child’s name Rois. In June 2023, Roshi became a father for the second time, announcing the birth of his son Noan.Career statistics
International
| No. | Date | Venue | Opponent | Score | Result | Competition |
| 1 | 16 October 2012 | Qemal Stafa Stadium, Tirana, Albania | 1–0 | 1–0 | 2014 FIFA World Cup qualification | |
| 2 | 4 June 2017 | Stade Josy Barthel, Route d'Arlon, Luxembourg | 1–0 | 1–2 | Friendly | |
| 3 | 2 September 2017 | Elbasan Arena, Elbasan, Albania | 1–0 | 2–0 | 2018 FIFA World Cup qualification | |
| 4 | 5 September 2017 | Stadion Mladost, Strumica, Macedonia | 1–0 | 1–1 | 2018 FIFA World Cup qualification | |
| 5 | 10 September 2019 | Elbasan Arena, Elbasan, Albania | 3–2 | 4–2 | UEFA Euro 2020 qualification |