Indian Beach is a town in Carteret County, North Carolina, United States. The population was 223 as of the 2020 census.

Geography

Indian Beach is located in southern Carteret County on Bogue Banks, a barrier island along the Atlantic Ocean. It is bordered to the west by the town of Emerald Isle and to the east by Pine Knoll Shores. To the north is Bogue Sound, separating the town from the mainland, and to the south is the Atlantic. The town consists of two sections, separated by the unincorporated neighborhood of Salter Path. The only main road through the community is NC Highway 58.

According to the United States Census Bureau, the town of Indian Beach has a total area of , of which is land and , or 62.05%, is water,

At the 2000 census there were 95 people, 50 households, and 31 families in the town. The population density was . There were 1,218 housing units at an average density of . The racial makeup of the town was 95.79% White, 3.16% Pacific Islander, and 1.05% from two or more races. Hispanic or Latino of any race were 2.11%.