MoroccoAPIDocumentation
Référence API

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

Sans clé APIRéponses JSONCORS ouvert

Indicateurs d’un territoire

GET/api/v2/population/{level}/{code}/indicators

À 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

03
stringFacultatif · Filtre

Groupe d’indicateurs, par exemple education ou employment.

stringObligatoire · Chemin

Niveau territorial, par exemple regions ou communes.

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 27

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

Territoire décrit par les indicateurs, avec ses codes et son nom.

data.territory.levelstring

Niveau territorial : national, regions, subdivisions (provinces et préfectures), prefectures-of-arrondissements, communes ou arrondissements.

Valeurs acceptées: "national" "regions" "subdivisions" "prefectures-of-arrondissements" "communes" "arrondissements"

data.territory.codestring | null

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

data.territory.hcp_codestring | null

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

data.territory.nameobject

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

data.territory.name.arstring

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

data.territory.name.frstring

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

data.territory.name.enstring | null

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

data.territory.region_codestring | null

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

data.territory.province_codestring | null

Identifiant de la province ou préfecture parente, sous la région.

data.territory.data_from_local_administrationboolean

true pour les quatre communes marquées * par le HCP : données fournies par l’administration locale en raison de la mobilité saisonnière.

data.indicatorsobject[]

Indicateurs du recensement pour ce territoire, avec leurs valeurs par sexe.

data.indicators[].idstring

Identifiant de cet élément dans le jeu de données ; pas nécessairement un code officiel.

data.indicators[].groupstring

Identifiant du groupe d’indicateurs, utilisable dans le filtre group.

data.indicators[].unitstring

Unité de l’indicateur : percent (0 à 100), persons, households, years, children-per-woman, persons-per-room, persons-per-household ou km.

Valeurs acceptées: "percent" "persons" "households" "years" "children-per-woman" "persons-per-room" "persons-per-household" "km"

data.indicators[].nameobject

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

data.indicators[].name.frstring

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

data.indicators[].name.enstring

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

data.indicators[].name.arstring

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

data.indicators[].both_sexesnumber | null

Valeur pour l’ensemble de la population (deux sexes), dans l’unité de l’indicateur ; null si absente, voir null_reasons.

data.indicators[].malenumber | null

Valeur pour les hommes, dans l’unité de l’indicateur ; null si absente, voir null_reasons.

data.indicators[].femalenumber | null

Valeur pour les femmes, dans l’unité de l’indicateur ; null si absente, voir null_reasons.

data.indicators[].null_reasonsobject

Raison de chaque valeur null : unavailable (« . » du HCP), not_applicable (« … » du HCP) ou not_published (aucune valeur HCP pour ce sexe).

data.indicators[].null_reasons.both_sexesstring | null

Raison si la valeur de ce sexe est null : unavailable, not_applicable ou not_published ; null quand la valeur existe.

data.indicators[].null_reasons.malestring | null

Raison si la valeur de ce sexe est null : unavailable, not_applicable ou not_published ; null quand la valeur existe.

data.indicators[].null_reasons.femalestring | null

Raison si la valeur de ce sexe est null : unavailable, not_applicable ou not_published ; null quand la valeur existe.

Structure des données
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "territory",
        "indicators"
      ],
      "properties": {
        "territory": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "level",
            "code",
            "hcp_code",
            "name",
            "region_code",
            "province_code",
            "data_from_local_administration"
          ],
          "properties": {
            "level": {
              "enum": [
                "national",
                "regions",
                "subdivisions",
                "prefectures-of-arrondissements",
                "communes",
                "arrondissements"
              ]
            },
            "code": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    null
                  ]
                }
              ],
              "description": "MoroccoAPI geography code; null for the national total."
            },
            "hcp_code": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    null
                  ]
                }
              ],
              "description": "HCP geographic code in the dotted form used by the geography endpoints; null for the national total."
            },
            "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": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    null
                  ]
                }
              ]
            },
            "province_code": {
              "anyOf": [
                {
                  "type": "string"
                },
                {
                  "type": "string",
                  "nullable": true,
                  "enum": [
                    null
                  ]
                }
              ]
            },
            "data_from_local_administration": {
              "type": "boolean",
              "description": "True for the four communes that HCP marks with *: their data comes from the local administration because of seasonal mobility."
            }
          }
        },
        "indicators": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "id",
              "group",
              "unit",
              "name",
              "both_sexes",
              "male",
              "female",
              "null_reasons"
            ],
            "properties": {
              "id": {
                "type": "string",
                "minLength": 2,
                "maxLength": 64,
                "pattern": "^[a-z0-9]+(?:-[a-z0-9]+)*$"
              },
              "group": {
                "type": "string"
              },
              "unit": {
                "enum": [
                  "percent",
                  "persons",
                  "households",
                  "years",
                  "children-per-woman",
                  "persons-per-room",
                  "persons-per-household",
                  "km"
                ]
              },
              "name": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "fr",
                  "en",
                  "ar"
                ],
                "properties": {
                  "fr": {
                    "type": "string"
                  },
                  "en": {
                    "type": "string"
                  },
                  "ar": {
                    "type": "string"
                  }
                }
              },
              "both_sexes": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 0
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "male": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 0
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "female": {
                "anyOf": [
                  {
                    "type": "number",
                    "minimum": 0
                  },
                  {
                    "type": "string",
                    "nullable": true,
                    "enum": [
                      null
                    ]
                  }
                ]
              },
              "null_reasons": {
                "type": "object",
                "additionalProperties": false,
                "required": [
                  "both_sexes",
                  "male",
                  "female"
                ],
                "description": "Why each value is null: unavailable (HCP \".\"), not_applicable (HCP \"…\") or not_published (HCP gives no value for that sex). Null when the value is present.",
                "properties": {
                  "both_sexes": {
                    "anyOf": [
                      {
                        "enum": [
                          "unavailable",
                          "not_applicable",
                          "not_published"
                        ]
                      },
                      {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          null
                        ]
                      }
                    ]
                  },
                  "male": {
                    "anyOf": [
                      {
                        "enum": [
                          "unavailable",
                          "not_applicable",
                          "not_published"
                        ]
                      },
                      {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          null
                        ]
                      }
                    ]
                  },
                  "female": {
                    "anyOf": [
                      {
                        "enum": [
                          "unavailable",
                          "not_applicable",
                          "not_published"
                        ]
                      },
                      {
                        "type": "string",
                        "nullable": true,
                        "enum": [
                          null
                        ]
                      }
                    ]
                  }
                }
              }
            }
          }
        }
      }
    },
    "meta": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "dataset",
        "total",
        "license",
        "retrieved_at",
        "transformation_version",
        "sources"
      ],
      "properties": {
        "dataset": {
          "enum": [
            "population-indicators"
          ]
        },
        "total": {
          "type": "integer",
          "minimum": 0
        },
        "license": {
          "enum": [
            "CC-BY-4.0"
          ]
        },
        "retrieved_at": {
          "enum": [
            "2026-10-20"
          ]
        },
        "transformation_version": {
          "enum": [
            "1.0.1"
          ]
        },
        "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: "population-indicators"

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-20"

meta.transformation_versionstring

Version des règles de conversion du jeu de données ; distincte de l’API.

Valeurs acceptées: "1.0.1"

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.