Population d’une commune
À savoir. RGPH 2024 et séries historiques HCP. Consultez meta pour la source et la date de chaque série.
Comprendre le contexte
RGPH est le recensement de la population réalisé par le HCP, l’office statistique marocain. Un résident n’est pas nécessairement de nationalité marocaine. Exemple de lecture : 100 résidents, dont 95 Marocains et 5 étrangers, donnent un total de 100 ; ne les additionnez pas une seconde fois. Cet exemple est illustratif.
Comprendre la réponse
data: Les résultats demandés, sous forme d’objet ou de liste.
meta: Sources, licence et dates du jeu de données. null signifie une valeur inconnue ou indisponible.
API v2 est le chemin de référence. Les anciens chemins /api/v1 restent des alias de compatibilité du comportement actuellement publié, pagination comprise ; aucune date de suppression n’est fixée.
Champs renvoyés 15
[] désigne chaque élément d’une liste. null signifie inconnu ou indisponible, jamais zéro. La langue du guide ne traduit pas les valeurs des sources.
dataobjectRésultat demandé : objet unique ou liste.
data.codestringIdentifiant MoroccoAPI de la ressource ; réutilisez-le dans les URL correspondantes.
data.hcp_codestringCode du Haut-Commissariat au Plan (office statistique marocain). Conservez-le comme texte pour garder les zéros initiaux.
data.typestringNature de la ressource. Les valeurs possibles figurent ci-dessous.
Valeurs acceptées:
"commune"data.nameobjectNom de la ressource, éventuellement réparti par langue.
data.name.arstringValeur en arabe ; null si aucune traduction n’est fournie.
data.name.frstringValeur en français ; null si aucune traduction n’est fournie.
data.name.enstring | nullValeur en anglais ; null si aucune traduction n’est fournie.
data.cercle_hcp_codestring | nullCode HCP du cercle parent dans le recensement 2024. Un cercle regroupe des communes ; ce champ n’est pas un annuaire actuel des cercles.
data.province_codestringIdentifiant de la province ou préfecture parente, sous la région.
data.region_codestringIdentifiant de la région parente, premier niveau administratif du Maroc.
data.populationintegerNombre total de résidents recensés dans cette unité administrative.
data.moroccansintegerNombre de résidents de nationalité marocaine dans le périmètre indiqué.
data.foreignersintegerNombre de résidents de nationalité étrangère dans le périmètre indiqué.
data.householdsintegerNombre de ménages recensés ; un ménage peut comprendre une ou plusieurs personnes.
Structure des données
{
"type": "object",
"additionalProperties": false,
"required": [
"data",
"meta"
],
"properties": {
"data": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"hcp_code",
"type",
"name",
"cercle_hcp_code",
"province_code",
"region_code",
"population",
"moroccans",
"foreigners",
"households"
],
"properties": {
"code": {
"type": "string",
"pattern": "^[a-z0-9]+(?:-+[a-z0-9]+)*$"
},
"hcp_code": {
"type": "string",
"pattern": "^[0-9]{2}\\.[0-9]{3}\\.[0-9]{2}\\.[0-9]{1,2}$"
},
"type": {
"enum": [
"commune"
]
},
"name": {
"type": "object",
"additionalProperties": false,
"required": [
"ar",
"fr",
"en"
],
"properties": {
"ar": {
"type": "string"
},
"fr": {
"type": "string"
},
"en": {
"anyOf": [
{
"type": "string"
},
{
"type": "string",
"nullable": true,
"enum": [
null
]
}
]
}
}
},
"cercle_hcp_code": {
"anyOf": [
{
"type": "string",
"pattern": "^[0-9]{2}\\.[0-9]{3}\\.[0-9]{2}$"
},
{
"type": "string",
"nullable": true,
"enum": [
null
]
}
]
},
"province_code": {
"type": "string"
},
"region_code": {
"type": "string"
},
"population": {
"type": "integer",
"minimum": 0
},
"moroccans": {
"type": "integer",
"minimum": 0
},
"foreigners": {
"type": "integer",
"minimum": 0
},
"households": {
"type": "integer",
"minimum": 0
}
}
},
"meta": {
"type": "object",
"additionalProperties": false,
"required": [
"dataset",
"total",
"license",
"retrieved_at",
"transformation_version",
"sources"
],
"properties": {
"dataset": {
"enum": [
"commune-population"
]
},
"total": {
"type": "integer",
"minimum": 0
},
"license": {
"enum": [
"CC-BY-4.0"
]
},
"retrieved_at": {
"enum": [
"2026-10-05"
]
},
"transformation_version": {
"enum": [
"2.0.0"
]
},
"sources": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"dataset",
"producer",
"source_url",
"resource_url",
"license",
"source_updated_at"
],
"properties": {
"dataset": {
"type": "string"
},
"producer": {
"type": "string"
},
"source_url": {
"type": "string",
"format": "uri"
},
"resource_url": {
"type": "string",
"format": "uri"
},
"license": {
"enum": [
"CC-BY-4.0"
]
},
"source_updated_at": {
"type": "string",
"format": "date"
}
}
}
}
}
}
}
}Sources et pagination 13
metaobjectContexte du résultat : sources, dates, licence et pagination si applicable.
meta.datasetstringNom du jeu de données auquel appartient le résultat ou la source.
Valeurs acceptées:
"commune-population"meta.totalintegerNombre de résultats correspondant aux filtres, avant pagination ; pas la taille de cette page.
meta.licensestringLicence de réutilisation. mixed signifie des licences différentes : consultez chaque source.
Valeurs acceptées:
"CC-BY-4.0"meta.retrieved_atstringDate de récupération du fichier source par le projet ; pas la date des observations.
Valeurs acceptées:
"2026-10-05"meta.transformation_versionstringVersion des règles de conversion du jeu de données ; distincte de l’API.
Valeurs acceptées:
"2.0.0"meta.sourcesobject[]Sources utilisées pour ce résultat, avec leurs producteurs et licences.
meta.sources[].datasetstringNom du jeu de données auquel appartient le résultat ou la source.
meta.sources[].producerstringOrganisme qui publie la donnée originale.
meta.sources[].source_urlstringPage de présentation ou de publication de la source.
meta.sources[].resource_urlstringLien vers le fichier ou la ressource utilisée.
meta.sources[].licensestringLicence de réutilisation. mixed signifie des licences différentes : consultez chaque source.
Valeurs acceptées:
"CC-BY-4.0"meta.sources[].source_updated_atstringDernière mise à jour annoncée par la source ; pas la date de récupération.
Erreurs
400: Paramètre invalide ou manquant.404: Ressource introuvable.
Les erreurs renvoient error.code, error.message et error.request_id.
errorobjectDétails d’une requête échouée ; remplace data et meta.
error.codestringCode stable de l’erreur, par exemple RESOURCE_NOT_FOUND ; à utiliser dans votre logique.
error.messagestringExplication lisible de l’erreur ; utilisez code pour la logique de votre application.
error.request_idstringIdentifiant du traitement de cette requête, utile pour retrouver un problème.