Shelby is a city in Shelby counties in the U.S. state of Iowa. The population was 727 at the time of the 2020 census.