Spirit Lake is a city in Dickinson County, Iowa, United States. It is located in the northwest part of the state, near the border with Minnesota. The city has a population of approximately 4,840 people as of the 2020 census. Spirit Lake is known for its scenic beauty, with numerous lakes and outdoor recreational opportunities in the area.