Armsjön er en innsjø på grensen mellom landskapene Medelpad og Hälsingland i Sverige, ca 20 km sør for Sundsvall, og i nærheten av Bottenhavet. Innsjøens overflate ligger, ved normal vannstand, 64 meter over havet, og har et overflateareal, målt sammen med Skarhålssjön, på 14 km². Innsjøens utløp munner ut i Bottenhavet.

På 1950-tallet utførte dr. Puke ved Uppsala universitet en kartlegging for sivilforsvaret over hvilke innsjøer som kunne være egnet som drikkevannsreservoar ved en eventuell atomkrig, og Armsjön var den innsjøen som ble oppgitt som renest av de oppmålte innsjøene. Innsjøens største dyp er på 24 meter, og ligger i den sørlige delen av den. Det er satt ut flere fiskearter i innsjøen, blant annet ørret, røye og sik, men innsjøens bestand av gjedde har gjort arbeidet vanskelig. I et tilfelle på 1980-tallet ble det satt ut 13 500 ørretyngel i innsjøen og innsjøens tilløpende elver.