MoroccoAPIDocumentation
Référence API

Choisissez une ressource. Ajustez les paramètres. Essayez.

Sans clé APIRéponses JSONCORS ouvert

Population d’une province

GET/api/v2/population/subdivisions/{code}

À 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.

Paramètres

01
stringObligatoire · Chemin

Identifiant de la ressource, repris depuis la liste.

2-180 caractères
Format^[a-z0-9]+(?:-+[a-z0-9]+)*$
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 14

[] 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.codestring

Identifiant MoroccoAPI de la ressource ; réutilisez-le dans les URL correspondantes.

data.hcp_codestring

Code du Haut-Commissariat au Plan (office statistique marocain). Conservez-le comme texte pour garder les zéros initiaux.

data.typestring

Nature de la ressource. Les valeurs possibles figurent ci-dessous.

Valeurs acceptées: "province_or_prefecture"

data.administrative_typestring

province ou prefecture : deux catégories du même niveau administratif, sous une région.

Valeurs acceptées: "province" "prefecture"

data.nameobject

Nom de la ressource, éventuellement réparti par langue.

data.name.arstring

Valeur en arabe ; null si aucune traduction n’est fournie.

data.name.frstring

Valeur en français ; null si aucune traduction n’est fournie.

data.name.enstring | null

Valeur en anglais ; null si aucune traduction n’est fournie.

data.region_codestring

Identifiant de la région parente, premier niveau administratif du Maroc.

data.populationinteger

Nombre total de résidents recensés dans cette unité administrative.

data.moroccansinteger

Nombre de résidents de nationalité marocaine dans le périmètre indiqué.

data.foreignersinteger

Nombre de résidents de nationalité étrangère dans le périmètre indiqué.

data.householdsinteger

Nombre 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",
        "administrative_type",
        "name",
        "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}$"
        },
        "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"
        },
        "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": [
            "subdivision-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
metaobject

Contexte du résultat : sources, dates, licence et pagination si applicable.

meta.datasetstring

Nom du jeu de données auquel appartient le résultat ou la source.

Valeurs acceptées: "subdivision-population"

meta.totalinteger

Nombre de résultats correspondant aux filtres, avant pagination ; pas la taille de cette page.

meta.licensestring

Licence de réutilisation. mixed signifie des licences différentes : consultez chaque source.

Valeurs acceptées: "CC-BY-4.0"

meta.retrieved_atstring

Date de récupération du fichier source par le projet ; pas la date des observations.

Valeurs acceptées: "2026-10-05"

meta.transformation_versionstring

Version 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[].datasetstring

Nom du jeu de données auquel appartient le résultat ou la source.

meta.sources[].producerstring

Organisme qui publie la donnée originale.

meta.sources[].source_urlstring

Page de présentation ou de publication de la source.

meta.sources[].resource_urlstring

Lien vers le fichier ou la ressource utilisée.

meta.sources[].licensestring

Licence de réutilisation. mixed signifie des licences différentes : consultez chaque source.

Valeurs acceptées: "CC-BY-4.0"

meta.sources[].source_updated_atstring

Derniè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.

errorobject

Détails d’une requête échouée ; remplace data et meta.

error.codestring

Code stable de l’erreur, par exemple RESOURCE_NOT_FOUND ; à utiliser dans votre logique.

error.messagestring

Explication lisible de l’erreur ; utilisez code pour la logique de votre application.

error.request_idstring

Identifiant du traitement de cette requête, utile pour retrouver un problème.

Votre requête

GET · JSON

URL de base

Réponse

La réponse réelle s’affichera ici.

La langue change le guide, pas les clés JSON ni les valeurs des sources.