MoroccoAPIDocumentation
Référence API

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

Sans clé APIRéponses JSONCORS ouvert

Lister les consulats marocains

GET/api/v2/consulates

À savoir. Annuaire du 31 octobre 2026 : 56 consulats dans 15 pays. Coordonnées non vérifiées en temps réel ; autorisation de redistribution non obtenue.

Paramètres

03
stringFacultatif · Filtre

Code du pays d’accueil à deux lettres, par exemple FR ; insensible à la casse.

Format^[A-Za-z]{2}$
integerFacultatif · Filtre

Résultats par page. 100 par défaut, 500 maximum.

Minimum: 1Maximum: 500Par défaut: 100
integerFacultatif · Filtre

Résultats à ignorer après filtrage. Commence à 0.

Minimum: 0Maximum: 2147483647Par défaut: 0
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 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.

dataobject[]

Résultat demandé : objet unique ou liste.

data[].idstring

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

data[].nameobject

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

data[].name.frstring

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

data[].countryobject

Pays d’accueil de la représentation consulaire.

data[].country.codestring

Code ISO du pays d’accueil à deux lettres.

data[].country.namestring

Nom français du pays d’accueil.

data[].citystring

Ville indiquée par la source ; pas nécessairement un code administratif.

data[].addressstring | null

Adresse postale telle que publiée.

data[].phonesobject[]

Téléphones institutionnels conservés depuis la source.

data[].phones[].rawstring

Valeur source après retrait des segments mobiles identifiés ; peut rester ambiguë.

data[].phones[].e164string | null

Numéro international du pays d’accueil ; null si ambigu ou invalide. Ne prouve pas qu’il fonctionne.

data[].websitestring | null

Lien du site fourni par la source ; null si absent ou écarté lors du contrôle.

data[].source_namesstring[]

Titres des fiches source associées, y compris les doublons fusionnés.

data[].quality_flagsstring[]

Anomalies connues : doublon, contact incomplet, téléphone ambigu ou lien écarté.

