Provinces d’une région
À savoir. Référentiel HCP : régions, provinces et communes. Les codes sont des identifiants MoroccoAPI.
Comprendre le contexte
Une région regroupe des provinces et préfectures, qui contiennent des communes urbaines ou rurales. Certaines communes sont divisées en arrondissements. Exemple : Casablanca est une commune de la région Casablanca-Settat ; un arrondissement n’est pas une région. Le HCP est l’office statistique national ; RGPH désigne son recensement de la population.
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.
meta.pagination: Listes : 100 résultats par défaut, 500 maximum. Utilisez limit et offset ; meta.pagination.next_offset vaut null à la dernière page.
Exemple illustratif: Avec limit=10 et offset=0, la première page contient au plus 10 résultats. Si next_offset vaut 10, demandez la suivante avec offset=10 et les mêmes filtres. Arrêtez quand next_offset vaut null.
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 10
[] 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.
dataobject[]Ré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:
"province_or_prefecture"data[].administrative_typestringprovince ou prefecture : deux catégories du même niveau administratif, sous une région.
Valeurs acceptées:
"province""prefecture"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[].region_codestringIdentifiant de la région parente, premier niveau administratif du Maroc.
Structure des données
{
"type": "object",
"additionalProperties": false,
"required": [
"data",
"meta"
],
"properties": {
"data": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"code",
"hcp_code",
"type",
"administrative_type",
"name",
"region_code"
],
"properties": {
"code": {
"type": "string"
},
"hcp_code": {
"type": "string",
"pattern": "^[0-9]{2}\\.[0-9]{3}$"
},
"type": {
"enum": [
"province_or_prefecture"
]
},
"administrative_type": {
"enum": [
"province",
"prefecture"
]
},
"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
]
}
]
}
}
},
"region_code": {
"type": "string"
}
}
}
},
"meta": {
"type": "object",
"additionalProperties": false,
"required": [
"dataset",
"total",
"license",
"retrieved_at",
"transformation_version",
"sources",
"pagination"
],
"properties": {
"dataset": {
"enum": [
"administrative-provinces"
]
},
"total": {
"type": "integer",
"minimum": 0
},
"license": {
"enum": [
"CC-BY-4.0"
]
},
"retrieved_at": {
"enum": [
"2026-09-26"
]
},
"transformation_version": {
"enum": [
"3.1.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": {
"enum": [
"Haut-Commissariat au Plan (HCP)"
]
},
"source_url": {
"type": "string",
"format": "uri"
},
"resource_url": {
"type": "string",
"format": "uri"
},
"license": {
"enum": [
"CC-BY-4.0"
]
},
"source_updated_at": {
"enum": [
"2024-11-22"
]
}
}
}
},
"pagination": {
"type": "object",
"additionalProperties": false,
"required": [
"limit",
"offset",
"count",
"has_more",
"next_offset"
],
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 500
},
"offset": {
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
"count": {
"type": "integer",
"minimum": 0,
"maximum": 500
},
"has_more": {
"type": "boolean"
},
"next_offset": {
"anyOf": [
{
"type": "integer",
"minimum": 0,
"maximum": 2147483647
},
{
"type": "string",
"nullable": true,
"enum": [
null
]
}
]
}
}
}
}
}
}
}Sources et pagination 19
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:
"administrative-provinces"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-09-26"meta.transformation_versionstringVersion des règles de conversion du jeu de données ; distincte de l’API.
Valeurs acceptées:
"3.1.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.
Valeurs acceptées:
"Haut-Commissariat au Plan (HCP)"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.
Valeurs acceptées:
"2024-11-22"meta.paginationobjectInformations pour parcourir une collection page par page.
meta.pagination.limitintegerNombre maximal demandé par page : 100 par défaut, 500 au maximum.
meta.pagination.offsetintegerNombre de résultats ignorés avant cette page, après filtrage. La première page commence à 0.
meta.pagination.countintegerNombre de résultats effectivement présents dans cette page.
meta.pagination.has_morebooleantrue s’il reste une autre page de résultats.
meta.pagination.next_offsetinteger | nullValeur de offset pour la page suivante ; null à la fin. Gardez les mêmes filtres.
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.