---
title: "Plan de situation, plan de masse et implantation"
method: POST
path: "/urbanisme/croquis"
---

# Plan de situation, plan de masse et implantation

`POST /urbanisme/croquis`

## Request

- Base URL: `https://pillr.fr/api/v1`
- URL: `https://pillr.fr/api/v1/urbanisme/croquis`
- Auth: HTTP bearer

Le plan de situation et le plan de masse coté d'un projet (extension, annexe, abri, garage, carport, piscine, terrasse, véranda) sur la parcelle cadastrale et les bâtiments de la BD TOPO de l'IGN, lus en direct, pour une adresse, un identifiant de parcelle ou un point. Les projets se placent contre un côté du bâtiment principal, à une distance d'une limite, par un contour donné, ou automatiquement : trois emplacements notés sur l'ensoleillement au 21 juin et au 21 mars, les distances, le relief et les limites. La réponse donne les emprises et les mesures, les alertes (débord, chevauchement), la formalité établie depuis les projets dessinés, la zone du PLU et les servitudes lues en un point de la parcelle, les règles du règlement déjà lu (reculs, emprise, hauteur) et les vues du plan de situation. Le plan de masse n'est pas dessiné quand un architecte est obligatoire ou que des faits manquent : la réponse le dit, avec les questions. Croquis indicatif, à vérifier avant dépôt. Coût : 20 crédits par appel réussi.

## Request body

- object
  - `adresse` string: Adresse en texte, numéro compris, géocodée par la Base Adresse Nationale.
  - `code_postal` string: Code postal, pour départager une adresse homonyme (avec adresse).
  - `idu` string: Identifiant de la parcelle cadastrale à 14 caractères (ex. 69382000AB0050).
  - `lat` number
  - `lon` number
  - `recul_limites_m` number: Implantation automatique : recul aux limites, en mètres (sinon celui du règlement lu, ou le défaut).
  - `distance_min_batiments_m` number
  - `distance_max_maison_m` number
  - `choix_implantation` 'A' | 'B' | 'C': Implantation automatique : l'emplacement retenu, A, B ou C.
  - `formalite` 'aucune' | 'declaration_prealable' | 'permis_de_construire' | 'permis_d_amenager' | 'permis_de_demolir': Formalité annoncée : jamais crue, comparée à celle que le croquis établit.
  - `demandeur` 'personne_physique' | 'exploitation_agricole' | 'societe'
  - `surface_plancher_creee_m2` number
  - `surface_plancher_totale_apres_travaux_m2` number
  - `emprise_au_sol_totale_apres_travaux_m2` number
  - `annotations` object[]: Éléments du plan : arbres, accès, stationnement, réseaux, points de vue des photos.
    - `type` 'arbre' | 'acces' | 'stationnement' | 'reseau' | 'vue_photo', required
    - `position_wgs84` unknown[]
      - unknown
    - `etat` 'conserve' | 'abattu' | 'plante'
    - `diametre_m` number
    - `azimut_deg` number: Orientation, 0 au nord, 90 à l'est.
    - `nature` 'vehicule' | 'pieton'
    - `largeur_m` number
    - `longueur_m` number
    - `reseau` 'eau' | 'electricite' | 'assainissement'
    - `trace_wgs84` array[]
      - unknown[]
        - unknown
    - `numero` integer
    - `piece` 'proche' | 'lointain'
  - `projets` object[], required: Les projets à placer sur la parcelle.
    - `nature` 'extension' | 'annexe' | 'abri' | 'garage' | 'carport' | 'piscine' | 'terrasse' | 'veranda' | 'autre', required: Nature du projet.
    - `libelle` string
    - `largeur_m` number: Largeur, le long du côté de référence, en mètres.
    - `profondeur_m` number: Profondeur, en mètres.
    - `hauteur_m` number: Hauteur totale en mètres ; 0 pour un ouvrage au niveau du sol.
    - `ancrage` 'accole_batiment' | 'depuis_limite' | 'auto' | 'libre': accole_batiment : contre un côté du bâtiment principal ; depuis_limite : à une distance d'une limite ; auto : trois emplacements proposés ; libre : contour donné.
    - `cote` 'nord' | 'sud' | 'est' | 'ouest': Côté visé (bâtiment ou limite) : nord, sud, est, ouest.
    - `distance_limite_m` number: Distance à la limite, en mètres (ancrage depuis_limite).
    - `decalage_m` number: Décalage le long du côté, en mètres.
    - `calage` 'centre' | 'extremite_ouest_sud' | 'extremite_est_nord'
    - `hauteur_couverture_m` number: Piscine : hauteur de la couverture en mètres, 0 si non couverte.
    - `demontable` boolean: Piscine démontable (hors sol).
    - `contour_wgs84` array[]: Ancrage libre : les quatre coins [lon, lat], tels que le croquis les rend.
      - unknown[]
        - unknown

## Response `200`

Réponse servie et débitée (sauf réponse identique déjà servie dans les 24 h).

