As of 2001[update] India census,[3] Shamgarh had a population of 21,455. Males constitute 52% of the population and females 48%. Shamgarh has an average literacy rate of 69%, higher than the national average of 59.5%: male literacy is 79%, and female literacy is 59%. In Shamgarh, 15% of the population is under 6 years of age.