{{short description|Albanian footballer (born 1991)}} {{Use dmy dates|date=August 2020}} {{Infobox football biography | name = Odise Roshi | image = Dinamo-Terek 17 (4).jpg | caption = Roshi with Akhmat Grozny in 2017 | birth_date = {{Birth date and age|df=yes|1991|5|22}} | birth_place = Fier, Albania | height = 1.86 m | position = Right winger | currentclub = Ankara Keçiörengücü | clubnumber = 7 | youthyears1 = 2001–2006 | youthclubs1 = Apolonia Fier | years1 = 2006–2009 | clubs1 = Apolonia Fier | caps1 = 21 | goals1 = 0 | years2 = 2009–2011 | clubs2 = Flamurtari Vlorë | caps2 = 51 | goals2 = 8 | years3 = 2011–2012 | clubs3 = 1. FC Köln | caps3 = 20 | goals3 = 1 | years4 = 2012–2015 | clubs4 = FSV Frankfurt | caps4 = 74 | goals4 = 6 | years5 = 2015–2016 | clubs5 = Rijeka | caps5 = 21 | goals5 = 1 | years6 = 2016–2021 | clubs6 = Akhmat Grozny | caps6 = 84 | goals6 = 11 | years7 = 2021 | clubs7 = → Diósgyőri VTK (loan) | caps7 = 11 | goals7 = 0 | years8 = 2021–2022 | clubs8 = Boluspor | caps8 = 28 | goals8 = 1 | years9 = 2022–2024 | clubs9 = Sakaryaspor | caps9 = 53 | goals9 = 6 | years10 = 2024–2025 | clubs10 = Erzurumspor | caps10 = 35<!-- no play-off apps included --> | goals10 = 7 | years11 = 2025– | clubs11 = Ankara Keçiörengücü | caps11 = 37 | goals11 = 7 | nationalyears1 = 2006–2008 | nationalteam1 = Albania U17 | nationalcaps1 = 3 | nationalgoals1 = 0 | nationalyears2 = 2009–2011 | nationalteam2 = Albania U21 | nationalcaps2 = 11 | nationalgoals2 = 7 | nationalyears3 = 2011–2023 | nationalteam3 = Albania | nationalcaps3 = 71 | nationalgoals3 = 5 | club-update = 7 May 2026 | nationalteam-update = 16 November 2022 }} '''Odise Roshi''' ({{IPA|sq|oˈdisɛ ˈɾɔʃi}}; born 22 May 1991) 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 Apolonia academy, Roshi has played professionally in Albania and Germany, notably in the Bundesliga with 1. FC Köln,<ref name="DFB">{{DFB|odise-roshi|access-date=14 January 2026}}</ref><ref name="Roshi Köln"/> before spells in the Croatian top flight with Rijeka,<ref name="Roshi Rijeka"/> the Russian Premier League with Akhmat Grozny, as well as in Hungary and Turkey,<ref name="TFF">{{TFF player|2294079}}</ref> making more than 400 senior appearances across all competitions.

Roshi has represented Albania at under-17 and -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.<ref name="EU-Football.info">{{EU-Football.info|27254}}</ref>

