Morocco’s 1,503 communes, as open data.

Codes, names, census figures, boundaries and douars. Free to use.

  • < 10
  • 10–50
  • 50–150
  • 150–500
  • 500–2,000
  • 2,000+
  • no boundary

people per km², 2024

1,502 communes, from the boundaries this API serves.Every commune, by région© OpenStreetMap contributors, ODbL

12
régions
83
provinces and préfectures
213
cercles
1,503
communes
41
arrondissements

What the numbers show

The south is filling up

Population change by région between the 2014 and 2024 censuses.

  • Dakhla-Oued Ed-Dahab+53.9%
  • Laâyoune-Sakia El Hamra+22.6%
  • Tanger-Tétouan-Al Hoceima+13.3%
  • Souss-Massa+12.8%
  • Casablanca-Settat+12.1%
  • Rabat-Salé-Kénitra+12.0%
  • Marrakech-Safi+8.2%
  • Fès-Meknès+5.5%
  • Guelmim-Oued Noun+3.4%
  • Drâa-Tafilalet+1.3%
  • Béni Mellal-Khénifra+0.2%
  • Oriental−0.9%

Dakhla-Oued Ed-Dahab grew by more than half. The Oriental is the only région that shrank. Each bar is summed from the région’s communes.

Most communes are small

Communes by 2024 population.

  • <2k: 64
  • 2–5k: 243
  • 5–10k: 452
  • 10–25k: 515
  • 25–50k: 125
  • 50–100k: 56
  • 100k+: 48

Half the people, under 1% of the land

The 121 densest communes, against the other 1,382.

Share of the population, 2024
Share of the land

Most communes lost people

Communes that lost or gained people between the censuses. Overall, urban +12.8%, rural +3.0%.

Rural communes
792 lost people, 466 gained
Urban communes
63 lost people, 178 gained

lost peoplegained

What the two censuses found

5 rates HCP published in 2014 and again in 2024, for Morocco, each asked the same way both times.

  • Can’t read or write32.2%24.8%Can’t read or write: 32.2% in 2014, 24.8% in 2024.
  • Higher education6.1%10.2%Higher education: 6.1% in 2014, 10.2% in 2024.
  • Unemployment16.2%21.3%Unemployment: 16.2% in 2014, 21.3% in 2024.
  • Running water73.0%82.9%Running water: 73.0% in 2014, 82.9% in 2024.
  • Electricity91.6%97.1%Electricity: 91.6% in 2014, 97.1% in 2024.

20142024

Run a query

Requests go to the live API.

French, Arabic or a slug. Accents and Arabic letter variants fold, and old names work too: Fez finds Fès, Port Lyautey finds Kénitra.

RequestGET /api/search?q=Fez&limit=5

Pick an example or type a query, then run it.

Build on it