Piliakalnis datuojamas I tūkst. – XV a. Tai vienas gražiausių ir didžiausių Lietuvos piliakalnių, įrengtas aukštumos kyšulyje, kurį šiaurės rytuose juosia Piliaus upelis, iš pietvakarių pusės – Pilupis. Aikštelė trapecinė, pailga, 70 m ilgio, 40 m pločio pietryčiuose, 19 m pločio šiaurės vakaruose. Iš visų pusių aikštelė buvo apjuosta pylimu. Pietrytinėje papėdėje yra 10 m pločio kelio liekanos. Piliakalnio šlaitai statūs, 16 m aukščio, sunkiai įveikiami net dabar, praslinkus keletui šimtmečių. Į pietryčius nuo piliakalnio yra papilys. Jo aikštelė trapecinė, 160 m ilgio, 55 m pločio šiaurės vakariniame gale, 130 m – pietrytiniame gale. Joje aptikta grublėtos ir žiestos keramikos.
Piliakalnyje stovėjo Užpalių pilis. Pilies papilį 1373 m. kovo mėn. naktį užpuolė ir sudegino Livonijos ordinas, išžudydamas visus jame buvusius žmones ir išsivesdamas 70 arklių. 1433 m. vasario pradžioje pilį sudegino Livonijos ordinas, tačiau ji greitai buvo atstatyta, nes 1453 m. čia planuota rengti susitikimą dėl sienų su Livonija sureguliavimo. Iš kartos į kartą pasakojama, jog ant piliakalnio kadaise stovėję labai gražūs rūmai, kuriuose gyvenęs galingas valdovas, kur buvę pilna ir karių, ir tarnų. Kartą valdovo žvalgai pranešę, jog artėja labai didelė priešo kariuomenė. Išsigandęs valdovas liepęs savo baudžiauninkams užpilti rūmus žemėmis, tikėdamasis, jog priešai praeis pro šalį. Bet rūmuose trūkę oro, ir visi čia buvę užtroškę. Taip ir likęs kalnas, slepiąs tolimą praeitį.
1958 m. ir 1970 m. piliakalnį žvalgė Istorijos institutas. Radinius saugo Lietuvos nacionalinis muziejus. Piliakalnis datuojamas I tūkstantmečiu – XV a. Užpalių seniūnija 1997 m. nuo šiaurinio piliakalnio šlaito alksnyno apie 60 arų plote pašalino medžius ir Šeimyniškių piliakalnis atsiveria visu grožiu. 1996-1998 m. iki piliakalnio apsauginės ribos nutiesta kelias, įrengta mašinų stovėjimo aikštelė. Piliakalnio šiaurės vakarų šlaite įrengti paprasti ir pakankamai patogūs laiptai, kurie beveik nežymūs piliakalnio fone, išsiskiria tik turėklai.