==Club career== ===Early career=== Born in Fier, Albania, Roshi began playing football at the age of 10 with his hometown club Apolonia Fier.<ref>{{cite web |title=Odise Roshi – Euro 2016 profile |url=https://euro.fshf.org/odise-roshi/ |publisher=FSHF |access-date=11 January 2026 |language=sq}}</ref><ref name="FSHF">{{FSHF player|226643|access-date=11 January 2026}}</ref>

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.<ref name="NFT"/><ref name="FSHF"/> 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.<ref name="NFT"/><ref>{{cite web |url=https://www.worldfootball.net/competition/co561/albania-kategoria-superiore/se531/2008-2009/ro2361/round/md33/results-and-standings/ |title=Kategoria Superiore 2008–09 standings |publisher=WorldFootball.net |access-date=11 January 2026}}</ref>

===Flamurtari Vlorë=== In July 2009, Roshi joined fellow Superliga side Flamurtari Vlorë.<ref name="FSHF" /> 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.<ref>{{cite web|url=https://www.uefa.com/uefaeuropaleague/match/2000588--motherwell-vs-flamurtari/|title=Motherwell 8–1 Flamurtari|publisher=UEFA.com|date=23 July 2009|access-date=10 January 2026}}</ref><ref>{{cite news|url=https://stv.tv/sport/football/111430-motherwell-8-1-ks-flamurtari-goal-highlights/|title=Motherwell 8-1 KS Flamurtari goal highlights|publisher=STV|date=24 July 2009|access-date=9 May 2013|archive-date=6 September 2017|archive-url=https://web.archive.org/web/20170906040924/https://stv.tv/sport/football/111430-motherwell-8-1-ks-flamurtari-goal-highlights/|url-status=dead}}</ref> 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.<ref name="RSSSF 2009 Albanian Supercup">{{cite web |title=Albania Cup 2008/09 |url=https://www.rsssf.org/tablesa/albacup09.html |website=RSSSF |access-date=14 January 2026}}</ref> 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.<ref>{{cite web |url=https://tribuna.com/fr/match/101681294/ |title=KF Tirana - SK Flamurtari Vlore: Score en direct, Stream et résultats H2H |publisher=Tribuna.com |date=23 August 2009 |access-date=10 January 2026 |language=fr}}</ref><ref>{{cite web |url=https://int.soccerway.com/matches/2009/08/23/albania/super-league/kf-tirana/ks-flamurtari-vlore/827800/ |title=Tirana vs. Flamurtari Vlorë 1-3 – 23 August 2009 |publisher=Soccerway |access-date=5 September 2017}}</ref> He continued to be a regular starter during the opening weeks of the campaign, before Flamurtari went scoreless in their next four league matches.<ref>{{cite web |url=https://tribuna.com/fr/persons/odise-roshi/stat/2009-2010/ |title=Odise Roshi - Statistiques de Buts 2009/2010 |publisher=Tribuna.com |access-date=13 January 2026 |language=fr}}</ref> Roshi ended this run on 4 October by scoring a brace in a 2–0 home win over Vllaznia on matchday six.<ref>{{cite web |url=https://www.albaniasoccer.com/livescore/matchreport/10-kategoria-superiore-09-10/77.html |title=Kronika e ndeshjes: Flamurtari - Vllaznia |trans-title=Flamurtari 2–0 Vllaznia – Match report |publisher=AlbaniaSoccer.com |date=4 October 2009 |access-date=13 January 2026 |language=sq}}</ref>

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.<ref name="NFT" /><ref>{{cite web |url=https://www.worldfootball.net/competition/co561/albania-kategoria-superiore/se1571/2009-2010/results-and-standings/ |title=Albania 2009–2010 Superliga standings |publisher=WorldFootball.net |access-date=13 January 2026}}</ref>

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.<ref>{{cite news |url=https://www.albaniasoccer.com/lajme/shqiperi/superliga/1893-roshi-perfundon-proven-te-psg-ja-neser-rikthehet-ne-vlore.html |title=Roshi përfundon provën te PSG-ja, nesër rikthehet në Vlorë |trans-title=Roshi completes trial at PSG, returns to Vlorë tomorrow |publisher=AlbaniaSoccer |date=22 April 2010 |access-date=13 January 2026 |language=sq}}</ref> Although the move was reportedly valued at €250,000, the transfer did not materialize.<ref>{{cite news |url=https://www.albaniasoccer.com/lajme/shqiperi/superliga/2383-levizjet-deshton-transferimi-i-roshit-te-psg-ja.html |title=Levizjet/ Deshton transferimi i Roshit te PSG-ja |trans-title=Movements / Roshi's transfer to PSG fails |publisher=AlbaniaSoccer |date=17 June 2010 |access-date=13 January 2026 |language=sq}}</ref>

On 27 August 2010, in the second week of the 2010–11 Albanian Superliga, Roshi scored in a 2–1 home win over Tirana.<ref>{{cite web |url=https://tribuna.com/fr/match/101803955/ |title=SK Flamurtari Vlore - KF Tirana: Score en direct, Stream et résultats H2H |trans-title=SK Flamurtari Vlore - KF Tirana: Live score, stream and H2H results |publisher=Tribuna.com |date=27 August 2010 |access-date=13 January 2026 |language=fr}}</ref> 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.<ref>{{cite web |url=https://www.worldfootball.net/competition/co561/albania-kategoria-superiore/se6057/2010-2011/ro19289/round/md10/results-and-standings/ |title=Albania » Kategoria Superiore 2010/2011 » MD 10 Results & Standings |publisher=WorldFootball.net |date=7 November 2010 |access-date=13 January 2026 |language=en}}</ref> 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.<ref>{{cite web |url=https://tribuna.com/fr/match/101856290/ |title=SK Flamurtari Vlore - Shkumbini Peqin: Score en direct, mises à jour et résultats face-à-face |trans-title=SK Flamurtari Vlore - Shkumbini Peqin: Live score, updates and head-to-head |publisher=Tribuna.com |date=30 January 2011 |access-date=13 January 2026 |language=fr}}</ref>

Flamurtari held top spot in the league from until mid-April before being chased by title rivals Skënderbeu.<ref>{{cite news |url=https://www.panorama.com.al/flamurtari-odise-roshi-superiorja-si-xhungel-por-%e2%80%9cluani%e2%80%9d-jemi-ne/ |title=Flamurtari, Odise Roshi: Superiorja si xhungël, por "luani" jemi ne |trans-title=Flamurtari, Odise Roshi: The Superliga is like a jungle, but we are the lions |publisher=Panorama Sport |date=10 April 2011 |access-date=13 January 2026 |language=sq}}</ref> 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.<ref>{{cite web |url=https://www.worldfootball.net/competition/co561/albania-kategoria-superiore/se6057/ro19289/round/md28/results-and-standings/ |title=Albania » Kategoria Superiore 2010/2011 » MD 28 Results & Standings |publisher=WorldFootball.net |date=April 2011 |access-date=13 January 2026}}</ref> 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.<ref>{{cite web |url=https://tribuna.com/fr/match/101881626/ |title=SK Flamurtari Vlore - Dinamo Tirana: Score en direct, Stream et résultats H2H |trans-title=SK Flamurtari Vlore - Dinamo Tirana: Live score, stream and H2H results |publisher=Tribuna.com |date=20 April 2011 |access-date=14 January 2026 |language=fr}}</ref>

Over the 2010–11 season, Roshi made 22 league appearances,<ref>{{cite web |url=https://tribuna.com/fr/persons/odise-roshi/stat/2010-2011/ |title=Odise Roshi — Statistiques 2010/2011 |trans-title=Odise Roshi — 2010/2011 Statistics |publisher=Tribuna.com |access-date=14 January 2026 |language=fr}}</ref> Flamurtari finished the 2010–11 season as runners-up, four points behind champions Skënderbeu, while scoring 62 goals, the highest in the league.<ref>{{cite web |url=https://www.worldfootball.net/competition/co561/albania-kategoria-superiore/se6057/2010-2011/ro19289/round/md33/results-and-standings/ |title=Albania 2010/2011 – Matchday 33 – Results & Standings |publisher=WorldFootball.net |access-date=14 January 2026}}</ref>

Roshi was reported to be close to joining Belgian club Anderlecht in 2011.<ref>{{cite web|url=https://www.albaniasoccer.com/lajme/shqiperi/superliga/4710-levizjet-anderleht-mund-te-marre-roshin-nga-flamurtari-.html|title=Levizjet/ Anderleht mund te marre Roshin nga Flamurtari|trans-title=Movements/ Anderlecht could take Roshi from Flamurtari|publisher=AlbaniaSoccer|language=sq|date=30 April 2011|access-date=10 January 2026}}</ref>

===1. FC Köln=== On 19 May 2011, Roshi joined 1. FC Köln on a free transfer, signing a four-year contract.<ref name="Roshi Köln">{{cite news |url=https://www.panorama.com.al/odise-roshi-kontrate-4-vjecare-tek-kelni/ |title=Odise Roshi, kontratë 4-vjeçare tek Këlni |trans-title=Odise Roshi, 4-year contract at Köln |publisher=Panorama |language=sq |date=20 May 2011 |access-date=5 September 2017}}</ref>

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.<ref>{{cite web |url=https://int.soccerway.com/matches/2011/08/06/germany/bundesliga/1-fc-koln/vfl-wolfsburg/1121940/|title=Köln vs. Wolfsburg 0–3 6 August 2011 |publisher=Soccerway |access-date=6 August 2011}}</ref><ref>{{cite news |url=https://www.albaniasoccer.com/lajme/shqiperi/kombetarja/5115-bundesliga--debuton-odhise-roshi.html |title=Bundesliga / Debuton Odhise Roshi |trans-title=Bundesliga / Odise Roshi debuts |publisher=AlbaniaSoccer |language=sq |date=7 August 2011 |access-date=6 August 2011}}</ref> 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.<ref>{{cite news |title=Odise Roshi shënon golin e parë në Gjermani dhe i jep fitoren Këlnit (VIDEO) |trans-title=Odise Roshi scores his first goal in Germany and gives Köln the win |url=https://www.gazetatema.net/2012/02/05/odise-roshi-shenon-golin-e-pare-ne-gjermani-dhe-i-jep-fitoren-kelnitvideo |work=Gazeta Tema |date=5 February 2012 |language=sq}}</ref><ref>{{cite news |title=FC Kaiserslautern 0–1 Cologne |url=https://www.skysports.com/football/news/7489939/fc-kaiserslautern-0-cologne-1 |work=Sky Sports |date=5 February 2012 |access-date=14 January 2026}}</ref> Roshi earned the nickname “The Rocket” due to his exceptional pace, with reports noting his speed and prominence in the team.<ref>{{cite news |title="Raketa Roshi", shqiptari është personazhi i ditës në Këln |url=https://www.panorama.com.al/sport/%E2%80%9Craketa-roshi-shqiptari-eshte-personazhi-i-dites-ne-keln/ |trans-title=Roshi Rocket, the Albanian is the personality of the day in Cologne |publisher=Panorama Sport |date=7 February 2012 |access-date=14 January 2026 |language=sq}}</ref> Roshi assisted the Milivoje Novaković's goal against 1. FC Nürnberg two weeks later in 2–1 loss.<ref>{{cite news |url=https://int.soccerway.com/matches/2012/02/18/germany/bundesliga/1-fc-nurnberg/1-fc-koln/1122129/ |title=Nürnberg vs. Köln 2 – 1 |publisher=Soccerway |date=18 February 2012 |access-date=18 February 2012}}</ref>

Roshi finished the 2011–12 Bundesliga season with 20 appearances, including three starts, scoring one goal and providing one assist.<ref>{{cite web |title=Odise Roshi – 2011‑12 Bundesliga season statistics |url=https://www.worldfootball.net/person/pe158085/odise-roshi/co12/germany-bundesliga/se7094/2011-2012/club-matches/ |work=WorldFootball.net |access-date=14 January 2026}}</ref>

===FSV Frankfurt=== {{quote box|width=30%|align=right|quote="Odise Roshi is a versatile attacking player who already showed glimpses of his quality during last season in Germany. I am firmly convinced that Odise will bring additional momentum to FSV Frankfurt’s offensive play"|source=—Uwe Stöver on Roshi’s impact at FSV Frankfurt.<ref name=FSV>{{cite web|title=FSV Frankfurt leiht Odise Roshi vom 1. FC Köln |trans-title=FSV Frankfurt loans Odise Roshi from 1. FC Köln |url=http://www.spox.com/de/sport/fussball/zweiteliga/1208/News/fsv-frankfurt-leiht-odise-roshi-vom-1-fc-koeln-aus-uwe-stoever.html |publisher=spox |access-date=9 May 2013 |language=de |date=6 August 2012}}</ref>}}

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.<ref name=FSV/>

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.<ref>{{cite web |title=FSV Frankfurt 3–1 Hertha BSC – Lineups |url=https://www.worldfootball.net/match-report/co3/germany-2-bundesliga/ma1119964/fsv-frankfurt_hertha-bsc/lineup/ |work=WorldFootball.net |access-date=14 January 2026}}</ref> 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.<ref>{{cite web |title=Großaspach 1–2 FSV Frankfurt |url=https://www.worldfootball.net/match-report/co33/germany-dfb-pokal/ma1005624/sg-sonnenhof-grossaspach_fsv-frankfurt/lineup/ |website=WorldFootball.net |access-date=15 January 2026}}</ref> On 2 September 2012, Roshi provided the assist for the winning goal in a 1–0 victory against Erzgebirge Aue.<ref>{{cite web |title=Odise Roshi – FSV Frankfurt 1–0 Erzgebirge Aue assist |url=https://www.espn.co.uk/football/match?gameId=346676 |work=ESPN |access-date=14 January 2026}}</ref> 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.<ref>{{cite web |title=FSV Frankfurt 2–1 St. Pauli – Roshi goal |url=https://www.skysports.com/football/fsv-frankfurt-vs-st-pauli/teams/267361 |work=Sky Sports |access-date=14 January 2026}}</ref><ref>{{cite web |title=Roshi dhe Kapllani i dhurojnë Frankfurtit fitoren e 100-të |url=https://telegraf.al/sport/roshi-kapllani-i-dhurojne-frankfurtit-fitoren-e-100-te/ |website=Telegraf |date=23 September 2012 |language=sq |access-date=15 January 2026}}</ref> 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.<ref>{{cite news|url=http://albaniasoccer.com/lajme/shqiperi/kombetarja/7238-legjionaret-rikthehet-tek-goli-odhise-rroshi.html|title=Legjionaret/ Rikthehet tek goli Odhise Rroshi|access-date=25 October 2017|publisher=AlbaniaSoccer|date=28 April 2013|language=sq}}</ref>

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.<ref>{{cite web |title=Odise Roshi 2012–13 season statistics |url=https://www.worldfootball.net/person/pe158085/odise-roshi/co3/germany-2-bundesliga/se9025/2012-2013/club-matches/ |work=WorldFootball.net |access-date=14 January 2026}}</ref>

On 17 May 2013, Roshi signed a two-year permanent contract with the club.<ref>{{cite news |title=Roshi firmos për dy vite me FSV Frankfurtin |trans-title="Roshi signs a two-year deal with FSV Frankfurt" |url=https://www.panorama.com.al/roshi-firmos-per-dy-vite-me-fsv-frankfurtin/ |work=Panorama Sport |date=18 May 2013 |access-date=14 January 2026}}</ref>

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.<ref>{{cite web |title=Odise Roshi 2013–14 2. Bundesliga match logs |url=https://www.worldfootball.net/person/pe158085/odise-roshi/co33/germany-dfb-pokal/se12096/2013-2014/club-matches/ |website=WorldFootball.net |access-date=15 January 2026}}</ref> 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;<ref>{{cite web|url=https://int.soccerway.com/matches/2014/04/04/germany/2-bundesliga/vfr-aalen-1921-ev/fsv-frankfurt/1486970/|title=Aalen vs. FSV Frankfurt - 4 April 2014 - Soccerway|access-date=15 June 2016}}</ref> he was named in the Team of the Week.<ref>{{cite news|url=http://infopasqyra.com/lajme/roshi-ne-formacionin-e-javes-ja-sekreti-im/news/lajmi/|title=Roshi në formacionin e javës : Ja sekreti im|access-date=25 October 2017|publisher=Info Pasqyra|date=6 April 2014|archive-url=https://web.archive.org/web/20140413150918/http://infopasqyra.com/lajme/roshi-ne-formacionin-e-javes-ja-sekreti-im/news/lajmi/|archive-date=13 April 2014|language=sq}}</ref> 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.<ref>{{cite news |title=FSV Frankfurt: Roshi für ein Spiel gesperrt |trans-title=FSV Frankfurt: Roshi suspended for one match |url=https://www.sueddeutsche.de/sport/fussball-fsv-frankfurt-roshi-fuer-ein-spiel-gesperrt-dpa.urn-newsml-dpa-com-20090101-140428-99-07388 |work=Süddeutsche Zeitung |date=28 April 2014 |language=de |access-date=15 January 2026}}</ref>

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.<ref>{{cite web |title=Siegen 3–3 FSV Frankfurt (4–5 pens) – Match report |url=https://www.kicker.de/siegen-gegen-fsv-frankfurt-2014-dfb-pokal-2397930/ticker |website=Kicker |access-date=15 January 2026}}</ref> In the 2014–15 2. Bundesliga Roshi was a regular starter, making 21 league appearances, scoring thrice and receiving five yellow cards.<ref>{{cite web |title=Odise Roshi 2014–15 match logs |url=https://fbref.com/en/players/cd56b151/matchlogs/2014-2015/Odise-Roshi-Match-Logs |website=FBref |access-date=16 January 2026}}</ref> 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.<ref>{{cite web |title=VfR Aalen 0–1 FSV Frankfurt |url=https://www.worldfootball.net/match-report/co3/germany-2-bundesliga/ma2227013/vfr-aalen_fsv-frankfurt/lineup/ |website=WorldFootball.net |access-date=14 January 2026}}</ref><ref>{{cite news |title=Odise Roshi rikthehet me gol |trans-title=Odise Roshi returns with a goal |url=https://tvklan.al/odise-roshi-rikthehet-me-gol |work=TV Klan |date=8 November 2014 |language=sq |access-date=14 January 2026}}</ref> 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.<ref>{{cite news|url=http://asport.al/roshi-shenon-gol-fsv-frankfurt-rikthehet-fitores-video/|title=Roshi shënon gol, FSV Frankfurt i rikthehet fitores (+Video)|trans-title=Roshi scores a goal, FSV Frankfurt returned to the victory (+Video)|publisher=aSport.al|language=sq|date=8 February 2015|access-date=22 December 2017|archive-url=https://web.archive.org/web/20170926095852/http://asport.al/roshi-shenon-gol-fsv-frankfurt-rikthehet-fitores-video/|archive-date=26 September 2017|url-status=dead}}</ref> 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.<ref>{{cite web |title=Odise Roshi, gol 3-pikësh për FSV Frankfurt |url=https://www.balkanweb.com/odise-roshi-gol-3-pikesh-per-fsv-frankfurt/ |website=BalkanWeb |language=sq |date=15 February 2015 |access-date=16 January 2026}}</ref><ref>{{cite web|url=https://int.soccerway.com/matches/2015/02/15/germany/2-bundesliga/rb-leipzig/fsv-frankfurt/1714353/|title=RB Leipzig vs. FSV Frankfurt - 15 February 2015|publisher=Soccerway|access-date=15 June 2016}}</ref>

===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;<ref name="Roshi Rijeka">{{cite news |title=Odise Roshi firmos për 3 vjet me Rijekën |trans-title=Odise Roshi signs for 3 years with Rijeka |url=http://www.supersport.al/odise-roshi-fiirmos-per-3-vjet-me-rijeken/ |publisher=SuperSport Albania |author=Adi Metaliu |date=8 June 2015 |language=sq |access-date=5 September 2017 |url-status=dead |archive-url=https://web.archive.org/web/20170613214319/http://www.supersport.al/odise-roshi-fiirmos-per-3-vjet-me-rijeken/ |archive-date=13 June 2017}}</ref> he rejoined compatriot and Albania international Bekim Balaj at the club.<ref>{{cite news |title=Odise Roshi transferohet te Rijeka |trans-title=Odise Roshi transfers to Rijeka |url=https://tvklan.al/odise-roshi-transferohet-te-rijeka |work=TV Klan |date=7 June 2015 |language=sq |access-date=14 January 2026}}</ref> Roshi was reported to earn around €250,000 per season.<ref>{{cite news |last=Tuani |first=Olsi |title=Roshi te Rijeka, 250 mijë € në sezon: Do ta shfrytëzoj si trampolinë për të ardhmen |work=Panorama Sport |date=June 2015 |url=https://www.panorama.com.al/sport/roshi-te-rijeka-250-mije-e-ne-sezon-do-ta-shfrytezoj-si-trampoline-per-te-ardhmen/ |language=sq |access-date=16 January 2026}}</ref>

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.<ref>{{cite news |url=https://www.panorama.com.al/sport/trajneri-i-rijekes-roshi-erdhi-i-demtuar/ |title=Trajneri i Rijekës: Roshi erdhi i dëmtuar |work=Panorama Sport |date=7 July 2015 |language=sq |access-date=16 January 2026}}</ref> 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.<ref>{{cite news|author1=Eduard Ilnica|url=http://telesport.al/shenon-bekim-balaj-i-jep-rijekes-nje-pike/|title=Shënon Bekim Balaj, i jep Rijekës një pikë|access-date=25 October 2017|publisher=Telesport|date=19 July 2015|language=sq|archive-date=4 October 2018|archive-url=https://web.archive.org/web/20181004205835/http://telesport.al/shenon-bekim-balaj-i-jep-rijekes-nje-pike/|url-status=dead}}</ref> Roshi made his debut for Rijeka in the Europa League away fixture against Aberdeen on 23 July 2015.<ref>{{cite news|url=https://www.uefa.com/uefaeuropaleague/match/2016793--aberdeen-vs-rijeka/|title=UEFA Europa League 2015/16 - History - Aberdeen-Rijeka|access-date=25 October 2017|publisher=UEFA|date=23 July 2015}}</ref> 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.<ref>{{cite news |title=NAKON DEBIJA U HNL-u: Roshi: Jako sam motiviran i željan igre |work=Riportal |date=10 August 2015 |url=https://riportal.net.hr/sport/nakon-debija-u-hnl-u-roshi-jako-sam-motiviran-i-zeljan-igre/10034/ |language=hr |access-date=16 January 2026}}</ref> 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.<ref>{{cite web |title=Odise Roshi – Matches 2015–16 |website=WorldFootball.net |url=https://www.worldfootball.net/player_summary/odise-roshi/cro-1-hnl-2015-2016/rijeka/ |access-date=17 January 2026}}</ref> He scored his first goal for the club in their 4–1 home win against Zagreb on 4 October 2015.<ref>{{cite news|url=http://prvahnl.hr/matches/271148/rijeka-zagreb-41/|title=Rijeka-Zagreb 4:1|access-date=25 October 2017|publisher=PrvaHNL.hr|date=4 October 2015}}</ref> Roshi made a total of 20 league appearances,<ref name="NFT" /> as Rijeka finished as runners-up behind Dinamo Zagreb.<ref>{{cite web |url=https://www.soccerway.com/croatia/hnl-2015-2016/#/M7dojKaa/standings/overall/ |title=HNL 2015/2016 table, results – Croatia |publisher=Soccerway |access-date=17 January 2026}}</ref> 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,<ref>{{cite news |url=https://www.panorama.com.al/sport/shkelqen-gashi-triplete-ne-kupe-shenon-edhe-ajeti/ |title=Shkëlqen Gashi, tripletë në Kupë, shënojnë Roshi edhe Ajeti |publisher=Panorama Sport |date=28 October 2015 |access-date=17 January 2026}}</ref> helping the club advance to the quarter-finals.<ref>{{cite news|url=http://hns-cff.hr/news/12276/poznati-sudionici-osmine-finala-kupa-hrvatske/|title=Second round draw |date=23 September 2015|work=HNS-CFF.hr|language=hr|access-date=17 January 2026}}</ref>

Roshi became the first Rijeka player to appear in a European Championship, featuring for Albania national team at Euro 2016.<ref>{{cite news |url=https://www.panorama.com.al/sport/odise-roshi-futet-ne-historine-e-rijekes-i-pari-ne-europian/ |title=Odise Roshi futet në historinë e Rijekës, i pari në Europian |publisher=Panorama Sport |date=25 June 2016 |access-date=17 January 2026}}</ref>

===Akhmat (Terek) Grozny=== On 21 July 2016, Roshi signed a three-year contract with Terek Grozny in the Russian Premier League,<ref>{{cite web|url=http://radio.hrt.hr/radio-rijeka/clanak/odise-roshi-odlazi-balajevim-stopama/123950/|title=Odise Roshi odlazi Balajevim stopama?|publisher=Radio Rijeka|last=Vujnović|first=Korado|language=hr|date=21 July 2016|access-date=22 July 2016|archive-date=27 September 2016|archive-url=https://web.archive.org/web/20160927191000/http://radio.hrt.hr/radio-rijeka/clanak/odise-roshi-odlazi-balajevim-stopama/123950|url-status=dead}}</ref> rejoining fellow Albanian Bekim Balaj who had transferred earlier.<ref>{{cite web |url=https://telegrafi.com/en/official-roshi-signs-the-Russian-team-photo/ |title=Official: Roshi signs with the Russian team |date=22 July 2016 |publisher=Telegrafi |access-date=17 January 2026}}</ref> 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.<ref>{{cite web |url=https://www.worldfootball.net/match-report/co95/russia-premier-liga/ma8256955/akhmat-grozny_krylia-sovetov/lineup/ |title=Terek Grozny 1–0 Krylia Sovetov Samara |publisher=WorldFootball.net |date=31 July 2016 |access-date=19 January 2026}}</ref>

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.<ref>{{cite web|url=https://fbref.com/en/players/cd56b151/matchlogs/2016-2017/c30/Odise-Roshi-Match-Logs|title=Odise Roshi – Match Logs 2016–17|publisher=FBref|access-date=23 January 2026}}</ref> He also regularly provided assists for Balaj, contributing to the team's attacking play.<ref name="Tema Roshi Balaj">{{cite news |url=https://www.gazetatema.net/2016/12/25/balaj-kryegolashenues-roshi-goli-i-vitit-te-terek-grozny |title=Balaj kryegolashënues, Roshi goli i vitit te Terek Grozny |publisher=Gazeta Tema |date=25 December 2016 |access-date=17 January 2026}}</ref><ref>{{cite news |title=VIDEO/ Roshi asist, Balaj gol, Terek Grozni fiton me shqiptarët |url=https://www.balkanweb.com/video-roshi-asist-balaj-gol-terek-grozni-fiton-me-shqiptaret/ |access-date=23 January 2026 |publisher=BalkanWeb |date=1 October 2016}}</ref><ref>{{cite news |url=https://www.balkanweb.com/en/balaj-dhe-roshi-udheheqin-terek-groznin-drejt-europes/ |title=Balaj dhe Roshi udhëheqin Terek Groznin drejt Europës |trans-title=Balaj and Roshi lead Terek Grozny towards Europe |publisher=Balkanweb |date=30 October 2016 |access-date=20 January 2026}}</ref> 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.<ref>{{cite web |url=https://fbref.com/en/matches/1a9d02df/Terek-Grozny-Rubin-Kazan-October-22-2016-Russian-Premier-League |title=Terek Grozny 3–1 Rubin Kazan |publisher=FBref |date=22 October 2016 |access-date=19 January 2026}}</ref> The goal was voted as the club’s best of the first half of the season.<ref name="Tema Roshi Balaj" /> 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.<ref>{{cite news |url=https://telegrafi.com/odise-roshi-tjeter-gol-shpeton-ekipin-e-tij/ |title=Odise Roshi, tjetër gol që shpëton ekipin e tij |publisher=Telegrafi |date=26 October 2016 |access-date=19 January 2026}}</ref><ref>{{cite web |title=Grozny 1–1 Ufa |url=https://rfpl.org/match/match_11740.html |publisher=Russian Premier League |access-date=19 January 2026}}</ref> Roshi was considered a high-quality reinforcement and contributed to Terek Grozny’s strong start to the season.<ref>{{cite web|url=https://fc-zenit.ru/news/2016-11-05-putevoditel-po-tereku-poterya-lidera-venesuelskaya-nakhodka-i-drugie-fakty.htm|title=Putevoditel po Tereku: Poterya lidera, venesuelskaya nakhodka i drugie fakty|publisher=FC Zenit|date=5 November 2016|access-date=23 January 2026}}</ref> On 2 April 2017, Roshi provided an assist against Amkar Perm in matchday 21, which ended in a 1–1 draw.<ref>{{cite news|url=http://sportekspres.com/roshi-asist-balaj-ende-thate/|title=Roshi asist, Balaj ende "thatë"|publisher=Sport Ekspres|language=sq|date=2 April 2017|access-date=22 December 2017|archive-date=29 July 2017|archive-url=https://web.archive.org/web/20170729052756/http://sportekspres.com/roshi-asist-balaj-ende-thate/|url-status=dead}}</ref> Terek Grozny ultimately finished fifth and narrowly missed qualifying for the UEFA Europa League by one point.<ref>{{cite news|url=https://gazeta-shqip.com/sport/bekim-balaj-3-minuta-per-te-shenuar-me-terek-grozni/|title=Bekim Balaj, 3 minuta për të shënuar me Terek Grozni|publisher=Gazeta Shqip|date=22 May 2017|access-date=23 January 2026 |language=sq}}</ref>

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.<ref>{{cite web|url=https://fbref.com/en/players/cd56b151/matchlogs/2017-2018/c30/Odise-Roshi-Match-Logs|title=Odise Roshi – Match Logs 2017–18|publisher=FBref|access-date=23 January 2026}}</ref> 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.<ref>{{cite news |url=https://abcnews.al/odise-roshi-siguron-qendrimin-ne-premier-ligen-ruse/ |title=Odise Roshi siguron qëndrimin në Premier Ligën Ruse |publisher=ABC News |date=8 May 2018 |access-date=19 January 2026}}</ref>

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,<ref>{{cite web|url=https://www.worldfootball.net/person/pe158085/odise-roshi/co95/russia-premier-liga/se28591/2018-2019/club-matches/|title=Odise Roshi – Club matches 2018–19|publisher=WorldFootball.net|access-date=23 January 2026}}</ref> on 18 August 2018, suffering an anterior cruciate ligament (ACL) injury, which was expected to sideline him for approximately six months.<ref>{{cite web|publisher=RIA Novosti|url=https://rsport.ria.ru/football/20180822/1140718656.html|title="Ахмат" надеется на скорое возвращение Роши в строй после разрыва "крестов"|trans-title="Akhmat hopes for Roshi's quick return after cruciate ligament rupture"|date=22 August 2018|language=ru|access-date=23 January 2026}}</ref> Following the injury, Roshi successfully underwent knee surgery in Italy in late August 2018 and began his recovery process shortly after the operation.<ref>{{cite web|url=https://www.panorama.com.al/fotolajm-perfundon-me-sukses-operacioni-ja-cfare-shkruan-odise-roshi/|title=FOTOLAJM/ Përfundon me sukses operacioni, ja çfarë shkruan Odise Roshi|trans-title=NEWSFLASH/ Surgery successfully completed, Odise Roshi comments|publisher=Panorama|language=sq|date=27 August 2018|access-date=23 January 2026}}</ref><ref>{{cite web|url=https://sportekspres.com/video-roshi-nuk-eshte-njerezor-ecen-vetem-24-ore-pas-operacionit-ne-gju/|title=VIDEO {{!}} Roshi nuk është njerëzor, ecën vetëm 24 orë pas operacionit në gju|trans-title=VIDEO {{!}} Roshi walks 24 hours after knee surgery|publisher=Sport Ekspres|language=sq|date=28 August 2018|access-date=23 January 2026}}</ref> 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.<ref name="Soccerway" /> 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.<ref>{{cite web|url=https://www.worldfootball.net/match-report/co95/russia-premier-liga/ma8754407/fk-orenburg_akhmat-grozny/lineup/|title=FK Orenburg – Akhmat Grozny 1:3 (8 April 2019)|publisher=WorldFootball.net|access-date=24 January 2026}}</ref> 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.<ref>{{cite web|url=https://fbref.com/en/players/cd56b151/matchlogs/2018-2019/c30/Odise-Roshi-Match-Logs|title=Odise Roshi – 2018–19 Match Logs|publisher=FBref|access-date=24 January 2026}}</ref> Akhmat Grozny ended the season in 8th place in the league.<ref name="NFT" />

On 27 May 2019, Roshi extended his contract with Akhmat Grozny, signing a new three-year deal with the club.<ref>{{cite web|url=https://www.panorama.com.al/sport/roshi-mbetet-ne-ceceni-balaj-i-jep-fund-aventures-3-vjecare-me-skuadren-ruse/|title=Roshi mbetet në Çeçeni, Balaj i jep fund aventurës 3-vjeçare me skuadrën ruse|publisher=Panorama Sport|language=sq|date=27 May 2019|access-date=23 January 2026}}</ref>

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 (62%).<ref>{{cite news |url=https://abcnews.al/statistika-e-vecante-dhe-sezoni-super-odise-roshi-mes-me-te-mireve-ne-rusi/ |title=Statistika e veçantë dhe sezoni super, Odise Roshi mes më të mirëve në Rusi |publisher=ABC News |date=2 August 2020 |access-date=18 January 2026}}</ref> 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.<ref>{{cite web|url=https://abcnews.al/odise-roshi-realizoi-golin-e-fitores-ne-kampionatin-rus/|title=Odise Roshi realizoi golin e fitores në kampionatin rus|publisher=ABC News Albania|language=sq|date=6 August 2019|access-date=23 January 2026}}</ref> On 16 September 2019, Roshi scored a penalty in an away match against Rostov, registering his second goal of the season.<ref>{{cite web|url=https://www.oranews.tv/article/video-roshi-ndez-motorrat-edhe-ne-rusi-shenon-ne-transferten-e-rostov|title=Roshi ndez motorrrat edhe në Rusi, shënon në transfertën e Rostov|publisher=Ora News|language=sq|date=16 September 2019|access-date=23 January 2026}}</ref> 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.<ref>{{cite web|url=https://top-channel.tv/2019/09/25/roshi-dhe-berisha-ne-forme-kualifikojne-akhmat-groznyn-ne-kupen-e-rusise/|title=Roshi dhe Berisha në formë, kualifikojnë Akhmat Groznyn në Kupën e Rusisë|publisher=Top Channel|language=sq|date=25 September 2019|access-date=23 January 2026}}</ref> On 23 November 2019, Roshi scored in a 2–0 away win against Orenburg, registering his third goal of the league season.<ref>{{cite web|url=https://abcnews.al/video-roshi-qeteson-akhmat-grozny-rikthehet-si-goleador/|title=VIDEO {{!}} Roshi qetëson Akhmat Grozny, rikthehet si goleador|publisher=ABC News Albania|language=sq|date=23 November 2019|access-date=23 January 2026}}</ref> Following his performance, he was named in the "Team of the Week 17".<ref>{{cite web|url=https://abcnews.al/video-roshi-mahnit-ruset-goli-dhe-traversa-e-fusin-mes-yjeve/|title=VIDEO {{!}} Roshi mahnit rusët, goli dhe traversa e fusin mes yjeve|publisher=ABC News Albania|language=sq|date=27 November 2019|access-date=24 January 2026}}</ref> 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.<ref>{{cite web|url=https://www.worldfootball.net/match-report/co53/russia-kubok/ma9049502/akhmat-grozny_zenit-st-petersburg/lineup/|title=Akhmat Grozny – Zenit St. Petersburg 2:3, Russian Cup 2019/20|publisher=WorldFootball.net|access-date=23 January 2026}}</ref><ref>{{cite web|url=https://www.panorama.com.al/sport/video-elimim-dhe-konflikt-politik-tifozet-e-skuadres-se-roshit-perplasen-me-fansat-e-ekipit-rus/|title=VIDEO/ Elimim dhe konflikt politik, tifozët e skuadrës së Roshit përplasen me fansat e ekipit rus|publisher=Panorama Sport|language=sq|date=4 March 2020|access-date=23 January 2026}}</ref> On 13 March 2020, Roshi scored in the 10th minute against Dynamo Moscow, netting his fifth goal of the league.<ref>{{cite web|url=https://abcnews.al/video-odise-roshi-ne-super-forme-ndeshkon-shpejt-dynamo-moscow/|title=VIDEO {{!}} Odise Roshi në super formë, ndëshkon shpejt Dynamo Moscow|publisher=ABC News Albania|language=sq|date=13 March 2020|access-date=24 January 2026}}</ref> On 1 July 2020, Roshi scored twice in a 3–1 away victory against Arsenal Tula, including a penalty.<ref>{{cite web|url=https://joq-albania.com/artikull/756009.html|title=Odise Roshi në super formë, shënon dy gola dhe i jep fitoren ekipit të tij në Rusi|publisher=JOQ Albania|language=sq|date=1 July 2020|access-date=24 January 2026}}</ref> Following his performance, he was named Player of the Match in the 25th round.<ref>{{cite web|url=https://telegrafi.com/en/Odise-Roshi-scored-two-goals-for-Akhmat-Grozny-and-was-chosen-as-the-player-of-the-match/|title=Odise Roshi scored two goals for Akhmat Grozny and was chosen as the player of the match|publisher=Telegrafi|language=en|date=1 July 2020|access-date=24 January 2026}}</ref> 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.<ref>{{cite web |title=2019–20 Russian Premier League |url=https://www.soccerway.com/russia/premier-league-2019-2020/results/ |publisher=Soccerway |access-date=24 January 2026}}</ref>

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.<ref>{{cite web|url=https://albeu.com/uncategorized/sport-odise-roshi-realizon-dy-gola-ne-rusi-video-536310/119620/|title=Odise Roshi realizon dy gola në Rusi (VIDEO)|publisher=Albeu.com|date=19 August 2020|language=sq|access-date=24 January 2026}}</ref> 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.<ref>{{cite web|url=https://rsport.ria.ru/20201109/futbol-1583737957.html|title=Одисе Роши выбыл из "Ахмата" на неопределённый срок|publisher=РИА Новости|date=9 November 2020|language=ru|access-date=24 January 2026}}</ref> He made a total six league appearances and two goals.<ref>{{cite web|url=https://news.sportbox.ru/Vidy_sporta/Futbol/Odise-Roshi-Futbol-22051991|title=Роши Одисе – Статистика сезона|publisher=Sportbox.ru|language=ru|access-date=24 January 2026}}</ref>

====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.<ref>{{cite web|publisher=FC Akhmat Grozny|url=http://fc-akhmat.ru/page/12123|title=Одисе Роши на правах аренды перешёл в венгерский клуб "Диошдьёр"|date=15 February 2021|language=ru|access-date=16 February 2021|archive-date=2 March 2021|archive-url=https://web.archive.org/web/20210302231903/http://fc-akhmat.ru/page/12123|url-status=dead}}</ref> 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.<ref>{{cite web|url=https://www.infosport.mk/2021/02/18/odise-roshi-prezantohet-te-skuadra-e-tij-e-re-ne-hungari/|title=Odise Roshi prezantohet te skuadra e tij e re në Hungari|publisher=InfoSport.mk|language=sq|date=18 February 2021|access-date=24 January 2026}}</ref> 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.<ref>{{cite web|url=https://www.panorama.com.al/sport/odise-roshi-me-kembe-te-mbare-futbollisti-i-kombetares-titullar-ne-fitoren-me-permbysje-te-dvtk/|title=Odise Roshi me "këmbë të mbarë"/ Futbollisti i Kombëtares titullar në fitoren me përmbysje të DVTK|publisher=Panorama Sport|language=sq|date=20 February 2021|access-date=24 January 2026}}</ref> 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,<ref>{{cite web|url=https://fbref.com/en/players/cd56b151/matchlogs/2020-2021/c46/Odise-Roshi-Match-Logs|title=Odise Roshi Match Logs — 2020–21 NB I|publisher=FBref.com|access-date=24 January 2026}}</ref> but was unable to help the team avoid relegation.<ref>{{cite web|url=https://abcnews.al/roshi-e-mbyll-me-dvtk-ne-hungari-e-pret-akhmat-grozny-serish/|title=Roshi e mbyll me DVTK në Hungari, e pret Akhmat Grozny sërish|publisher=ABC News Albania|language=sq|access-date=24 January 2026}}</ref>

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.<ref>{{cite web|url=https://www.panorama.com.al/sport/zyrtare-nderpret-kontraten-me-konsensus-roshi-mbyll-aventuren-te-akhmat-grozni/|title=ZYRTARE/ Ndërpret kontratën me konsensus, Roshi mbyll aventurën te Akhmat Grozni|publisher=Panorama Sport|language=sq|date=23 June 2021|access-date=24 January 2026}}</ref><ref>{{cite web|publisher=FC Akhmat Grozny|url=http://fc-akhmat.ru/page/12397|title=Одисе Роши покидает "Ахмат"|date=23 June 2021|language=ru|access-date=23 June 2021|archive-date=24 June 2021|archive-url=https://web.archive.org/web/20210624211915/http://fc-akhmat.ru/page/12397|url-status=dead}}</ref>

===Boluspor=== On 9 August 2021, Roshi signed a one-year contract with an option for a one-year extension with Boluspor in Turkey.<ref>{{cite web|publisher=Boluspor|url=http://boluspor.org.tr/haberler/odise-roshi-beypilic-bolusporda|title=Odise Roshi, Beypiliç Boluspor'da|date=9 August 2021|language=tr|access-date=9 August 2021|archive-date=9 August 2021|archive-url=https://web.archive.org/web/20210809131429/http://boluspor.org.tr/haberler/odise-roshi-beypilic-bolusporda|url-status=dead}}</ref><ref name="TFF" /> He became Boluspor’s highest-paid player, earning €250,000 per season.<ref>{{cite web|url=https://abcnews.al/250-mije-e-e-bindin-odise-roshi-i-bashkohet-kolonise-se-shqiptareve-ne-turqi/|title=250 mijë € e bindin Odise Roshi, i bashkohet kolonisë së shqiptarëve në Turqi|publisher=ABC News Albania|language=sq|access-date=25 January 2026}}</ref> Roshi made his debut on 27 August 2021, starting in a 3–1 away loss to Tuzlaspor, playing 84 minutes.<ref>{{cite web|url=https://www.soccerway.com/match/boluspor-WpwUHfZ0/tuzlaspor-ruwA42Mq/summary/lineups/?mid=CGuAi2gc|title=Boluspor vs. Tuzlaspor – Lineups – 27 August 2021|publisher=Soccerway|access-date=24 January 2026}}</ref> 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.<ref>{{cite web|url=https://www.panorama.com.al/sport/video-roshi-jep-asistin-e-pare-ne-turqi-bregu-zgjat-30-minuta-si-titullar/|title=VIDEO / Roshi jep asistin e parë në Turqi, Bregu zgjat 30 minuta si titullar|publisher=Panorama Sport|language=sq|date=30 October 2021|access-date=24 January 2026}}</ref> 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.<ref>{{cite web|url=https://www.soccerway.com/match/ankaragucu-OWyZjzgj/boluspor-WpwUHfZ0/?mid=xnsWMfrT|title=Ankaragucu vs Boluspor – Match Info & Live Score|publisher=Soccerway|access-date=25 January 2026}}</ref><ref>{{cite web|url=https://beinsports.com.tr/haber/ozet-mke-ankaragucu-1-2-beypilic-boluspor|title=SUMMARY {{!}} MKE Ankaragücü 1 2 Beypiliç Boluspor|date=14 May 2022 |publisher=beIN SPORTS Türkiye|language=tr|access-date=25 January 2026}}</ref>

===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.<ref>{{cite web|url=https://www.panorama.com.al/videolajm-odise-roshi-nderron-skuader-ne-turqi-shihni-prezantimin-e-vecante-qe-i-ben-klubi-i-ri/|title=VIDEOLAJM/ Odise Roshi ndërron skuadër në Turqi, shihni prezantimin e veçantë që i bën klubi i ri|publisher=Panorama Sport|language=sq|date=22 June 2022|access-date=25 January 2026}}</ref><ref name="TFF" /> 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.<ref>{{cite web|url=https://www.soccerway.com/match/sakaryaspor-2Jzfymql/samsunspor-pSc6z7bf/summary/lineups/?mid=UTJQ1HsE|title=SAM 3-2 SAK {{!}} Samsunspor v Sakaryaspor live scores & match info {{!}} Lineups|publisher=Soccerway|access-date=25 January 2026}}</ref> 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.<ref>{{cite web|url=https://shqiptarja.com/lajm/video-odise-roshi-protagonist-ne-turqi-goli-me-finte-ben-xhiron-e-mediave|title=VIDEO/ Odise Roshi protagonist në Turqi, goli me finte bën xhiron e mediave|publisher=Shqiptarja.com|language=sq|date=20 November 2022|access-date=25 January 2026}}</ref> On 21 January 2023, Roshi provided two assists in a 2–1 win against Altınordu.<ref>{{cite web|url=https://sportekspres.com/video-raketa-shperthen-me-dy-asiste-te-gjithe-shkojne-te-festojne-me-odise-roshin-dhe-harrojne-autorin-e-golit-ne-turqi/|title=VIDEO/ Raketa shpërthen me dy asiste, të gjithë shkojnë të festojnë me Odise Roshin dhe harrojnë autorin e golit në Turqi|trans-title=VIDEO/ Raketa explodes with two assists, everyone celebrates with Odise Roshi and forgets the goalscorer in Turkey|publisher=Sport Ekspres|language=sq|date=21 January 2023|access-date=26 January 2026}}</ref> On 20 March 2023, Roshi scored against Bodrumspor the opening goal in the 43rd minute in a 2–1 win.<ref>{{cite web|url=https://shqiptarja.com/lajm/sylvinho-nuk-e-konsideroi-per-ne-kombetare-odise-roshi-i-pergjigjet-me-gol-ne-turqi-video|title=Sylvinho nuk e konsideroi për në Kombëtare, Odise Roshi i përgjigjet me gol në Turqi |trans-title=Roshi responds with a goal in Turkey after being left out of the national team |publisher=Shqiptarja.com|language=sq|date=20 March 2023|access-date=25 January 2026}}</ref>

On 1 October 2023, Roshi provided an assist in a 2023–24 TFF 1. Lig match against Eyüpspor,<ref>{{cite web|url=https://www.panorama.com.al/sport/video-krosim-perfekt-nga-diagonalja-odise-roshi-behet-protagonist-ne-turqi/|title=VIDEO/ Krosim perfekt nga diagonalja, Odise Roshi bëhet protagonist në Turqi|trans-title=VIDEO/ Perfect cross from the diagonal, Odise Roshi becomes protagonist in Turkey|publisher=Panorama Sport|language=sq|date=1 October 2023|access-date=25 January 2026}}</ref> in a 2–0 win.<ref>{{cite web |title=SAK 2-0 EYU {{!}} Sakaryaspor v Eyupspor live scores & match info |url=https://www.soccerway.com/match/eyupspor-276zKCgt/sakaryaspor-2Jzfymql/?mid=d4NANQqF |publisher=Soccerway |access-date=25 January 2026}}</ref> 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.<ref>{{cite web|url=https://shqiptarja.com/lajm/supergol-nga-odise-roshi-anesori-e-ben-sefte-ne-turqi-i-dergon-sinjale-sylvinhos-video|title=Supergol nga Odise Roshi, anësori e 'bën sefte' në Turqi! I dërgon sinjale Sylvinhos (VIDEO)|trans-title=Super goal by Odise Roshi, the winger opens his account in Turkey and sends a signal to Sylvinho|publisher=Shqiptarja.com|language=sq|date=12 November 2023|access-date=25 January 2026}}</ref> 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.<ref>{{cite web|url=https://tvklan.al/roshi-gjen-golin-e-dyte-ne-turqi/|title=Roshi gjen golin e dytë në Turqi|publisher=TV Klan|language=sq|date=19 December 2023|access-date=25 January 2026}}</ref> On 21 January 2024, Roshi scored his third goal against Gençlerbirliği in a 3–1 loss in the 19th round.<ref>{{cite news|last=Hajdari|first=Elio|url=https://shqiptarja.com/lajm/raketa-kuqezi-odise-roshi-shenon-ne-turqi-video|title='Raketa' kuqezi, Odise Roshi shënon në Turqi (VIDEO)|trans-title='The Red&black Rocket', Odise Roshi scores in Turkey (VIDEO)|publisher=Shqiptarja.com|language=sq|date=21 January 2024|access-date=26 January 2026}}</ref> On 3 February 2024, Roshi scored the winning goal in a 1–0 home victory against Bandırmaspor.<ref>{{cite web|url=https://www.oranews.tv/sport/video-roshi-ben-bomberin-ne-turqi-uesi-shqiptar-i-jep-fitoren-sakaryas-i1136862|title=VIDEO/ Roshi bën bomberin në Turqi! Sulmuesi shqiptar i jep fitoren Sakaryasporit ndaj Bandirmaspor|publisher=Ora News|language=sq|date=3 February 2024|access-date=25 January 2026}}</ref> On 6 April 2024, Roshi scored and provided an assist for both goals in a 2–0 away win against his former side Boluspor.<ref>{{cite web|url=https://www.syri.net/sport/678279/gol-dhe-asist-odise-roshi-dhuron-spektakel-ne-turqi/|title=Gol dhe asist, Odise Roshi dhuron spektakël në Turqi|publisher=Syri.net|language=sq|date=6 April 2024|access-date=25 January 2026}}</ref>

On 18 July 2024, Roshi left Sakaryaspor after his contract expired and became a free agent, choosing not to renew with the club.<ref>{{cite web|url=https://gazetashqiptare.al/2024/07/18/odise-roshi-nuk-rinovon-mesfushori-nis-zyrtarisht-kerkimin-per-nje-skuader-tjeter/|title=Odise Roshi nuk rinovon, mesfushori nis zyrtarisht kërkimin për një skuadër tjetër|publisher=Gazeta Shqiptare|language=sq|date=18 July 2024|access-date=26 January 2026}}</ref>

===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.<ref>{{cite news |title=Odise Roshi mbetet në Turqi |trans-title=Odise Roshi remains in Turkey |url=https://tvklan.al/odise-roshi-mbetet-ne-turqi |work=TV Klan |date=14 August 2024 |access-date=14 January 2026 |language=sq}}</ref><ref name="TFF" />

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.<ref>{{cite web|url=https://shqiptarja.com/lajm/ne-turqi-shenojne-seferi-e-roshi-goli-i-myrto-uzunit-smjafton-granada-shkarkon-trajnerin-video|title=Në Turqi shënojnë Seferi e Roshi, goli i Myrto Uzunit s'mjafton! Granada shkarkon trajnerin (VIDEO)|trans-title=In Turkey Seferi and Roshi score, Myrto Uzuni's goal not enough! Granada fires coach (VIDEO)|publisher=Shqiptarja.com|language=sq|date=21 September 2024|access-date=26 January 2026}}</ref> On 14 December 2024, Roshi scored with a header in the 78th minute in a 3–2 away loss to İstanbulspor.<ref>{{cite web|url=https://shqiptarja.com/lajm/video-taulant-seferi-shenon-ne-turqi-fiton-duelin-me-rey-manaj-gol-edhe-odise-roshi|title=VIDEO/ Taulant Seferi shënon në Turqi, fiton duelin me Rey Manaj! Gol edhe Odise Roshi|trans-title=VIDEO/ Taulant Seferi scores in Turkey, wins duel with Rey Manaj! Goal also by Odise Roshi|publisher=Shqiptarja.com|language=sq|date=14 December 2024|access-date=26 January 2026}}</ref> 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.<ref>{{cite web|url=https://dosja.al/sport/video-mendet-odise-roshi-3-gola-ne-fitoren-e-ekipit-te-tij-ne-turqi-i418167|title=VIDEO / Çmendet Odise Roshi, 3 gola në fitoren e ekipit të tij në Turqi!|publisher=Dosja.al|date=8 February 2025|language=sq|access-date=24 January 2026}}</ref> 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 (8.5).<ref>{{cite web|url=https://tvklan.al/gol-dhe-vleresim-me-noten-me-te-larte-roshi-nuk-ndalet-ne-turqi|title=Gol dhe vlerësim me notën më të lartë, Roshi nuk ndalet në Turqi|trans-title=Goal and highest match rating, Roshi continues his form in Turkey|publisher=TV Klan|language=sq|date=12 February 2025|access-date=26 January 2026}}</ref> 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.<ref>{{cite web|url=https://www.panorama.com.al/roshi-pafat-ne-turqi-demtim-ne-momentin-me-te-mire/|title=Roshi pafat në Turqi, dëmtim në momentin më të mirë|publisher=Panorama Sport|language=sq|date=7 March 2025|access-date=26 January 2026}}</ref>

===Ankara Keçiörengücü=== On 16 July 2025, Roshi signed for Ankara Keçiörengücü, marking his fourth stint in Turkish football.<ref>{{cite web|url=https://gazetablic.com/zyrtare-odise-roshi-behet-me-skuader-te-re/|title=Zyrtare: Odise Roshi bëhet me skuadër të re|trans-title=Official: Odise Roshi joins a new club|publisher=Gazeta Blic|language=sq|date=16 July 2025|access-date=26 January 2026}}</ref><ref name="TFF" />

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.<ref>{{cite web|url=https://www.balkanweb.com/odise-roshi-protagonist-ne-turqi-gol-dhe-asist-per-8-minuta/|title=Odise Roshi protagonist në Turqi, gol dhe asist për 8 minuta|trans-title=Odise Roshi protagonist in Turkey, goal and assist in eight minutes|publisher=BalkanWeb|language=sq|date=9 November 2025|access-date=25 January 2026}}</ref> 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.<ref>{{cite web|url=https://tvklan.al/roshi-tregon-klasin-shenon-me-roveshate-ne-turqi|title=Roshi tregon klas, shënon me roveshatë në Turqi|trans-title=Roshi shows his class, scores with a bicycle kick in Turkey|publisher=TV Klan|language=sq|date=29 November 2025|access-date=25 January 2026}}</ref> 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.<ref>{{cite web|url=https://abcnews.al/ndizet-serish-raketa-roshi-ish-futbollisti-i-kombetares-kthehet-ne-ditet-e-arta-ne-turqi/|title=Ndizet sërish "raketa" Roshi/ Ish-futbollisti i Kombëtares kthehet në ditët e arta në Turqi|trans-title=Roshi reignites, former national team player returns to his golden days in Turkey|publisher=ABC News Albania|language=sq|date=3 December 2025|access-date=25 January 2026}}</ref> 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.<ref>{{cite web|url=https://5pyetjet.al/2026/01/24/roshi-e-con-keciorengucun-drejt-play-off-it-me-nje-gol-vendimtar/|title=Roshi e çon Keciorengucun drejt 'play off'-it me një gol vendimtar|publisher=5pyetjet.al|language=sq|date=24 January 2026|access-date=24 January 2026}}</ref>

==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.<ref>{{cite web|url=http://en.archive.uefa.com/competitions/under17/history/season=2008/round=15028/group=700183.html|archive-url=https://archive.today/20150614035648/http://en.archive.uefa.com/competitions/under17/history/season=2008/round=15028/group=700183.html|url-status=dead|archive-date=14 June 2015|title=UEFA European U-17 C'ship - 2008|publisher=Archive UEFA.com|access-date=22 December 2017}}</ref>

[[File:Odise Roshi - Albania U-21 (1).jpg|thumb|Roshi during his time with under-21 side.]] 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.<ref>{{cite web|url=https://int.soccerway.com/matches/2009/09/05/europe/uefa-u21-championship/albania-under-21/azerbaijan-under-21/778663/|title=Albania U21 vs. Azerbaijan U21 - 5 September 2009 - Soccerway|access-date=15 June 2016}}</ref> 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.<ref>{{cite web|url=https://int.soccerway.com/matches/2009/09/09/europe/uefa-u21-championship/austria-under-21/albania-under-21/868240/|title=Austria U21 vs. Albania U21 - 9 September 2009 - Soccerway|access-date=15 June 2016}}</ref> 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.<ref>{{cite web|url=https://int.soccerway.com/international/europe/uefa-u21-championship/2011-denmark/qualifying-round/group-10/g2694/|title=Summary - UEFA U21 Championship - Results - Soccerway|access-date=15 June 2016}}</ref>

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<ref>{{cite web|url=https://int.soccerway.com/matches/2011/09/02/europe/uefa-u21-championship/albania-under-21/poland-under-21/1096283/|title=Albania U21 vs. Poland U21 - 2 September 2011 - Soccerway|access-date=15 June 2016}}</ref> and in a 4–3 victory against Moldova U21s on 6 September, both for the full 90 minutes.<ref>{{cite web|url=https://int.soccerway.com/matches/2011/09/06/europe/uefa-u21-championship/albania-under-21/moldova-under-21/1077834/|title=Albania U21 vs. Moldova U21 - 6 September 2011 - Soccerway|access-date=15 June 2016}}</ref>

===Senior team=== He received his first senior call-up from head coach Josip Kuže on 30 September 2011,<ref>{{cite news|url=http://albaniasoccer.com/lajme/shqiperi/kombetarja/5386-euro-2012-kuzhe-publikon-listen-spikasin-kater-emra-te-rinj.html|title=EURO 2012/ Kuzhe publikon listen, spikasin kater emra te rinj|trans-title=EURO 2012/ Kuže announces the list, four new names stand out|publisher=AlbaniaSoccer|language=sq|date=30 September 2011|access-date=4 November 2017}}</ref> 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.<ref>{{cite news|url=https://int.soccerway.com/matches/2011/10/07/europe/european-championship-qualification/france/albania/914240/|title=France vs. Albania 3–0|publisher=Soccerway|date=7 October 2011|access-date=4 November 2017}}</ref>

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.<ref>{{cite web|url=https://int.soccerway.com/matches/2012/09/11/europe/wc-qualifying-europe/switzerland/albania/1228263/|title=Switzerland vs. Albania 2–0|publisher=Soccerway|date=11 September 2012|access-date=15 June 2016}}</ref> Roshi scored his first international goal on 16 October 2012 against Slovenia, heading in the only goal of a 1–0 victory.<ref>{{cite web|url=http://www.skysports.com/football/albania-vs-slovenia/253508|title=Roshi on target for Albania|publisher=Sky Sports|date=16 October 2012|access-date=15 June 2016}}</ref> 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.<ref>{{cite web|url=https://www.espn.co.uk/football/match/_/gameId/334779/switzerland-albania|title=Albania 1–2 Switzerland – Match Report|publisher=ESPN UK|access-date=25 January 2026|date=11 October 2013}}</ref> 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.<ref>{{cite web|url=http://www.uefa.com/worldcup/season=2014/standings/round=2000294/group=2001660/index.html|archive-url=https://web.archive.org/web/20111015133532/http://www.uefa.com/worldcup/season=2014/standings/round=2000294/group=2001660/index.html|url-status=dead|archive-date=15 October 2011|title=Qualifying round Group E|publisher=UEFA|access-date=25 November 2017}}</ref>

In the opening match of the UEFA 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.<ref>{{cite web |last1=Marques |first1=Pedro |title=Balaj pounces as Albania stun Portugal |url=https://www.uefa.com/uefaeuro-2020/news/0253-0d7f68d4bb54-0976bbe81459-1000/ |archive-url=https://web.archive.org/web/20201015061447/https://www.uefa.com/uefaeuro-2020/news/0253-0d7f68d4bb54-0976bbe81459-1000/ |url-status=dead |archive-date=15 October 2020 |website=UEFA |access-date=7 October 2020 |date=7 September 2014}}</ref> This marked Albania’s first ever win against the "Seleção das Quinas".<ref>{{cite news|url=http://www.11v11.com/teams/albania/tab/opposingTeams/opposition/Portugal/|title=Albania national football team: record v Portugal|publisher=11v11.com|access-date=8 October 2016}}</ref> Throughout the qualifying campaign, Roshi continued mainly as a substitute, making a total of five appearances.<ref>{{cite web|url=https://www.worldfootball.net/person/pe158085/odise-roshi/co1172/uefa-euro-qualifiers/se15204/2014-2015/international-matches/|title=Odise Roshi » Statistics: International Matches|publisher=WorldFootball.net|access-date=26 January 2026}}</ref> 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.<ref>{{cite news |title=Albania win in Armenia to confirm qualification for first major tournament |url=https://www.theguardian.com/football/2015/oct/11/armenia-albania-euro-2016-qualifier-match-report |access-date=17 September 2020 |work=The Guardian |date=11 October 2015}}</ref> This was Albania’s first appearance at a major men’s football tournament.<ref>{{cite web |last1=Smith |first1=Sam |title=Albania 0-1 Switzerland: Early Schar goal edges out ten-man Albania |url=https://www.vavel.com/en/international-football/2016/06/10/657587.html |website=vavel.com |access-date=17 September 2020 |date=10 June 2016}}</ref>

On 21 May 2016, Roshi was named in Albania's preliminary 27-man squad for UEFA Euro 2016,<ref>{{cite news|url=https://www.uefa.com/uefaeuro/history/news/0253-0d813edc940a-8dc9dd59ba20-1000--de-biasi-leaves-out-albanian-top-scorer-salihi/|title=De Biasi leaves out Albanian top scorer Salihi|publisher=UEFA|author=Fatjon Pandovski|date=21 May 2016|access-date=30 May 2016}}</ref> and in Albania's final 23-man UEFA Euro 2016 squad on 31 May.<ref>{{cite news|url=http://euro.fshf.org/de-biasi-shpall-listen-zyrtare-te-euro-2016/|title=De Biasi shpall listën zyrtare të Euro 2016|trans-title=De Biasi names the official list of Euro 2016|publisher=FSHF.org|date=31 May 2016|access-date=31 May 2016}}</ref> 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.<ref>{{cite web|url=https://www.oranews.tv/shqiperi-ukraine-publikohet-formacioni-zyrtar-i-kuqezinjve|title=Shqipëri – Ukraine: formacioni zyrtar i kuqezinjve|trans-title=Albania – Ukraine: official lineup of the Red and Blacks|publisher=Ora News|language=sq|date=3 June 2016|access-date=26 January 2026}}</ref> 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.<ref>{{cite web|url=https://www.oranews.tv/shqiperi-ukraine-publikohet-formacioni-zyrtar-i-kuqezinjve|title=Shqipëri-Ukrainë 1-3, kuqezinjtë dorëzohen në miqësoren e fundit para Europianit|trans-title=Albania-Ukraine 1-3, the Red and Blacks surrender in the last friendly before the European Championship|publisher=Ora News|language=sq|date=3 June 2016|access-date=26 January 2026}}</ref>

He played as a starter in the opening Group A match against Switzerland, which was lost 1–0.<ref>{{cite news|last1=Tweedale|last2=Liew|first1=Alistair|first2=Jonathan|date=11 June 2016|title=Switzerland down 10-man Albania as Xhaka derby is settled by Fabian Schar header|url=https://www.telegraph.co.uk/football/2016/06/10/albania-vs-switzerland-euro-2016-live/|website=The Telegraph|access-date=11 June 2016}}</ref> 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.<ref>{{cite news|url=http://www.fourfourtwo.com/news/albania-out-euro-2016-after-portugal-draw-hungary|title=Albania out of Euro 2016 after Portugal draw with Hungary|publisher=FourFourTwo|date=22 June 2016|access-date=9 October 2016|archive-date=9 October 2016|archive-url=https://web.archive.org/web/20161009193113/http://www.fourfourtwo.com/news/albania-out-euro-2016-after-portugal-draw-hungary|url-status=dead}}</ref>

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.<ref>{{cite web|url=https://www.worldfootball.net/person/pe158085/odise-roshi/co588/fifa-wc-qualifiers-europe/se19001/2016-2017/international-matches/|title=Odise Roshi » International Matches|publisher=WorldFootball.net|access-date=26 January 2026}}</ref> Roshi scored his second international goal in a 2–1 friendly loss to Luxembourg on 4 June 2017.<ref>{{cite news|url=http://shenja.tv/shqiperia-humbet-miqesoren-me-luksemburgun/|title=SHQIPËRIA HUMBET MIQËSOREN ME LUKSEMBURGUN|trans-title=Albania loses the friendly with Luxembourg|publisher=Shenja.tv|language=sq|date=4 June 2017|access-date=25 November 2017|archive-url=https://web.archive.org/web/20171201043706/http://shenja.tv/shqiperia-humbet-miqesoren-me-luksemburgun/|archive-date=1 December 2017|url-status=dead}}</ref> On 11 June 2017, during a World Cup qualification fixture against Israel, Roshi assisted the opening goal in a 3–0 away victory.<ref>{{cite web|url=https://www.national-football-teams.com/old/matches/report/17675/Israel_Albania.html|title=Israel vs. Albania (0:3)|date=11 June 2017 |publisher=National-Football-Teams.com|access-date=26 January 2026}}</ref> 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.<ref>{{cite web|url=https://www.worldfootball.net/match-report/co588/wc-qualifiers-europe/ma2452610/north-macedonia_albania/lineup/|title=North Macedonia vs. Albania – Lineups|publisher=WorldFootball.net|access-date=27 January 2026}}</ref><ref>{{cite web|url=https://www.worldfootball.net/match-report/co588/wc-qualifiers-europe/ma2452592/albania_liechtenstein/lineup/|title=Albania vs. Liechtenstein – Lineups|publisher=WorldFootball.net|access-date=27 January 2026}}</ref>

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.<ref>{{cite news|url=https://www.tiranatimes.com/ten-man-albania-surprise-turkey-with-3-2-away-victory/|title=Ten-man Albania surprise Turkey with 3-2 away victory|publisher=Tirana Times|date=13 November 2017|access-date=27 January 2026}}</ref> He captained Albania for the first time in his 48th appearance later on 26 March 2018,<ref>{{cite news|url=http://sportekspres.com/roshi-gradohet-kapiten-uroj-ta-mbaj-shpesh-shiritin/|title=Roshi gradohet kapiten: Uroj ta mbaj shpesh shiritin|trans-title=Roshi promoted captain: I wish to keep the armband more often|publisher=Sport Ekspres|language=sq|date=25 March 2018|access-date=25 March 2018}}</ref> playing the first half of a 1–0 home loss to Norway.<ref>{{cite news|url=https://telegrafi.com/shqiperia-mposhtet-ne-miqesore-nga-norvegjia/|title=Shqipëria mposhtet në miqësore nga Norvegjia|trans-title=Albania defeated in friendly by Norway|publisher=Telegrafi.com|language=sq|date=26 March 2018|access-date=26 March 2018}}</ref>

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.<ref>{{cite news|url=https://sportekspres.com/mua-me-penalizon-odise-roshi-flet-per-menyren-si-luan-shqiperia-mos-e-ndryshofte-kurre-skemen-reja-une-prape/|title="Mua më penalizon", Odise Roshi flet për mënyrën si luan Shqipëria|publisher=Sport Ekspres|language=sq|date=13 September 2021|access-date=27 January 2026}}</ref><ref>{{cite web |title=2021 Odise Roshi Match Logs |url=https://fbref.com/en/players/cd56b151/matchlogs/2021/Odise-Roshi-Match-Logs |publisher=FBref.com |access-date=27 January 2026}}</ref> 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.<ref>{{cite news|url=https://sportekspres.com/rikthim-fantastik-roshi-i-sinqerte-per-skemen-e-rejes/|title=Rikthim fantastik, Roshi i sinqertë për skemën e Rejës|publisher=Sport Ekspres|language=sq|date=11 June 2019|access-date=27 January 2026}}</ref><ref>{{cite web|url=https://www.uefa.com/european-qualifiers/match/2026158--albania-vs-moldova/events/|title=Albania vs Moldova – Match Events|publisher=UEFA|access-date=27 January 2026}}</ref> 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.<ref>{{cite web|url=https://www.uefa.com/uefaeuro/match/2026213--albania-vs-iceland/events/|title=Albania vs Iceland – Match Events|publisher=UEFA|access-date=27 January 2026}}</ref> 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.<ref>{{cite web|url=https://www.worldfootball.net/person/pe158085/odise-roshi/co1172/uefa-euro-qualifiers/se30688/2019-2020/international-matches/|title=Odise Roshi » International Matches|publisher=WorldFootball.net|access-date=27 January 2026}}</ref>

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.<ref>{{cite web|url=https://www.worldfootball.net/person/pe158085/odise-roshi/co588/fifa-wc-qualifiers-europe/se37167/2021-2022/international-matches/|title=Odise Roshi » International Matches|publisher=WorldFootball.net|access-date=27 January 2026}}</ref>

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.<ref>{{cite news|url=https://www.oranews.tv/sport/5-gola-ne-71-ndeshje-odise-roshi-vendos-te-terhiqet-nga-kombetarja-i1199562|title=5 gola në 71 ndeshje, Odise Roshi vendos të tërhiqet nga Kombëtarja|publisher=Ora News|language=sq|date=14 November 2024|access-date=27 January 2026}}</ref><ref>{{cite news |title=Odise Roshi tërhiqet nga Kombëtarja Shqiptare |url=https://tvklan.al/odise-roshi-terhiqet-nga-kombetarja-shqiptare |access-date=27 January 2026 |publisher=TV Klan |date=14 November 2024}}</ref>

==Nickname== Roshi earned the nickname ''Raketa (Rocket)'' 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.<ref>{{cite news|url=http://www.gazeta-shqip.com/sport/c660058f244c30886f2593d9a6fe1882.html|archive-url=https://archive.today/20130124155103/http://www.gazeta-shqip.com/sport/c660058f244c30886f2593d9a6fe1882.html|url-status=dead|archive-date=24 January 2013|title=Odise Roshi, "raketë" te Këlni, sprint dhe grintë në stërvitje|trans-title=Odise Roshi, "rocket" at Köln, sprint and grinta in training|publisher=Gazeta Shqip|language=sq|date=28 January 2012|access-date=9 May 2013}}</ref>

==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.<ref>{{cite news|url=https://abcnews.al/foto-odise-roshi-behet-baba-per-here-te-pare-zbulon-emrin-e-djalit/|title=FOTO/ Odise Roshi bëhet baba për herë të parë, zbulon emrin e djalit|publisher=ABC News Albania|language=sq|date=25 October 2021|access-date=27 January 2026}}</ref> In June 2023, Roshi became a father for the second time, announcing the birth of his son Noan.<ref>{{cite news|url=https://www.topalbaniaradio.com/vjen-ne-jete-noan-odise-roshi-behet-baba-per-here-te-dyte/|title=Vjen në jetë Noan, Odise Roshi bëhet baba për herë të dytë!|publisher=Top Albania Radio|language=sq|date=8 June 2023|access-date=27 January 2026}}</ref>

==Career statistics==

===Club=== {{updated|7 May 2026|<ref name="Soccerway">{{Soccerway|new_id=roshi-odise/CbWFQSpI|accessdate=23 January 2026}}</ref><ref name="NFT">{{NFT|45122|accessdate=9 October 2017}}</ref>}} {| class="wikitable" style="text-align:center" |+ Appearances and goals by club, season and competition |- !rowspan="2"|Club !rowspan="2"|Season !colspan="3"|League !colspan="2"|Cup !colspan="2"|Europe{{efn|Including continental competitions, such as UEFA Champions League and UEFA Europa League}} !colspan="2"|Other{{efn|Including other competitions, such as Albanian Supercup}} !colspan="2"|Total |- !Division!!Apps!!Goals!!Apps!!Goals!!Apps!!Goals!!Apps!!Goals!!Apps!!Goals |- |rowspan="4"|Apolonia Fier |2006–07 |Kategoria Superiore |4||0||colspan="2"|—||colspan="2"|—||colspan="2"|—||4||0 |- |2007–08 |Kategoria e Parë | || ||colspan="2"|—||colspan="2"|—||colspan="2"|—|| || |- |2008–09 |Kategoria Superiore |17||0||4||0||colspan="2"|—||colspan="2"|—||21||0 |- !colspan="2"|Total !21!!0!!4!!0!!0!!0!!0!!0!!25!!0 |- |rowspan="3"|Flamurtari Vlorë |2009–10 |Kategoria Superiore |29||3||1||0||2||1||1<ref name="RSSSF 2009 Albanian Supercup" />||0||33||4 |- |2010–11 |Kategoria Superiore |22||5||2||0||colspan="2"|—||colspan="2"|—||24||5 |- !colspan="2"|Total !51!!8!!3!!0!!2!!1!!1!!0!!57!!9 |- |1. FC Köln |2011–12 |Bundesliga |20||1||colspan="2"|—||colspan="2"|—||colspan="2"|—||20||1 |- |rowspan="4"|FSV Frankfurt |2012–13 |2. Bundesliga |30||2||2||0||colspan="2"|—||colspan="2"|—||32||2 |- |2013–14 |2. Bundesliga ||23||1||2||0||colspan="2"|—||colspan="2"|—||25||1 |- |2014–15 |2. Bundesliga ||21||3||1||0||colspan="2"|—||colspan="2"|—||22||3 |- !colspan="2"|Total !74!!6!!5!!0!!0!!0!!0!!0!!79!!6 |- |rowspan="3"|Rijeka |2015–16 |Croatian First League |20||1||4||1||1||0||colspan="2"|—||25||2 |- |2016–17 |Croatian First League ||1||0||0||0||colspan="2"|—||colspan="2"|—||1||0 |- !colspan="2"|Total !21!!1!!4!!1!!1!!0!!0!!0!!26!!2 |- |rowspan="6"|Akhmat Grozny |2016–17 |Russian Premier League |19||1||1||0||colspan="2"|—||colspan="2"|—||20||1 |- |2017–18 |Russian Premier League |20||1||1||0||colspan="2"|—||colspan="2"|—||21||1 |- |2018–19 |Russian Premier League |13||0||0||0||colspan="2"|—||colspan="2"|—||13||0 |- |2019–20 |Russian Premier League |26||7||2||1||colspan="2"|—||colspan="2"|—||28||8 |- |2020–21 |Russian Premier League |6||2||0||0||colspan="2"|—||colspan="2"|—||6||2 |- !colspan="2"|Total !84!!11!!4!!1!!0!!0!!0!!0!!88!!12 |- |Diósgyőr |2020–21 |Nemzeti Bajnokság I |11||0||1||0||colspan="2"|—||colspan="2"|—||12||0 |- |Boluspor |2021–22 |TFF 1. Lig |28||1||0||0||colspan="2"|—||colspan="2"|—||28||1 |- |rowspan="3"|Sakaryaspor |2022–23 |TFF 1. Lig |23||1||0||0||colspan="2"|—||1||0||24||1 |- |2023–24 |TFF 1. Lig |30||5||0||0||colspan="2"|—||0||0||30||5 |- !colspan="2"|Total !53!!6!!0!!0!!0!!0!!1!!0!!54!!6 |- |Erzurumspor |2024–25 |TFF 1. Lig |35||7||0||0||colspan="2"|—||1||0||36||7 |- |Ankara Keçiörengücü |2025–26 |TFF 1. Lig |37||7||4||2||colspan="2"|—||colspan="2"|—||41||9 |- !colspan="3"|Career total !435!!41!!25!!4!!3!!1!!3!!0!!466!!53 |} {{notelist}}

===International=== {{updated|16 November 2022}}<ref name="NFT" /><ref name="EU-Football.info" />

{| class="wikitable" style="text-align:center" |+ Appearances and goals by national team and year |- !National team!!Year!!Apps!!Goals |- |rowspan="12"|Albania |2011||4||0 |- |2012||6||1 |- |2013||8||0 |- |2014||3||0 |- |2015||7||0 |- |2016||11||0 |- |2017||8||3 |- |2018||3||0 |- |2019||7||1 |- |2020||2||0 |- |2021||8||0 |- |2022||4||0 |- !colspan="2"|Total!!71!!5 |}

:''Scores and results list Albania's goal tally first, score column indicates score after each Roshi goal.''<ref name="EU-Football.info" />

{| class="wikitable sortable" |+ List of international goals scored by Odise Roshi |- !scope="col"|No. !scope="col" data-sort-type="date"|Date !scope="col"|Venue !scope="col"|Opponent !scope="col"|Score !scope="col"|Result !scope="col"|Competition |- | style="text-align:center"|1 | 16 October 2012 || Qemal Stafa Stadium, Tirana, Albania || {{fb|SVN}} || style="text-align:center"|1–0 || style="text-align:center"|1–0 || 2014 FIFA World Cup qualification |- | style="text-align:center"|2 | 4 June 2017 || Stade Josy Barthel, Route d'Arlon, Luxembourg || {{fb|LUX}} || style="text-align:center"|1–0 || style="text-align:center"|1–2 || Friendly |- | style="text-align:center"|3 | 2 September 2017 || Elbasan Arena, Elbasan, Albania || {{fb|LIE}} || style="text-align:center"|1–0 || style="text-align:center"|2–0 || 2018 FIFA World Cup qualification |- | style="text-align:center"|4 | 5 September 2017 || Stadion Mladost, Strumica, Macedonia || {{fb|MKD|name=Macedonia}} || style="text-align:center"|1–0 || style="text-align:center"|1–1 || 2018 FIFA World Cup qualification |- | style="text-align:center"|5 | 10 September 2019 || Elbasan Arena, Elbasan, Albania || {{fb|ISL}} || style="text-align:center"|3–2 || style="text-align:center"|4–2 || UEFA Euro 2020 qualification |}

==Honours==

'''Individual''' *Albanian Superliga Talent of the Season: 2010–11

==References== {{reflist}}

==External links== {{commons category}} * {{Sports links}} * {{Hrnogomet|3079}}

{{Ankara Keçiörengücü S.K. squad}} {{Albania squad UEFA Euro 2016}}

{{DEFAULTSORT:Roshi, Odise}} Category:1991 births Category:Footballers from Fier Category:Living people Category:21st-century Albanian sportsmen Category:Men's association football midfielders Category:Men's association football forwards Category:Albanian men's footballers Category:Albania men's youth international footballers Category:Albania men's under-21 international footballers Category:Albania men's international footballers Category:FK Apolonia Fier players Category:Flamurtari FC players Category:1. FC Köln players Category:FSV Frankfurt players Category:HNK Rijeka players Category:FC Akhmat Grozny players Category:Diósgyőri VTK players Category:Boluspor footballers Category:Sakaryaspor footballers Category:Erzurumspor F.K. footballers Category:Ankara Keçiörengücü S.K. footballers Category:Kategoria Superiore players Category:Bundesliga players Category:2. Bundesliga players Category:Croatian Football League players Category:Russian Premier League players Category:Nemzeti Bajnokság I players Category:TFF 1. Lig players Category:UEFA Euro 2016 players Category:Albanian expatriate men's footballers Category:Expatriate men's footballers in Germany Category:Albanian expatriate sportspeople in Germany Category:Expatriate men's footballers in Croatia Category:Albanian expatriate sportspeople in Croatia Category:Expatriate men's footballers in Russia Category:Albanian expatriate sportspeople in Russia Category:Expatriate men's footballers in Hungary Category:Albanian expatriate sportspeople in Hungary Category:Expatriate men's footballers in Turkey Category:Albanian expatriate sportspeople in Turkey