Spirit Lake es una ciudad en el condado de Dickinson, Iowa, Estados Unidos. La población es de 5.500 personas. Es la sede del condado de Dickinson County. La ciudad está ubicada en la orilla occidental del lago East Okoboji en la región de los Grandes Lagos de Iowa.