- object
  - `adresse` object, nullable, required
    - `libelle` string, required
    - `lat` number, required
    - `lon` number, required
    - `precision` string, required
  - `origine` object, required: Origine du plan local (mètres, x vers l'est, y vers le nord).
    - `lat` number, required
    - `lon` number, required
  - `parcelle` object, required
    - `idu` string, required
    - `section` string, nullable, required
    - `numero` string, nullable, required
    - `commune` string, nullable, required
    - `code_insee` string, nullable, required
    - `contenance_m2` number, nullable, required
    - `surface_calculee_m2` number, required
    - `contour` array[], required: Anneaux de la parcelle, en mètres du plan local.
      - array[]
        - number[]
    - `cotes` object[], required
  - `batiments` object[], required: Bâtiments de la BD TOPO sur la parcelle : contour, surface, hauteur, étages, usage, principal.
  - `projets` object[], required: Projets placés : contour (plan local) et contour_wgs84, surface, distances aux limites et aux bâtiments, alertes.
  - `projets_non_places` object[], required
    - `libelle` string, required
    - `raison` string, required
  - `mesures` object, required
    - `surface_parcelle_cadastre_m2` number, nullable, required
    - `surface_parcelle_calculee_m2` number, required
    - `emprise_existante_m2` number, required
    - `emprise_projets_m2` number, required
    - `emprise_totale_m2` number, required
    - `part_emprise_totale_pct` number, nullable, required
    - `base_part` 'contenance_cadastrale' | 'surface_calculee', required
    - `distance_min_limite_projets_m` number, nullable, required
  - `plan_de_masse` object, required
    - `echelle` number, required
    - `echelle_usuelle` boolean, required
    - `cadre_mm` object, required
      - `largeur` number, required
      - `hauteur` number, required
    - `centre` number[], required
    - `refus` object, nullable, required: Plan de masse non dessiné : architecte obligatoire, ou faits manquants pour l'établir.
      - `raison` string, required
      - `a_confirmer` boolean, required
      - `questions` object[], required
    - `formalite_derivee` 'aucune' | 'declaration_prealable' | 'permis_de_construire' | 'permis_d_amenager' | 'permis_de_demolir', nullable, required: Formalité établie par la base de règles depuis les projets dessinés ; null : non établie.
  - `plan_de_situation` object, required
  - `urbanisme` object, nullable, required: Zone du PLU et servitudes lues en un point intérieur de la parcelle.
  - `urbanisme_indisponible` string, nullable, required
  - `implantation` object, nullable, required: Implantation automatique : trois emplacements notés (soleil, distances, relief, limites).
  - `annotations` object[], required
  - `contraintes_plu` object, nullable, required: Règles du règlement déjà lu (reculs, emprise, hauteur), avec leur source.
  - `constats` string[], required
  - `sources` string[], required
  - `limites` string[], required
  - `mention` string, required
  - `genere_le` string, required
  - `qualite` object, required: Ce qui permet de juger la valeur : nombre, provenance, incertitude, drapeaux, date et source.
    - `n` integer, nullable, required: Nombre d'observations derrière la valeur ; null si sans objet.
    - `provenance` 'mesure' | 'estime', nullable, required: mesure : observé sur la donnée ; estime : modèle, barème ou imputation ; null : sans objet.
    - `incertitude` object, nullable, required: Incertitude de la valeur : fourchette et demi-largeur.
      - `demi_largeur_pct` number, nullable, required: Demi-largeur de la fourchette, en % de la valeur.
      - `bas` number, nullable, required
      - `haut` number, nullable, required
    - `drapeaux` string[], required: Ce qui doit faire lire la valeur avec prudence ; vide si rien.
    - `methode` string, nullable, required: Méthode de calcul ou de rattachement, en clair.
    - `donnees_du` string, nullable, required: Date de la donnée (AAAA-MM-JJ ou horodatage ISO 8601).
    - `source` string, required: Source publique ou moteur Pillr, en clair.
  - `credits` object, required: Crédits débités par cet appel (réservés, pour une tâche en cours), et crédits encore utilisables ce mois avant la coupure : crédits offerts, crédits inclus du mois et crédits facturables sous le plafond de dépense (null si inconnus ou en bac à sable).
    - `debites` integer, required
    - `restants` integer, nullable, required

## Other responses

- `400`: Paramètres invalides
- `401`: Clé d'API absente
- `402`: Crédits insuffisants ; Carte requise ; Plafond mensuel de dépense atteint
- `403`: Portée insuffisante
- `404`: Ressource absente : rien n'est débité
- `429`: Trop de requêtes par minute
- `500`: Erreur interne
- `503`: API indisponible ; Donnée momentanément indisponible

---

[API](https://skmtc.dev/pillr/apis/api-pillr.md) · [All operations](https://skmtc.dev/pillr/apis/api-pillr/llms.txt) · [OpenAPI document](https://skmtc.dev/pillr/apis/api-pillr/revisions/218b2866bd6c?raw)
