Železniční stanice Semily se nachází na severu Čech v Libereckém kraji a leží v km 101,9–km 102,6 na celostátní železniční trati 030 Jaroměř–Liberec. Směrově je stanice v přímé s největším sklonem 2,000 ‰. Traťové úseky přiléhající k železniční stanici jsou jednokolejné.