Edifiable · Schema

Plan

CompanyUrban PlanningZoningFranceOpen Data

Properties

Name Type Description
url string
municipality object
document objectnull
coverage objectnull Ce qui couvre la commune quand elle n a rien depose a son nom : un document intercommunal, ou un autre de ses documents.
regulation object
national_rule objectnull Ce que le code de l urbanisme repond quand la commune n a PAS de plan local : les memes sept questions, chacune avec le texte des articles qui la portent. `null` des qu un document local couvre la com
procedure objectnull
permit objectnull
risks array
planning_department objectnull
town_hall objectnull
page_url string
markdown_url string
source string D'ou vient la DONNEE. Une citation recopie cette phrase.
served_by object Qui a REPONDU. Ne pas confondre avec `source`.
terms string
documentation string
notice string La retenue : une lecture automatique ne remplace pas le certificat d'urbanisme delivre par la mairie.
View JSON Schema on GitHub

JSON Schema

edifiable-fr-plan-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/edifiable-fr/json-schema/edifiable-fr-plan-schema.json",
  "title": "Plan",
  "x-generated": "2026-11-06",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/edifiable-fr-openapi.json#/components/schemas/Plan",
  "type": "object",
  "required": [
    "url",
    "municipality",
    "document",
    "coverage",
    "regulation",
    "permit",
    "risks",
    "page_url",
    "markdown_url"
  ],
  "properties": {
    "url": {
      "type": "string",
      "format": "uri"
    },
    "municipality": {
      "allOf": [
        {
          "type": "object",
          "required": [
            "insee",
            "name",
            "department"
          ],
          "properties": {
            "insee": {
              "type": "string"
            },
            "name": {
              "type": "string"
            },
            "department": {
              "type": "string"
            }
          }
        }
      ],
      "properties": {
        "postal_code": {
          "type": [
            "string",
            "null"
          ]
        },
        "population": {
          "type": [
            "integer",
            "null"
          ]
        }
      }
    },
    "document": {
      "type": [
        "object",
        "null"
      ],
      "properties": {
        "type": {
          "type": "string"
        },
        "name": {
          "type": "string"
        },
        "approved_on": {
          "type": [
            "string",
            "null"
          ],
          "description": "En francais, lue dans le nom du document."
        },
        "text_source": {
          "type": "string",
          "description": "D ou vient le texte servi : le depot du Geoportail de l urbanisme, ou le site de la collectivite quand le Geoportail n en a recu qu une page de renvoi. Les objets `document` des routes de zone et de rue le portent aussi."
        },
        "regulation_pdf_url": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri",
          "description": "Nul quand le document ne porte aucun reglement ecrit - le cas d une carte communale."
        },
        "regulation_text_url": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri",
          "description": "Nul dans les memes cas que regulation_pdf_url."
        },
        "zoning_plan_sheets": {
          "type": "integer"
        }
      }
    },
    "coverage": {
      "type": [
        "object",
        "null"
      ],
      "description": "Ce qui couvre la commune quand elle n a rien depose a son nom : un document intercommunal, ou un autre de ses documents.",
      "properties": {
        "partition": {
          "type": [
            "string",
            "null"
          ]
        },
        "zone_at_centre": {
          "type": "string"
        },
        "zone_label": {
          "type": [
            "string",
            "null"
          ]
        },
        "intercommunal": {
          "type": "boolean"
        }
      }
    },
    "regulation": {
      "type": "object",
      "properties": {
        "state": {
          "type": "string",
          "description": "decoupe, scan, sans-reglement, sans-article, non-normatif, echec ou not-read."
        },
        "grid": {
          "type": "string",
          "enum": [
            "R123-9",
            "R151"
          ],
          "description": "La nomenclature qui numerote les articles : R123-9, article du code de l urbanisme abroge en 2015 dont la numerotation survit dans trois documents sur cinq, ou R151, sans numeros - les numeros sont alors ceux du site, pas du document."
        },
        "pages": {
          "type": [
            "integer",
            "null"
          ]
        },
        "zones": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "code": {
                "type": "string"
              },
              "name": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "summary": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "character": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "articles": {
                "type": "integer"
              },
              "url": {
                "type": "string",
                "format": "uri"
              },
              "page_url": {
                "type": "string",
                "format": "uri"
              },
              "markdown_url": {
                "type": "string",
                "format": "uri"
              }
            }
          }
        },
        "zones_on_the_map": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Les zones que le plan porte quand le reglement n est pas decoupe."
        },
        "compiled": {
          "type": [
            "object",
            "null"
          ],
          "description": "La regle GENERALE de chaque zone par domaine, et le nombre de cas qui restent. La zone porte tous les cas.",
          "properties": {
            "document": {
              "type": "string"
            },
            "compiled_on": {
              "type": "string"
            },
            "rules_by_zone": {
              "type": "object",
              "additionalProperties": {
                "type": "object"
              }
            }
          }
        }
      }
    },
    "national_rule": {
      "type": [
        "object",
        "null"
      ],
      "description": "Ce que le code de l urbanisme repond quand la commune n a PAS de plan local : les memes sept questions, chacune avec le texte des articles qui la portent. `null` des qu un document local couvre la commune, ou que rien ne dit lequel s applique.",
      "properties": {
        "family": {
          "type": "string",
          "enum": [
            "RNU",
            "CC"
          ],
          "description": "RNU : aucun document local. CC : une carte communale, qui delimite ou l on construit sans reglement ecrit."
        },
        "description": {
          "type": "string"
        },
        "answers": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "topic": {
                "type": "string",
                "enum": [
                  "usage",
                  "hauteur",
                  "emprise",
                  "voie",
                  "limites",
                  "stationnement",
                  "verts"
                ]
              },
              "question": {
                "type": "string"
              },
              "answer": {
                "type": [
                  "string",
                  "null"
                ],
                "description": "null quand le code ne fixe rien sur cette question."
              },
              "articles": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/CodeArticle"
                }
              }
            }
          }
        },
        "notes": {
          "type": "array",
          "description": "Ce qui s ajoute aux sept questions : d ou vient la regle, les motifs de refus, les reseaux, qui decide.",
          "items": {
            "type": "object",
            "properties": {
              "title": {
                "type": "string"
              },
              "text": {
                "type": "string"
              },
              "articles": {
                "type": "array",
                "items": {
                  "$ref": "#/$defs/CodeArticle"
                }
              }
            }
          }
        }
      }
    },
    "procedure": {
      "type": [
        "object",
        "null"
      ]
    },
    "permit": {
      "type": [
        "object",
        "null"
      ]
    },
    "risks": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "planning_department": {
      "type": [
        "object",
        "null"
      ]
    },
    "town_hall": {
      "type": [
        "object",
        "null"
      ]
    },
    "page_url": {
      "type": "string",
      "format": "uri"
    },
    "markdown_url": {
      "type": "string",
      "format": "uri"
    },
    "source": {
      "type": "string",
      "description": "D'ou vient la DONNEE. Une citation recopie cette phrase."
    },
    "served_by": {
      "type": "object",
      "description": "Qui a REPONDU. Ne pas confondre avec `source`.",
      "properties": {
        "name": {
          "type": "string"
        },
        "url": {
          "type": "string",
          "format": "uri"
        }
      }
    },
    "terms": {
      "type": "string"
    },
    "documentation": {
      "type": "string",
      "format": "uri"
    },
    "notice": {
      "type": "string",
      "description": "La retenue : une lecture automatique ne remplace pas le certificat d'urbanisme delivre par la mairie."
    }
  },
  "$defs": {
    "CodeArticle": {
      "type": "object",
      "description": "Un article du code de l urbanisme, avec son texte en vigueur. Le texte est servi pour la meme raison qu une phrase de reglement : une valeur qu on ne peut pas verifier n est pas une reponse.",
      "required": [
        "number",
        "code",
        "legifrance_url",
        "last_modified",
        "text"
      ],
      "properties": {
        "number": {
          "type": "string"
        },
        "code": {
          "type": [
            "string",
            "null"
          ]
        },
        "legifrance_url": {
          "type": [
            "string",
            "null"
          ],
          "format": "uri"
        },
        "last_modified": {
          "type": [
            "string",
            "null"
          ]
        },
        "text": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "description": "Alinea par alinea."
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/edifiable-fr-plan"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.