Structure des données
{
  "type": "object",
  "additionalProperties": false,
  "required": [
    "data",
    "meta"
  ],
  "properties": {
    "data": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "id",
          "name",
          "country",
          "city",
          "address",
          "phones",
          "website",
          "source_names",
          "quality_flags"
        ],
        "properties": {
          "id": {
            "type": "string",
            "maxLength": 100,
            "pattern": "^[a-z]{2}-[a-z0-9]+(?:-[a-z0-9]+)*$"
          },
          "name": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "fr"
            ],
            "properties": {
              "fr": {
                "type": "string",
                "minLength": 1
              }
            }
          },
          "country": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "code",
              "name"
            ],
            "properties": {
              "code": {
                "type": "string",
                "pattern": "^[A-Z]{2}$"
              },
              "name": {
                "type": "string",
                "minLength": 1
              }
            }
          },
          "city": {
            "type": "string",
            "minLength": 1
          },
          "address": {
            "anyOf": [
              {
                "type": "string",
                "minLength": 1
              },
              {
                "type": "string",
                "nullable": true,
                "enum": [
                  null
                ]
              }
            ]
          },
          "phones": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": false,
              "required": [
                "raw",
                "e164"
              ],
              "properties": {
                "raw": {
                  "type": "string",
                  "minLength": 1
                },
                "e164": {
                  "anyOf": [
                    {
                      "type": "string",
                      "pattern": "^\\+[1-9][0-9]{6,14}$"
                    },
                    {
                      "type": "string",
                      "nullable": true,
                      "enum": [
                        null
                      ]
                    }
                  ]
                }
              }
            }
          },
          "website": {
            "anyOf": [
              {
                "type": "string",
                "format": "uri",
                "pattern": "^https?://"
              },
              {
                "type": "string",
                "nullable": true,
                "enum": [
                  null
                ]
              }
            ]
          },
          "source_names": {
            "type": "array",
            "minItems": 1,
            "items": {
              "type": "string",
              "minLength": 1
            }
          },
          "quality_flags": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1
            }
          }
        }
      }
    },
    "meta": {
      "type": "object",
      "additionalProperties": false,
      "required": [
        "dataset",
        "total",
        "license",
        "terms_url",
        "redistribution_status",
        "retrieved_at",
        "source_updated_at",
        "transformation_version",
        "coverage",
        "sources",
        "pagination"
      ],
      "properties": {
        "dataset": {
          "enum": [
            "moroccan-consulates"
          ]
        },
        "total": {
          "type": "integer",
          "minimum": 0
        },
        "license": {
          "type": "string",
          "nullable": true,
          "enum": [
            null
          ]
        },
        "terms_url": {
          "type": "string",
          "format": "uri"
        },
        "redistribution_status": {
          "enum": [
            "permission-not-obtained"
          ]
        },
        "retrieved_at": {
          "type": "string",
          "format": "date"
        },
        "source_updated_at": {
          "type": "string",
          "nullable": true,
          "enum": [
            null
          ]
        },
        "transformation_version": {
          "type": "string",
          "minLength": 1
        },
        "coverage": {
          "type": "object",
          "additionalProperties": false,
          "required": [
            "records",
            "countries",
            "complete",
            "real_time",
            "limitations"
          ],
          "properties": {
            "records": {
              "type": "integer",
              "minimum": 1
            },
            "countries": {
              "type": "integer",
              "minimum": 1
            },
            "complete": {
              "enum": [
                false
              ]
            },
            "real_time": {
              "enum": [
                false
              ]
            },
            "limitations": {
              "type": "array",
              "items": {
                "type": "string",
                "minLength": 1
              }
            }
          }
        },
        "sources": {
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": false,
            "required": [
              "dataset",
              "producer",
              "source_url"
            ],
            "properties": {
              "dataset": {
                "type": "string",
                "minLength": 1
              },
              "producer": {
                "type": "string",
                "minLength": 1
              },
              "source_url": {
                "type": "string",
                "format": "uri"
              }
            }
          }
        },
        "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 25
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: "moroccan-consulates"

meta.totalinteger

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

meta.licensenull

null : aucune licence ouverte identifiée pour cet annuaire.

Valeurs acceptées: null

meta.terms_urlstring

Conditions d’utilisation publiées par le site source.

meta.redistribution_statusstring

permission-not-obtained : aucune autorisation écrite de redistribution obtenue.

Valeurs acceptées: "permission-not-obtained"

meta.retrieved_atstring

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

meta.source_updated_atnull

Dernière mise à jour annoncée par la source ; pas la date de récupération.

Valeurs acceptées: null

meta.transformation_versionstring

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

meta.coverageobject

Périmètre géographique et temporel effectivement disponible.

meta.coverage.recordsinteger

Nombre de consulats dans le snapshot entier, avant filtrage.

meta.coverage.countriesinteger

Nombre de pays représentés dans le snapshot entier.

meta.coverage.completeboolean

false : la couverture exhaustive du réseau consulaire n’est pas vérifiée.

Valeurs acceptées: false

meta.coverage.real_timeboolean

false : les observations sont historiques, sans mise à jour en direct.

Valeurs acceptées: false

meta.coverage.limitationsstring[]

Limites connues de la source ou de la couverture ; à lire avant d’utiliser les données.

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

Informations pour parcourir une collection page par page.

meta.pagination.limitinteger

Nombre maximal demandé par page : 100 par défaut, 500 au maximum.

meta.pagination.offsetinteger

Nombre de résultats ignorés avant cette page, après filtrage. La première page commence à 0.

meta.pagination.countinteger

Nombre de résultats effectivement présents dans cette page.

meta.pagination.has_moreboolean

true s’il reste une autre page de résultats.

meta.pagination.next_offsetinteger | null

Valeur de offset pour la page suivante ; null à la fin. Gardez les mêmes filtres.

Erreurs
  • 400: Paramètre invalide ou manquant.

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.