French land intelligence: corporate property owners, zoning (PLU), cadastre, DVF sales, permits.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional: 'Bearer toise_sk_…' API key from https://toiseai.com/compte.html to link calls to your account (visitor access works without it).
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Où en sont les promesses de vente et compromis d'un terrain de mon portefeuille. Modes accords, fiche, verrouillage, planning, echeances. Lecture seule.
Mode fiche : identifiant de l’accord…
Mode echeances : horizon en jours (défaut 30).
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http toise https://mcp.toiseai.com/mcp
Headers
Authorization (optional, not in the config above): Optional: 'Bearer toise_sk_…' API key from https://toiseai.com/compte.html to link calls to your account (visitor access works without it).Où en sont les promesses de vente et compromis d'un terrain de mon portefeuille. Modes accords, fiche, verrouillage, planning, echeances. Lecture seule.
| Argument | Type | Description |
|---|---|---|
| mode | string | |
| limite | integer | |
| curseur | string | |
| accord_id | integer | Mode fiche : identifiant de l’accord… |
| terrain_id | integer | |
| horizon_jours | integer | Mode echeances : horizon en jours (défaut 30). |
{
"type": "object",
"properties": {
"mode": {
"enum": [
"accords",
"fiche",
"verrouillage",
"planning",
"echeances"
],
"type": "string",
"default": "accords"
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"curseur": {
"type": "string"
},
"accord_id": {
"type": "integer",
"minimum": 1,
"description": "Mode fiche : identifiant de l’accord…"
},
"terrain_id": {
"type": "integer",
"minimum": 1
},
"horizon_jours": {
"type": "integer",
"maximum": 365,
"minimum": 0,
"description": "Mode echeances : horizon en jours (défaut 30)."
}
},
"additionalProperties": false
}Analyser ce deal selon ma doctrine d'investissement : teaser et/ou adresse, score de doctrine, enrichissement et bilan (marge, TRI), contradictions signalées. Enchaîne toise_teaser, toise_dossier_adresse et toise_bilan_operation.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| choix | object | Hypothèses du bilan… |
| texte | string | Texte du teaser collé (40 à 60 000 caractères). |
| metier | string | vefa : Promotion en VEFA — acheter, construire… |
| adresse | string | |
| section | string | |
| doctrine | object | Critères de la doctrine (voir toise_teaser). |
| typologie | string | Typologie de l’actif… |
| code_insee | string |
Une annonce est-elle chère : coller son texte (immobilier d'entreprise, immeuble de rapport, appartement à rénover) pour la comparer aux ventes voisines et chiffrer marge et prix admissible. Hypothèses modifiables (travaux_m2, prix_m2_revente, regime_droits…). Teaser d'investissement : toise_teaser.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| ltv | number | Quotité de financement, fraction (défaut 0.60). |
| etat | string | Résidentiel : état du bien, si mal lu… |
| prix | number | Prix de vente net vendeur en euros, si le texte… |
| texte* | string | Texte complet de l'annonce… |
| adresse | string | |
| nb_lots | integer | Résidentiel : nombre de lots, si mal lu. |
| rayon_m | number | |
Mon dossier passera-t-il en banque : verdict et points d'attention selon le type d'opération. Mêmes entrées que toise_bilan_operation, plus fonds_propres, duree_credit_ans, precommercialisation_pct : ratios, tests de résistance, questions de la banque.
| Argument | Type | Description |
|---|---|---|
| choix | object | Hypothèses imposées au bilan… |
| ebitda | number | |
| metier* | string | vefa : Promotion en vente en l’état futur… |
| adresse | string | |
| nb_lots | number | Pré-analyse : nombre de lots créés ou vendus… |
| loyer_an | number | |
| operation | string | Pré-analyse : libellé de l’opération… |
| type_bien | string | Pré-analyse : type de bien pour les ventes… |
| duree_mois | number | Durée de l’opération, en mois… |
Qui détient les murs d'une commune : les plus gros propriétaires personnes morales, bailleurs sociaux et collectivités écartés. Bailleurs sociaux et publics écartés par défaut (inclure_public). Paginé. Parcelles : toise_proprietaire.
| Argument | Type | Description |
|---|---|---|
| limite | integer | |
| curseur | string | |
| code_insee* | string | |
| inclure_public | boolean | Vrai : ne pas écarter les bailleurs sociaux… |
{
"type": "object",
"required": [
"code_insee"
],
"properties": {
"limite": {
"type": "integer",
"default": 8,
"maximum": 25,
"minimum": 1
},
"curseur": {
"type": "string"
},
"code_insee": {
"type": "string"
},
"inclure_public": {
"type": "boolean",
"default": false,
"description": "Vrai : ne pas écarter les bailleurs sociaux…"
}
}
}Un hôtel ou un restaurant est-il rentable sur UNE année : compte d'exploitation USALI (RevPAR, GOP, EBITDA) et valorisation sur l'EBITDA. BP sur dix ans d'un investisseur : toise_bp_exploitation. Ne pas combiner les deux sans expliquer l'écart d'hypothèses. Ratios par défaut = hypothèses.
| Argument | Type | Description |
|---|---|---|
| zone | string | Localisation de l’hôtel : Paris, grandes… |
| choix | object | Hypothèses de financement et de sortie… |
| jours | integer | Jours d’ouverture (365 par défaut). |
| ebitda | number | |
| ratios | object | Ratios de charges imposés… |
| loyer_an | number | |
| ebitda_pct | number | |
| ffe_pct_ca | number | Réserve FF&E en % du chiffre d’affaires… |
| nb_chambres | number | |
| personnel_an |
Une opération de promotion, de marchand de biens ou de locatif est-elle rentable : bilan chiffré (marge, TRI, trésorerie), avec quota de logements sociaux. Métiers vefa, cpi, marchand, locatif, exploitation : marge, TRI, trésorerie, poste par poste. `choix` : clés dans toise_referentiels (vocabulaire). Options : avec_contraintes_plu (+ lire_reglement_ecrit), avec_sensibilite, caler_prix_sur_dvf.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| choix | object | Hypothèses à imposer, facultatif… |
| ebitda | number | |
| metier* | string | vefa : Promotion en VEFA — acheter, construire… |
| adresse | string | |
| niveaux | number | Hypothèse de nombre de niveaux pour la surface… |
| section | string | |
| loyer_an | number |
Quelles sociétés sont en difficulté ou ont cédé un fonds : annonces légales du BODACC (redressement, liquidation, cessions). Par siren ou departement ; familles vente ou collective, depuis. Un signal, jamais une mise en vente.
| Argument | Type | Description |
|---|---|---|
| siren | string | |
| depuis | string | Ne garder que les annonces parues à partir de… |
| limite | integer | |
| curseur | string | |
| familles | array | Familles d'annonces ; par défaut vente et… |
| departement | string |
{
"type": "object",
"required": [],
"properties": {
"siren": {
"type": "string"
},
"depuis": {
"type": "string",
"description": "Ne garder que les annonces parues à partir de…"
},
"limite": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"curseur": {
"type": "string"
},
"familles": {
"type": "array",
"items": {
"enum": [
"vente",
"collective"
],
"type": "string"
},
"description": "Familles d'annonces ; par défaut vente et…"
},
"departement": {
"type": "string"
}
}
}Préparer le business plan d'un hôtel, d'un hostel ou d'une résidence gérée : dix ans d'exploitation, TRI et hypothèses sourcées. BP d'un INVESTISSEUR : mode par défaut = celui du préréglage (souvent bail_fixe), à dire ; exploitant : proprietaire_exploitant. Une année : toise_bilan_exploitation.
| Argument | Type | Description |
|---|---|---|
| mode | string | Mode d’exploitation… |
| zone* | string | Zone de marché. |
| dette | number | Surcharge de financement.dette. |
| segment* | string | Segment d’exploitation. |
| travaux | number | Surcharge de investissement.travaux. |
| scenario | string | Scénario des préréglages (central par défaut). |
| surface_m2 | number | Surcharge de capacite.surface_m2. |
| taux_dette | number | Surcharge de financement.taux_annuel. |
| acquisition | number |
Cannibalisation entre mes magasins et trous de réseau : habitants communs entre 2 à 10 points de vente, et communes candidates couvertes par aucun. Chaque zone : adresse ou lat/lon et mode (rayon, voiture, a_pied…).
| Argument | Type | Description |
|---|---|---|
| tri | string | Classement des trous de réseau… |
| zones* | array | 2 à 10 zones du réseau… |
| communes_candidates | array | Mode trous de réseau : communes candidates dont… |
{
"type": "object",
"required": [
"zones"
],
"properties": {
"tri": {
"enum": [
"habitants_hors_reseau",
"revenu_haut",
"etablissements"
],
"type": "string",
"description": "Classement des trous de réseau…"
},
"zones": {
"type": "array",
"items": {
"type": "object",
"required": [
"mode"
],
"properties": {
"km": {
"type": "number",
"maximum": 30,
"description": "Rayon en km, de 1 à 30…"
},
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"mode": {
"enum": [
"voiture",
"a_pied",
"velo",
"poids_lourd",
"rayon",
"isodistance",
"trace",
"admin"
],
"type": "string",
"description": "voiture, velo, poids_lourd : jusqu’à 45…"
},
"adresse": {
"type": "string"
},
"libelle": {
"type": "string",
"description": "Nom court…"
},
"minutes": {
"type": "number",
"maximum": 45,
"minimum": 5,
"description": "Durée du trajet, de 5 à 45 (voiture) ou…"
},
"zone_tracee": {
"type": "object",
"description": "Mode trace : GeoJSON Polygon…"
},
"zone_administrative": {
"type": "object",
"description": "Mode admin : { type…"
}
}
},
"maxItems": 10,
"minItems": 2,
"description": "2 à 10 zones du réseau…"
},
"communes_candidates": {
"type": "array",
"items": {
"anyOf": [
{
"type": "string"
},
{
"type": "object",
"properties": {
"nom": {
"type": "string"
},
"code_insee": {
"type": "string"
},
"departement": {
"type": "string"
}
}
}
]
},
"maxItems": 20,
"description": "Mode trous de réseau : communes candidates dont…"
}
}
}Quelles communes cibler, ou quels indicateurs socio-économiques d'une commune (population, revenus, prix au m², établissements, vacance) : filtre sur toute la France. Une seule zone : filtrer par departement, ou comparer des adresses avec toise_comparer_zones. Classer un département par foncier institutionnel : toise_maillage ; trous de réseau : toise_cannibalisation.
| Argument | Type | Description |
|---|---|---|
| tri | string | Valeur affichée servant au tri… |
| ordre | string | |
| limite | integer | |
| curseur | string | |
| decalage | integer | |
| revenu_max | number | Revenu médian annuel par unité de consommation… |
| revenu_min | number | Revenu médian annuel par unité de consommation… |
| departement | string | |
| prix_m2_max | number | Prix médian DVF au m² (€), au plus. |
Quelle adresse choisir entre 2 et 10 emplacements : comparer leurs zones de chalandise côte à côte en UN seul appel (toutes les adresses dans `zones`). Chaque zone accepte les paramètres de toise_zone_chalandise. Ne pas appeler toise_zone_chalandise une fois par adresse.
| Argument | Type | Description |
|---|---|---|
| zones* | array | 2 à 10 zones à comparer. |
{
"type": "object",
"required": [
"zones"
],
"properties": {
"zones": {
"type": "array",
"items": {
"type": "object",
"required": [
"mode"
],
"properties": {
"km": {
"type": "number",
"maximum": 30,
"description": "Rayon en km, de 1 à 30…"
},
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"mode": {
"enum": [
"voiture",
"a_pied",
"velo",
"poids_lourd",
"rayon",
"isodistance",
"trace",
"admin"
],
"type": "string",
"description": "voiture, velo, poids_lourd : jusqu’à 45…"
},
"ca_min": {
"type": "number",
"description": "Chiffre d’affaires minimal en euros."
},
"adresse": {
"type": "string"
},
"libelle": {
"type": "string",
"description": "Nom court pour la colonne…"
},
"minutes": {
"type": "number",
"maximum": 45,
"minimum": 5,
"description": "Durée du trajet, de 5 à 45 (voiture) ou…"
},
"secteurs": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Ua-u]$"
},
"description": "Sections NAF à garder (A à U)."
},
"zone_tracee": {
"type": "object",
"description": "Mode trace : GeoJSON Polygon…"
},
"effectif_min": {
"enum": [
"01",
"02",
"03",
"11",
"12",
"21",
"22",
"31",
"32",
"41",
"42",
"51",
"52",
"53"
],
"type": "string",
"description": "Tranche d’effectif minimale…"
},
"ca_inconnu_exclu": {
"type": "boolean",
"description": "Avec ca_min : exclure aussi les…"
},
"zone_administrative": {
"type": "object",
"description": "Mode admin : { type…"
}
}
},
"maxItems": 10,
"minItems": 2,
"description": "2 à 10 zones à comparer."
}
}
}Combien d'unités me reste-t-il aujourd'hui et quelles offres : état d'usage du compte. Quotas du jour, offres et coût de chaque outil. Ne modifie rien.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Qu'est-ce qui peut bloquer ou renchérir un projet autour d'une adresse : servitudes, emplacements réservés, ABF et monuments historiques, prescriptions du PLU. Rayon 50 à 1 000 m (100 par défaut) : PLU, SUP, ABF, EBC, OAP, ZAC/PUP mentionnées. Inclut déjà les risques Géorisques (PPRI/PPRT, radon, ICPE, argiles) : inutile d'appeler aussi toise_risques, sauf pour le détail communal. Non opposable.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| limite | integer | |
| niveau | string | Ne rendre que ce niveau de gravité. |
| adresse | string | |
| curseur | string | |
| rayon_m | number | |
| code_insee | string |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"niveau": {
"enum": [
"bloquant",
"majeur",
"chiffrable"
],
"type": "string",
"description": "Ne rendre que ce niveau de gravité."
},
"adresse": {
"type": "string"
},
"curseur": {
"type": "string"
},
"rayon_m": {
"type": "number",
"maximum": 1000,
"minimum": 50
},
"code_insee": {
"type": "string"
}
},
"additionalProperties": false
}Trouver des terrains sous-densifiés ou à fort potentiel sur une commune : cribler les parcelles de personnes morales (taille, zone, emprise bâtie, propriétaire) sans partir d'une adresse. Département ou commune, modes catalogue, cribler, filtres ; premier étage gratuit. Filtres : `exclure` (Natura 2000, ZNIEFF, PPR, TRI, SIS…), `distance_max` (gare, arrêt, équipement) ; source muette = critère non vérifié.
| Argument | Type | Description |
|---|---|---|
| mode | string | catalogue (critères et coûts), cribler (défaut)… |
| zone | string | Mode filtres : début du libellé de zone du PLU… |
| limite | integer | |
| mesure | integer | Nombre de parcelles dont le bâti est mesuré… |
| curseur | string | |
| exclure | array | Mode filtres, écarte les parcelles touchées par… |
| code_insee | string | |
| departement | string | |
| distance_max | array |
Vérifier un teaser ou une dataroom collé en texte (prix, propriétaire, permis, potentiel, risques) : un verdict par affirmation. Une fourchette n'est jamais une erreur. Extraction seule des chiffres : toise_teaser.
| Argument | Type | Description |
|---|---|---|
| texte* | string | Texte du teaser ou de la dataroom collé… |
| adresse | string |
{
"type": "object",
"required": [
"texte"
],
"properties": {
"texte": {
"type": "string",
"maxLength": 60000,
"minLength": 40,
"description": "Texte du teaser ou de la dataroom collé…"
},
"adresse": {
"type": "string"
}
},
"additionalProperties": false
}Suivi de dossier et dealflow : où en sont mes dossiers d'investissement (teasers, annonces, bilans, audits) et mes doctrines. Doctrines et dossiers de teasers du compte connecté, par décision. Lecture seule.
| Argument | Type | Description |
|---|---|---|
| limite | integer | |
| curseur | string | |
| section | string | |
| decision | string | Ne lister que les dossiers de cette décision. |
{
"type": "object",
"properties": {
"limite": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"curseur": {
"type": "string"
},
"section": {
"enum": [
"tout",
"doctrines",
"dossiers"
],
"type": "string"
},
"decision": {
"enum": [
"prioritaire",
"a-examiner",
"hors-cible",
"indeterminee"
],
"type": "string",
"description": "Ne lister que les dossiers de cette décision."
}
},
"additionalProperties": false
}Que peut-on construire ici et jusqu'à combien payer le foncier : constructibilité, meilleur usage et bilan (marge, TRI) en un seul appel. Adresse ou 1 à 12 parcelles. Enchaîne unité foncière, scénarios d'usage et bilan (moteur de toise_bilan_operation).
| Argument | Type | Description |
|---|---|---|
| choix | object | Hypothèses de gabarit à imposer… |
| detail | boolean | Défaut false : réponse résumée… |
| adresse | string | |
| identifiants | array | Liste de 1 à 12 parcelles choisies… |
| type_retention | string | Avec lire_reglement_ecrit : ouvrage de rétention… |
| prix_terrain_eur | number | Prix du terrain à chiffrer dans le bilan du… |
| type_stationnement | string | Avec lire_reglement_ecrit : chiffre les places… |
| ecart_rendement_bps | number | Écart de rendement exigé sur coût pour les… |
| marge_promoteur_pct |
Préparer un rendez-vous ou un dossier sur une adresse : parcelle, propriétaire, PLU, contraintes (dont ABF) et risques en un seul appel. Adresse, point ou parcelle. Rend aussi capacité constructible, bâti, valeur DVF et bilans ; une étude décomptée. `rubriques` (ex. urbanisme, risques) : ces volets seuls, dans cet ordre. Propriétaire seul : toise_proprietaire ; point gratuit : toise_point.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| blocs | array | Mode ciblé : ne rendre que ces blocs… |
| detail | boolean | true : sortie détaillée… |
| adresse | string | |
| section | string | |
| rubriques | array | Rapport selon votre modèle : volets à lire et… |
| code_insee | string | |
| parcelle_id | string | |
Quels sont les diagnostics de performance énergétique (DPE) d'une adresse ou d'un quartier : étiquettes, consommation, surface, date, logements et tertiaire. Recherche par proximité (le DPE n'a pas de référence cadastrale) : un DPE listé peut être celui du voisin. Adresse, lat/lon, parcelle ou commune ; ADEME, depuis 2021.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| depuis | string | Ne garder que les DPE établis depuis cette année… |
| adresse | string | |
| curseur | string | |
| rayon_m | number | |
| section | string | |
| travaux | array | Bouquet : classe estimée après travaux… |
| code_insee | string | |
| numero_parcelle | string |
Qui détient quels droits de propriété sur un terrain de mon portefeuille, parcelle par parcelle. Modes droits et analyse (anomalies, unités foncières). Lecture seule.
| Argument | Type | Description |
|---|---|---|
| mode | string | |
| limite | integer | |
| curseur | string | |
| terrain_id* | integer | |
| parcelle_id | string |
{
"type": "object",
"required": [
"terrain_id"
],
"properties": {
"mode": {
"enum": [
"droits",
"analyse"
],
"type": "string",
"default": "droits"
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"curseur": {
"type": "string"
},
"terrain_id": {
"type": "integer",
"minimum": 1
},
"parcelle_id": {
"type": "string"
}
},
"additionalProperties": false
}Prix de vente et comparables : ventes récentes autour d'une adresse (rayon, type, surface), prix au m², médiane et fourchette ; ou toutes les ventes d'une commune. Mode `comparables` : adresse (ou lat/lon + code_insee) et `type` OBLIGATOIRE (appartement, maison, activite, commerce, terrain, dependance). Type inconnu : appeler sans mode avec code_insee, lat/lon et rayon_m pour toutes les ventes proches. DVF 2021-2025 ; médiane dès 5 ventes.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| tri | string | Mode comparables : ordre des ventes rendues… |
| mode | string | historique (défaut) : liste des mutations d'une… |
| type | string | OBLIGATOIRE en mode comparables… |
| depuis | integer | Première année (2021 par défaut). |
| limite | integer | |
| nature | string | Nature de la mutation. |
| adresse | string |
Combien de concurrents (boulangeries, salles de sport…) autour d'un point : établissements actifs par code NAF, avec SIRET, enseigne et effectif. Entrée : lat, lon, naf (ex. 93.11Z), rayon_km. SIRENE ; aucun téléphone ni e-mail. Repli quand OpenStreetMap ne répond pas.
| Argument | Type | Description |
|---|---|---|
| lat* | number | |
| lon* | number | |
| naf* | any | Code(s) NAF : complet (93.11Z, 9311Z) ou début de… |
| limite | integer | |
| rayon_km | number | |
| effectif_max | integer | Effectif salarié maximal. |
| effectif_min | integer | Effectif salarié minimal de l’établissement. |
| inclure_non_renseigne | boolean | Avec un filtre d’effectif, garder aussi les… |
{
"type": "object",
"required": [
"lat",
"lon",
"naf"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"naf": {
"anyOf": [
{
"type": "string"
},
{
"type": "array",
"items": {
"type": "string"
},
"maxItems": 5
}
],
"description": "Code(s) NAF : complet (93.11Z, 9311Z) ou début de…"
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"rayon_km": {
"type": "number",
"maximum": 50,
"exclusiveMinimum": 0
},
"effectif_max": {
"type": "integer",
"minimum": 0,
"description": "Effectif salarié maximal."
},
"effectif_min": {
"type": "integer",
"minimum": 0,
"description": "Effectif salarié minimal de l’établissement."
},
"inclure_non_renseigne": {
"type": "boolean",
"description": "Avec un filtre d’effectif, garder aussi les…"
}
},
"additionalProperties": false
}Quel est le prix au m² d'un quartier : médiane, volumes de ventes par année, dispersion et tendance sur une ou plusieurs sections cadastrales. Entrée : code_insee + sections (6 au plus). Pas de médiane sous 5 ventes. Ventes une à une : toise_dvf_historique.
| Argument | Type | Description |
|---|---|---|
| sections* | array | Sections cadastrales à agréger, six au plus… |
| code_insee* | string |
{
"type": "object",
"required": [
"code_insee",
"sections"
],
"properties": {
"sections": {
"type": "array",
"items": {
"type": "string"
},
"minItems": 1,
"description": "Sections cadastrales à agréger, six au plus…"
},
"code_insee": {
"type": "string"
}
}
}Que faire de ces bureaux vacants (ou de ce bâtiment) : classement des usages de reconversion avec verdict PLU, complexité et coût, concurrents et enseignes autour. Entrée : adresse (ou lat/lon), caracteristiques et/ou teaser, poids. Base de travail subjective ; coûts à confirmer par devis. Valeur d'usage neuf : toise_potentiel_transformation.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| couts | object | Ancien nom : équivaut à hypotheses_couts.bandes. |
| poids | object | Poids des axes (défaut 25 chacun, normalisés). |
| teaser | string | Texte d’un teaser collé : surface, R+n, parking… |
| usages | array | Restreindre aux usages listés (défaut : tous). |
| adresse | string | |
| commune | string | |
| section | string | |
Où ouvrir plusieurs sites dans un département (mission expansion) : communes cibles, zones de chalandise, implantation, comparaison et cannibalisation enchaînées. Résultats par section, sans classement unique fusionné.
| Argument | Type | Description |
|---|---|---|
| detail | boolean | Défaut false : sortie résumée… |
| categorie | string | Catégorie de commerce visée (voir l'enum). |
| territoire* | string | Département… |
| limite_communes | integer | Communes candidates retenues de… |
| points_de_vente | array | 2 à 10 points de vente déjà ouverts… |
{
"type": "object",
"required": [
"territoire"
],
"properties": {
"detail": {
"type": "boolean",
"description": "Défaut false : sortie résumée…"
},
"categorie": {
"enum": [
"boulangerie",
"discount",
"alimentaire",
"restauration_rapide",
"cafe",
"salle_de_sport",
"pharmacie",
"opticien",
"coiffure",
"creche"
],
"type": "string",
"description": "Catégorie de commerce visée (voir l'enum)."
},
"territoire": {
"type": "string",
"description": "Département…"
},
"limite_communes": {
"type": "integer",
"maximum": 5,
"minimum": 1,
"description": "Communes candidates retenues de…"
},
"points_de_vente": {
"type": "array",
"items": {
"type": "object",
"required": [
"mode"
],
"properties": {
"km": {
"type": "number",
"maximum": 30,
"description": "Rayon en km, de 1 à 30…"
},
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"mode": {
"enum": [
"voiture",
"a_pied",
"velo",
"poids_lourd",
"rayon",
"isodistance",
"trace",
"admin"
],
"type": "string",
"description": "voiture, velo, poids_lourd : jusqu’à 45…"
},
"adresse": {
"type": "string"
},
"libelle": {
"type": "string"
},
"minutes": {
"type": "number",
"maximum": 45,
"minimum": 5,
"description": "Durée du trajet, de 5 à 45 (voiture) ou…"
},
"zone_tracee": {
"type": "object",
"description": "Mode trace : GeoJSON Polygon…"
},
"zone_administrative": {
"type": "object",
"description": "Mode admin : { type…"
}
}
},
"maxItems": 10,
"description": "2 à 10 points de vente déjà ouverts…"
}
}
}Obtenir un mémo, un dossier ou une étude en Word, ou un tableau en CSV / JSON, à imprimer ou envoyer : CRÉE UN FICHIER, rendu par lien de téléchargement signé et enregistré dans Mon espace pour les offres payantes. Lien signé à durée limitée. Entrée : outil + arguments (ré-exécuté) ou donnees ; document memo_second_avis, dossier ou etude en .docx.
| Argument | Type | Description |
|---|---|---|
| nom | string | Nom du fichier sans extension… |
| outil | string | Outil de lecture à ré-exécuter côté serveur… |
| titre | string | Avec docx dossier ou etude : titre du document… |
| format | string | csv… |
| adresse | string | |
| donnees | array | Lignes (objets) déjà obtenues d’un outil… |
| document | string | Avec format docx : memo_second_avis… |
| arguments | object | Arguments de cet outil… |
| cle_tableau | string | Chemin pointé du tableau à exporter dans le… |
| duree_minutes |
Combien coûte fiscalement un projet : taux de taxe foncière, taxe d'aménagement (communale, départementale, régionale, secteurs) et estimation à partir d'une surface. Entrée : code_insee (+ surface_taxable_m2 ou valeur locative pour une estimation). Ordres de grandeur, jamais un avis d'imposition.
| Argument | Type | Description |
|---|---|---|
| tsb | object | Taxe sur les bureaux, locaux commerciaux, de… |
| tss | object | Taxe annuelle sur les surfaces de stationnement… |
| annee | integer | Audit de taxe foncière : année d'imposition… |
| locaux | array | Audit de taxe foncière : locaux professionnels à… |
| profil | string | Profil de l'utilisateur. particulier… |
| regime | string | Régime des droits retenu comme retenu_eur… |
| type_bien | string | Ancien (droits du département) ou neuf… |
| code_insee* | string | |
| prix_revente_eur |
Où sont les friches d'une commune ou autour d'une adresse : sites, surface, zonage, pollution (Cartofriches). Adresse ou lat/lon + rayon_m, code_insee ou département ; plus de 1 ha par défaut. « Potentielle » = repérage automatique ; propriétaire à recouper avec toise_proprietaire. Source Cartofriches.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| type | string | Type de friche tel que publié par Cartofriches… |
| limite | integer | |
| statut | string | Statut de la friche. Facultatif. |
| adresse | string | |
| curseur | string | |
| rayon_m | number | |
| code_insee | string | |
| departement | string | |
Quelles sont les filiales et sociétés liées d'un groupe (« Vinci », « Bouygues », « Emerige ») ; patrimoine foncier d'un groupe et de ses filiales. Lien de DIRIGEANCE (SIREN), pas de détention ; homonymes à confirmer. avec_patrimoine pour le foncier. Vue complète d'un propriétaire en un appel : toise_owner_intelligence.
| Argument | Type | Description |
|---|---|---|
| nom | string | Nom du groupe ou de la société tête de groupe… |
| siren | string | |
| limite | integer | |
| profondeur | integer | 1 = sociétés dirigées directement par le groupe… |
| avec_patrimoine | boolean | Vrai : ajoute patrimoine_groupe, le patrimoine… |
{
"type": "object",
"properties": {
"nom": {
"type": "string",
"description": "Nom du groupe ou de la société tête de groupe…"
},
"siren": {
"type": "string"
},
"limite": {
"type": "integer",
"maximum": 300,
"minimum": 1
},
"profondeur": {
"type": "integer",
"maximum": 2,
"minimum": 1,
"description": "1 = sociétés dirigées directement par le groupe…"
},
"avec_patrimoine": {
"type": "boolean",
"description": "Vrai : ajoute patrimoine_groupe, le patrimoine…"
}
},
"additionalProperties": false
}Quelle est la rue autour d'une adresse : images de rue sous licence ouverte (Panoramax), avec date, distance et auteur. Couverture inégale ; une image proche n'est pas forcément la façade.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| limite | integer | |
| adresse | string | |
| joindre | integer | Nombre d’images dont les PIXELS sont joints à la… |
| rayon_m | number |
{
"type": "object",
"properties": {
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"limite": {
"type": "integer",
"maximum": 8,
"minimum": 1
},
"adresse": {
"type": "string"
},
"joindre": {
"type": "integer",
"maximum": 3,
"minimum": 0,
"description": "Nombre d’images dont les PIXELS sont joints à la…"
},
"rayon_m": {
"type": "number",
"maximum": 100,
"minimum": 5
}
},
"additionalProperties": false
}Quelle enseigne manque autour de ce point : concurrence et demande par catégorie de commerce dans la zone de chalandise. Catégorie obligatoire (voir l'enum). Source OpenStreetMap : en cas de SOURCE_INDISPONIBLE, ne pas relancer plus d'une fois ; se replier sur toise_etablissements_naf.
| Argument | Type | Description |
|---|---|---|
| km | number | Rayon en km, de 1 à 30 (rayon, isodistance). |
| lat | number | |
| lon | number | |
| mode* | string | voiture, velo, poids_lourd : jusqu’à 45 min… |
| limite | integer | |
| trafic | boolean | Ajouter le trafic routier… |
| adresse | string | |
| curseur | string | |
| minutes | number | Durée du trajet, de 5 à 45 (voiture) ou 30… |
| decalage |
Une commune est-elle en zone tendue, Pinel (ABC), PTZ ou déficitaire SRU : indicateurs RÉGLEMENTAIRES officiels, pas socio-économiques. Aussi densité INSEE et distance au QPV (avec une adresse). Pour population, revenus, prix ou vacance : toise_communes_cibles ou toise_comparer_zones. Gratuit, lecture seule.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| adresse | string | |
| code_insee | string |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"adresse": {
"type": "string"
},
"code_insee": {
"type": "string"
}
},
"additionalProperties": false
}Où en est l'assemblage de parcelles DÉJÀ identifiées pour une seule opération : contiguïté, unité foncière, sécurisation et sentiment propriétaire par parcelle. Entrée : parcelles (IDU) ou terrain_id. Depuis une adresse : d'abord toise_parcelles (rayon), puis cet outil.
| Argument | Type | Description |
|---|---|---|
| parcelles | array | Références de parcelles… |
| code_insee | string | |
| terrain_id | integer |
{
"type": "object",
"properties": {
"parcelles": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 12,
"minItems": 1,
"description": "Références de parcelles…"
},
"code_insee": {
"type": "string"
},
"terrain_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false
}Vérifier une liste de 1 à 20 adresses ou terrains d'un coup (sourcing en série) : un verdict par ligne. Offres payantes ; une étude décomptée par ligne traitée. Détail d'une ligne : toise_dossier_adresse.
| Argument | Type | Description |
|---|---|---|
| lignes* | array | 1 à 20 lignes : chacune une adresse, ou un point… |
| curseur | string | |
| simuler | boolean | true : annonce le coût et le quota restant, sans… |
{
"type": "object",
"required": [
"lignes"
],
"properties": {
"lignes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"adresse": {
"type": "string"
},
"section": {
"type": "string"
},
"reference": {
"type": "string",
"maxLength": 80
},
"code_insee": {
"type": "string"
},
"parcelle_id": {
"type": "string"
},
"numero_parcelle": {
"type": "string"
},
"surface_bati_m2": {
"type": "number",
"description": "Surface bâtie connue (m²), facultatif."
},
"prix_demande_eur": {
"type": "number"
}
}
},
"maxItems": 20,
"minItems": 1,
"description": "1 à 20 lignes : chacune une adresse, ou un point…"
},
"curseur": {
"type": "string"
},
"simuler": {
"type": "boolean",
"default": false,
"description": "true : annonce le coût et le quota restant, sans…"
}
},
"additionalProperties": false
}Où mailler un territoire : communes d'un département classées par population, parcelles et propriétaires personnes morales. Par departement. Filtrer toute la France sur revenu, prix ou vacance : toise_communes_cibles.
| Argument | Type | Description |
|---|---|---|
| limite | integer | |
| curseur | string | |
| decalage | integer | |
| code_insee | string | |
| departement | string | |
| inclure_public | boolean | Détenteurs d’une commune : inclure bailleurs… |
| population_max | number | Balayage : population maximale ; omettre pour ne… |
| population_min | number | Balayage : population minimale d’une commune… |
{
"type": "object",
"properties": {
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"curseur": {
"type": "string"
},
"decalage": {
"type": "integer",
"minimum": 0
},
"code_insee": {
"type": "string"
},
"departement": {
"type": "string"
},
"inclure_public": {
"type": "boolean",
"description": "Détenteurs d’une commune : inclure bailleurs…"
},
"population_max": {
"type": "number",
"description": "Balayage : population maximale ; omettre pour ne…"
},
"population_min": {
"type": "number",
"description": "Balayage : population minimale d’une commune…"
}
}
}Quelles sociétés dirige une personne physique précise : mandats SOCIAUX au registre national des entreprises (rien à voir avec des mandats de vente ou de location). Exige nom, prénom EXACTS et naissance (AAAA-MM, lue dans toise_societe). Compte requis ; aucune coordonnée. Annonces ou dossiers suivis du compte : toise_dealflow ou toise_suivis.
| Argument | Type | Description |
|---|---|---|
| nom* | string | Nom de famille exact, tel qu’au registre… |
| prenom* | string | Premier prénom exact (sans initiale ni joker). |
| curseur | string | |
| en_direct | boolean | Vrai : interroger le registre en direct… |
| naissance* | string | Mois et année de naissance publiés, AAAA-MM… |
{
"type": "object",
"required": [
"nom",
"prenom",
"naissance"
],
"properties": {
"nom": {
"type": "string",
"minLength": 2,
"description": "Nom de famille exact, tel qu’au registre…"
},
"prenom": {
"type": "string",
"minLength": 2,
"description": "Premier prénom exact (sans initiale ni joker)."
},
"curseur": {
"type": "string"
},
"en_direct": {
"type": "boolean",
"description": "Vrai : interroger le registre en direct…"
},
"naissance": {
"type": "string",
"pattern": "^(19|20)[0-9]{2}-(0[1-9]|1[0-2])$",
"description": "Mois et année de naissance publiés, AAAA-MM…"
}
}
}Préparer le dossier JSON d'un mémo Second Avis à partir d'une fiche adresse déjà analysée. Sortie volumineuse ; pour le .docx, toise_export (document memo_second_avis).
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| adresse | string | |
| section | string | |
| code_insee | string | |
| parcelle_id | string | |
| fiche_adresse | object | Fiche déjà obtenue… |
| bilan_operation | object | Résultat de toise_bilan_operation sur la même… |
| numero_parcelle | string | |
| surface_bati_m2 | number | Surface du bien (m²), prioritaire sur la surface… |
Quel est l'historique de mes recherches et l'activité de mon dealflow sur mon compte. Compte requis ; lecture seule du compte connecté.
No arguments.
{
"type": "object",
"required": [],
"properties": {}
}Altitude, pente, profil altimétrique et distances d'un terrain ou d'un tracé. Modes altitude, profil, mesure (longueur, aire), millesimes (photos aériennes IGN), autour (arrêts de transport). Ordres de grandeur, pas un relevé de géomètre.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| mode* | string | Lecture demandée : altitude, profil, mesure… |
| zoom | integer | Mode millesimes : niveau de zoom de la tuile… |
| trace | any | Modes profil et mesure : géométrie GeoJSON… |
| adresse | string | |
| inclure | array | Mode autour : trafic, arrets, ou les deux… |
| rayon_m | number | |
| polygone | boolean | Mode mesure avec un tableau de points : vrai pour… |
| echantillons |
Trouver des actifs qui correspondent à une stratégie d'investissement : criblage gratuit d'un département ou d'une commune, puis shortlist mesurée (30 candidats au plus). Pas un balayage exhaustif. Coût : une étude par candidat mesuré.
| Argument | Type | Description |
|---|---|---|
| code_insee | string | |
| departement | string | |
| budget_mesure | integer | Nombre de candidats mesurés (25 par défaut). |
| ticket_max_m2 | number | Doctrine (après mesure) : surface de terrain… |
| ticket_min_m2 | number | Doctrine (après mesure) : surface de terrain… |
| patrimoine_max | integer | Doctrine (pré-filtre) : taille maximale, pour… |
| patrimoine_min | integer | Doctrine (pré-filtre) : taille minimale du… |
| forme_juridique | string | Doctrine (pré-filtre) : forme juridique… |
| densification_min |
Où en est la négociation avec les propriétaires d'un terrain de mon portefeuille. Modes etat, vue, sentiment. Lecture seule.
| Argument | Type | Description |
|---|---|---|
| vue | string | |
| mode | string | |
| siren | string | |
| limite | integer | |
| curseur | string | |
| terrain_id* | integer |
{
"type": "object",
"required": [
"terrain_id"
],
"properties": {
"vue": {
"enum": [
"comprendre",
"negocier",
"verrouiller"
],
"type": "string",
"default": "negocier"
},
"mode": {
"enum": [
"etat",
"vue",
"sentiment"
],
"type": "string",
"default": "etat"
},
"siren": {
"type": "string"
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"curseur": {
"type": "string"
},
"terrain_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false
}À utiliser en priorité pour savoir qui est derrière un bien et ce qu'il possède d'autre : société, groupe, filiales, patrimoine, permis et BODACC en un appel. Remplace toise_proprietaire → patrimoine → groupe → bodacc. Entrée : adresse, parcelle, siren ou société.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| siren | string | |
| adresse | string | |
| section | string | |
| code_insee | string | |
| parcelle_id | string | |
| denomination | string | Dénomination de la société… |
| mois_signaux | integer | Fenêtre des signaux BODACC (annonces légales), en… |
| numero_parcelle | string |
Lister les parcelles cadastrales autour d'une adresse ou d'une section, avec leur surface et le propriétaire personne morale. Trois modes : rayon (adresse ou lat/lon + rayon_m, 40 à 400 m), sélection (parcelle_ids), commune (code_insee). Point de départ d'un assemblage : passer ensuite les identifiants à toise_land_assembly.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| limite | integer | |
| adresse | string | |
| curseur | string | |
| rayon_m | number | |
| section | string | |
| code_insee | string | |
| parcelle_ids | array | Sélection de 30 parcelles au plus : IDU sur 14… |
| adresse_confirmee | string | Adresse confirmée par l'utilisateur… |
Trouver les parcelles sous-exploitées d'une commune ou la fiche d'une parcelle : emprise utilisée face au PLU, logements en hypothèse, rang, verdict. Entrée : code_insee (3 meilleures fiches) ou une parcelle (section + numero_parcelle, ou adresse). Personnes morales seulement.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| mode | string | Défaut fiche. dents_creuses (avec code_insee)… |
| limite | integer | |
| adresse | string | |
| curseur | string | |
| prefixe | string | Préfixe de section (3 chiffres) pour une commune… |
| rayon_m | number | |
| section | string | |
| code_insee | string |
Combien de foncier possède cette société ou ce groupe en France : total national de locaux et parcelles, par département et par commune. Par siren ou nom ; parcelles=true pour la liste paginée. Personnes morales ; filiales non incluses (toise_groupe, ou toise_owner_intelligence pour tout en un appel).
| Argument | Type | Description |
|---|---|---|
| nom | string | Dénomination, ou son début (3 caractères minimum). |
| siren | string | |
| limite | integer | |
| curseur | string | |
| parcelles | boolean | Vrai : rend aussi la liste des parcelles… |
| code_insee | string | |
| departement | string |
{
"type": "object",
"properties": {
"nom": {
"type": "string",
"description": "Dénomination, ou son début (3 caractères minimum)."
},
"siren": {
"type": "string"
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"curseur": {
"type": "string"
},
"parcelles": {
"type": "boolean",
"description": "Vrai : rend aussi la liste des parcelles…"
},
"code_insee": {
"type": "string"
},
"departement": {
"type": "string"
}
}
}Tous les permis d'un promoteur ou d'une société (nom ou SIREN du demandeur), ou les permis de construire autour d'une adresse dans un rayon, avec logements et surfaces. Source Sitadel. Entrée : code_insee, lat/lon + rayon_m, siren_demandeur ou demandeur ; avec_filiales pour un groupe.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| depuis | string | Ne garder que les dossiers déposés à partir de… |
| limite | integer | |
| adresse | string | |
| curseur | string | |
| rayon_m | number | |
| section | string | |
| demandeur | string | Nom ou fragment de nom du demandeur… |
| code_insee | string | |
Vérifier que le connecteur TOISE répond et que le compte est reconnu, avant d'enchaîner sur une adresse, une parcelle ou une société. Ne consomme aucun quota.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Que sait-on d'un point ou d'une adresse : quelle parcelle, quel zonage du PLU, quels servitudes, risques et bâti autour. Gratuit, sans quota. Rend aussi taxes et indicateurs de la commune (Pinel, SRU, QPV). Ni propriétaires ni valeur (voir toise_dossier_adresse). Inutile avant un outil qui accepte déjà `adresse`.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| adresse | string | |
| section | string | |
| code_insee | string | |
| parcelle_id | string | |
| numero_parcelle | string | |
| adresse_confirmee | string | Adresse confirmée par l'utilisateur… |
| confirmer_adresse | boolean | true = l'utilisateur a confirmé l'adresse retenue… |
Quels commerces, écoles, transports et services autour d'une adresse (points d'intérêt dans un rayon). Rayon 50 à 2 000 m, OpenStreetMap (non exhaustif). Si SOURCE_INDISPONIBLE, une seule relance ; repli : toise_etablissements_naf, ou toise_mesures_terrain (mode autour) pour les transports.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| limite | integer | |
| adresse | string | |
| curseur | string | |
| rayon_m | number | |
| categories | array | Catégories demandées (toutes par défaut)… |
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"limite": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"adresse": {
"type": "string"
},
"curseur": {
"type": "string"
},
"rayon_m": {
"type": "number",
"maximum": 2000,
"minimum": 50
},
"categories": {
"type": "array",
"items": {
"enum": [
"commerces",
"ecoles",
"transports",
"loisirs",
"sante"
],
"type": "string"
},
"description": "Catégories demandées (toutes par défaut)…"
}
},
"additionalProperties": false
}Où en est mon portefeuille de terrains : liste, statuts, répartition. Modes liste, fiche, echeances, pipeline, etat_locatif (baux, WALT/WALB), transactions, valorisation (DCF, avis de valeur). Lecture seule.
| Argument | Type | Description |
|---|---|---|
| q | string | Texte (intitulé, adresse) ; etat_locatif : actif. |
| mode | string | Défaut liste ; fiche si terrain_id. |
| etape | string | |
| limite | integer | |
| statut | string | |
| commune | string | |
| curseur | string | |
| hypotheses | object | valorisation : taux_actualisation_pct… |
| terrain_id | integer |
{
"type": "object",
"properties": {
"q": {
"type": "string",
"description": "Texte (intitulé, adresse) ; etat_locatif : actif."
},
"mode": {
"enum": [
"liste",
"fiche",
"echeances",
"pipeline",
"etat_locatif",
"transactions",
"valorisation"
],
"type": "string",
"description": "Défaut liste ; fiche si terrain_id."
},
"etape": {
"enum": [
"a_contacter",
"contacte",
"en_discussion",
"refus",
"accord"
],
"type": "string"
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"statut": {
"enum": [
"a_valider",
"a_renseigner",
"prospection",
"pourparlers",
"negociation",
"signe",
"abandonne",
"signe_concurrent"
],
"type": "string"
},
"commune": {
"type": "string"
},
"curseur": {
"type": "string"
},
"hypotheses": {
"type": "object",
"description": "valorisation : taux_actualisation_pct…"
},
"terrain_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false
}Vérifier jusqu'à 50 adresses ou terrains d'un coup (sourcing en lot) : un score et un rang par actif. Offres payantes ; une étude par actif traité ; simuler: true annonce le coût.
| Argument | Type | Description |
|---|---|---|
| actifs* | array | 1 à 50 actifs : chacun une adresse, ou un point… |
| curseur | string | |
| simuler | boolean | true : annonce le coût et le quota restant, sans… |
{
"type": "object",
"required": [
"actifs"
],
"properties": {
"actifs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"lat": {
"type": "number"
},
"lon": {
"type": "number"
},
"adresse": {
"type": "string"
},
"reference": {
"type": "string",
"maxLength": 80
},
"valeur_eur": {
"type": "number",
"description": "Valeur/prix connu (€), facultatif…"
},
"surface_bati_m2": {
"type": "number",
"description": "Surface bâtie connue (m²), facultatif."
}
}
},
"maxItems": 50,
"minItems": 1,
"description": "1 à 50 actifs : chacun une adresse, ou un point…"
},
"curseur": {
"type": "string"
},
"simuler": {
"type": "boolean",
"default": false,
"description": "true : annonce le coût et le quota restant, sans…"
}
},
"additionalProperties": false
}Un immeuble de bureaux, un hôtel ou un commerce vaudrait-il plus reconverti : constructibilité, usages neufs comparés et bilan marchand de biens sur un bâtiment existant. Coût de conversion générique (700 €/m²) : ordre de grandeur à confirmer par devis.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| mode | string | Défaut redeveloppement… |
| detail | boolean | Défaut false : sortie résumée… |
| adresse | string | |
| section | string | |
| code_insee | string | |
| numero_parcelle | string | |
| lire_destinations | boolean | Défaut true : lit les destinations et le… |
| valeur_actuelle_eur | number |
Mon espace TOISE : les projets, analyses, BP, rapports et exports enregistrés par l'utilisateur dans son compte. Ne recense PAS les projets urbains ni les ZAC : voir toise_contraintes (ZAC/PUP) et toise_permis. data_room_id + question : réponse citée. Lecture seule.
| Argument | Type | Description |
|---|---|---|
| type | string | Filtrer par type d’élément. |
| theme | string | Filtrer par thème. |
| limite | integer | |
| projet | string | Identifiant du projet… |
| curseur | string | |
| question | string | Avec data_room_id : question posée à la data room… |
| data_room_id | string | Identifiant d’une data room du compte… |
{
"type": "object",
"properties": {
"type": {
"enum": [
"analyse_adresse",
"version_dossier",
"terrain_portefeuille",
"fiche_potentiel",
"rapport_reseau",
"rapport_concurrence",
"bp_exploitation",
"pre_analyse_bancaire",
"depot",
"data_room",
"export"
],
"type": "string",
"description": "Filtrer par type d’élément."
},
"theme": {
"enum": [
"foncier_urbanisme",
"marche",
"financier",
"documents",
"livrables"
],
"type": "string",
"description": "Filtrer par thème."
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"projet": {
"type": "string",
"description": "Identifiant du projet…"
},
"curseur": {
"type": "string"
},
"question": {
"type": "string",
"maxLength": 500,
"description": "Avec data_room_id : question posée à la data room…"
},
"data_room_id": {
"type": "string",
"description": "Identifiant d’une data room du compte…"
}
},
"additionalProperties": false
}Qui possède ce terrain, cet immeuble ou cette rue : les sociétés, SCI, bailleurs et collectivités propriétaires d'une adresse, d'une parcelle ou d'une commune. Personnes morales uniquement (DGFiP 2025), avec SIREN ; personnes physiques jamais nommées ; dirigeants issus du RNE. Entrée : adresse, lat/lon, parcelle_id, code_insee (+ section), siren. Patrimoine et groupe : toise_owner_intelligence.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| siren | string | |
| limite | integer | |
| adresse | string | |
| curseur | string | |
| section | string | |
| code_insee | string | |
| parcelle_id | string | |
| denomination | string |
Quelles valeurs sont acceptées par les outils TOISE : métiers, codes NAF, catégories, vocabulaire. Modes vocabulaire (métiers et clés de `choix` du bilan), criteres, categories, couverture, etude_partagee.
| Argument | Type | Description |
|---|---|---|
| mode* | string | Référentiel demandé : vocabulaire, criteres… |
| jeton | string | Mode etude_partagee : jeton du lien de partage… |
{
"type": "object",
"required": [
"mode"
],
"properties": {
"mode": {
"enum": [
"vocabulaire",
"criteres",
"categories",
"couverture",
"etude_partagee"
],
"type": "string",
"description": "Référentiel demandé : vocabulaire, criteres…"
},
"jeton": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{43}$",
"description": "Mode etude_partagee : jeton du lien de partage…"
}
},
"additionalProperties": false
}Que dit le règlement du PLU pour cette zone : règles sûres citées, autres valeurs en passages à lire. Règlement écrit du PLU/PLUi d'une zone (Géoportail de l'urbanisme) : hauteur, emprise, retrait, stationnement, pleine terre, mixité sociale, eaux pluviales, destinations (art. 1/2). Confiance élevée si zone exacte, article de zone, valeur unique sans condition ; sinon règle de la famille de zones (moyenne, hors calcul sans confirmer_regles_famille) ou passage à lire (article, page, extrait mot pour mot). Entrée : code_insee + zone, lat/lon ou adresse ; code_insee seul : zones. Ne lit pas : PDF numérisé, tableau en image, plan graphique. Pas un avis juridique.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| zone | string | Libellé de la zone au PLU (ex. « Uh », « UA », « 1AU »), tel que rendu par toise_urbanisme. |
| themes | array | Facultatif : limiter aux thèmes demandés (tous par défaut). |
| adresse | string | Adresse : la zone est lue au point d’adresse (PLUi compris). |
| programme | object | Places : logements, bureaux_m2, commerce_m2, entrepot_m2… |
| code_insee | string | Code INSEE de la commune. Avec zone. Alias : insee, code_commune. |
Bureaux : quels loyers au m² publiés par les conseils (CBRE, Cushman & Wakefield, BNP Paribas RE, Immostat) pour une commune, avec source et date. Fourchettes par secteur, loyer prime ; jamais le loyer d'un bien précis.
| Argument | Type | Description |
|---|---|---|
| commune* | string | |
| code_postal | string |
{
"type": "object",
"required": [
"commune"
],
"properties": {
"commune": {
"type": "string",
"minLength": 2
},
"code_postal": {
"type": "string"
}
},
"additionalProperties": false
}Mon réseau : mes points privés (CSV d'adresses) rattachés aux zones, et les IRIS ou communes qui ressemblent à mes meilleurs sites. Actions importer (BAN), lister, supprimer un lot, rattacher (format toise_zone_chalandise), similaires (7 indicateurs INSEE, écarts expliqués). Compte requis.
| Argument | Type | Description |
|---|---|---|
| csv | string | Colonne adresse ; libelle, cp, ville facultatifs. |
| lot | string | |
| zones | array | |
| action* | string | |
| limite | integer | |
| niveau | string | |
| references | array | Adresses des sites (défaut : le lot). |
| departements | array |
{
"type": "object",
"required": [
"action"
],
"properties": {
"csv": {
"type": "string",
"description": "Colonne adresse ; libelle, cp, ville facultatifs."
},
"lot": {
"type": "string"
},
"zones": {
"type": "array",
"items": {
"type": "object"
}
},
"action": {
"enum": [
"importer",
"lister",
"rattacher",
"similaires",
"supprimer"
],
"type": "string"
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"niveau": {
"enum": [
"iris",
"commune"
],
"type": "string"
},
"references": {
"type": "array",
"items": {
"type": "object"
},
"description": "Adresses des sites (défaut : le lot)."
},
"departements": {
"type": "array",
"items": {
"type": "string"
}
}
}
}Quelle est la solidité d'une enseigne avant un bail ou un prêt : liquidations d'exploitants, parc réel, ouvertures, fonds propres. Par enseigne exacte ou sirens. Un axe non mesurable est dit « non mesuré », jamais simulé.
| Argument | Type | Description |
|---|---|---|
| naf | string | Code NAF complet pour restreindre la recherche… |
| sirens | array | Liste de SIREN d'exploitants (40 au plus) : TOISE… |
| enseigne | string | Enseigne ou dénomination exacte (ex. |
| annonce_marque | object | Chiffre annoncé par la marque, relevé par le… |
| annee_lancement | integer | Année de lancement de la franchise annoncée, pour… |
| franchiseur_siren | string | SIREN de la société franchiseur (axe 9) : fourni… |
{
"type": "object",
"properties": {
"naf": {
"type": "string",
"description": "Code NAF complet pour restreindre la recherche…"
},
"sirens": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 40,
"description": "Liste de SIREN d'exploitants (40 au plus) : TOISE…"
},
"enseigne": {
"type": "string",
"maxLength": 80,
"minLength": 3,
"description": "Enseigne ou dénomination exacte (ex."
},
"annonce_marque": {
"type": "object",
"required": [
"nombre",
"source_url",
"date"
],
"properties": {
"date": {
"type": "string",
"description": "Date du relevé AAAA-MM-JJ."
},
"nombre": {
"type": "integer",
"minimum": 1,
"description": "Nombre de points de vente annoncés."
},
"phrase": {
"type": "string",
"description": "Phrase relevée, sans retouche."
},
"perimetre": {
"type": "string",
"description": "Périmètre de l’annonce (ex. France)."
},
"source_url": {
"type": "string",
"description": "Adresse de la page où le chiffre a été…"
}
},
"description": "Chiffre annoncé par la marque, relevé par le…",
"additionalProperties": false
},
"annee_lancement": {
"type": "integer",
"maximum": 2100,
"minimum": 1900,
"description": "Année de lancement de la franchise annoncée, pour…"
},
"franchiseur_siren": {
"type": "string",
"description": "SIREN de la société franchiseur (axe 9) : fourni…"
}
},
"additionalProperties": false
}Quels risques naturels et technologiques touchent cette adresse ou cette commune : inondation, argiles, cavités, radon, sites pollués. Recensement Géorisques : risques de la commune, argiles, sismicité, ICPE à 2 km, Littoral. Déjà inclus dans toise_contraintes : ne pas cumuler sans besoin. Une absence de ligne n'est pas une absence de risque.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| adresse | string | |
| code_insee | string |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"adresse": {
"type": "string"
},
"code_insee": {
"type": "string"
}
},
"additionalProperties": false
}Bureaux, logement, commerce, logistique ou hôtel : quel programme peut payer le mieux le foncier sur ce terrain. Entrée : surface_plancher_m2 (+ prix_demande ; code_insee et section pour caler le logement sur DVF). Aide à la décision, pas un conseil.
| Argument | Type | Description |
|---|---|---|
| mode | string | Défaut terrain. batiment_existant… |
| zone | string | Zone du PLU (recopiée, sans effet sur le calcul). |
| choix | object | Substitutions par programme, ex. { "bureaux": {… |
| section | string | |
| code_insee | string | |
| destinations | object | Champ `destinations` rendu par… |
| prix_demande | number | Prix demandé du terrain, en euros, pour rendre le… |
| ecart_rendement_bps | number | Écart de rendement exigé sur coût pour les… |
| marge_promoteur_pct | number | Marge du promoteur pour les programmes de vente… |
Que propose l'IA sur un terrain de mon portefeuille : sentiment d'un propriétaire, brouillon d'accord, résumé — jamais enregistré. Modes sentiment, brouillon, resume ; rien n'est enregistré.
| Argument | Type | Description |
|---|---|---|
| mode* | string | |
| siren | string | |
| terrain_id* | integer |
{
"type": "object",
"required": [
"mode",
"terrain_id"
],
"properties": {
"mode": {
"enum": [
"sentiment",
"brouillon",
"resume"
],
"type": "string"
},
"siren": {
"type": "string"
},
"terrain_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false
}Quels locaux détient une société en difficulté : sociétés en procédure collective croisées avec leur foncier, pour repérer des opportunités. Entrée departement (procédures collectives × foncier) ou code_insee (propriétaires × BODACC). En mode commune, les premiers sont souvent des bailleurs sociaux : pour des terrains sous-exploités, toise_parcelles_potentiel ou toise_criblage.
| Argument | Type | Description |
|---|---|---|
| mois | integer | Fenêtre en mois… |
| limite | integer | |
| profil | string | prive : écarte bailleurs sociaux, public… |
| adresse | string | |
| curseur | string | |
| communes | array | Avec departement : codes INSEE (12 au plus)… |
| parcelle | string | |
| categories | array | Avec departement : situations retenues ; par… |
| code_insee | string | |
Qui est cette société : fiche, dirigeants publiés au registre, établissements, comptes et annonces légales, à partir d'un nom ou d'un SIREN. Par siren (fiche, dirigeants, BODACC) ou par nom (candidats, sans choisir). Aucune coordonnée. Mandats d'une personne : toise_mandats ; filiales : toise_groupe.
| Argument | Type | Description |
|---|---|---|
| nom | string | Nom… |
| voie | string | Nom de la voie (ex. rue de la Paix). |
| siren | string | |
| bodacc | boolean | Fiche par siren : joindre le résumé des annonces… |
| limite | integer | |
| adresse | string | |
| curseur | string | |
| dirigeants | boolean | Fiche par siren : joindre les dirigeants… |
| code_postal | string | |
| numero_voie | string |
Surveiller ou suivre des adresses : les adresses et zones DÉJÀ suivies sur le compte et leurs alertes (lecture seule ; créer une veille : toiseai.com/compte). Sections synthese, biens, equipe.
| Argument | Type | Description |
|---|---|---|
| id | integer | Section recherches : fiche d'une recherche. |
| type | string | Section recherches : carte ou portefeuille. |
| limite | integer | |
| curseur | string | |
| origine | string | Section alertes : événements des veilles (biens)… |
| section | string | |
| id_apres | integer | Section comparaison : identifiant de la version… |
| id_avant | integer | Section comparaison : identifiant de la version… |
| non_lues | boolean | Section notifications : seulement les non lues. |
| reference |
Analyser un teaser ou un mémorandum d'investissement collé en texte : prix, loyer, rendement, durée ferme, chaque valeur avec son extrait. Confronte à la doctrine du compte (prioritaire, à examiner, hors cible). Lecture seule. Vérifier ses affirmations : toise_deal_verify ; enchaîner adresse et bilan : toise_acquisition.
| Argument | Type | Description |
|---|---|---|
| texte* | string | Texte du teaser collé (40 à 60 000 caractères). |
| doctrine | object | Critères de la doctrine, tous facultatifs… |
| doctrine_id | integer |
{
"type": "object",
"required": [
"texte"
],
"properties": {
"texte": {
"type": "string",
"maxLength": 60000,
"minLength": 40,
"description": "Texte du teaser collé (40 à 60 000 caractères)."
},
"doctrine": {
"type": "object",
"properties": {
"intitule": {
"type": "string"
},
"walb_min": {
"type": "number"
},
"ticket_max": {
"type": "number"
},
"ticket_min": {
"type": "number"
},
"typologies": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20
},
"prix_m2_max": {
"type": "number"
},
"vacance_max": {
"type": "number"
},
"rendement_min": {
"type": "number"
}
},
"description": "Critères de la doctrine, tous facultatifs…"
},
"doctrine_id": {
"type": "integer",
"minimum": 1
}
},
"additionalProperties": false
}Que peut-on construire sur ce terrain : zone du PLU, hauteur, emprise, retraits et surface de plancher possible, en fourchette (à Paris, avec la cote du plafond des hauteurs). Entrée : adresse, lat/lon ou parcelles. Fourchette retrait/alignement, chaque valeur avec son origine ; hypothèses modifiables (hauteur_m, emprise_au_sol_pct…). Texte du règlement : toise_reglement_plu ; servitudes : toise_contraintes.
| Argument | Type | Description |
|---|---|---|
| lat | number | |
| lon | number | |
| projet | object | Cerfa, délais : type… |
| adresse | string | |
| niveaux | number | Nombre de niveaux, facultatif ; déduit de la… |
| section | string | |
| batiments | boolean | true : ajoute la fiche des bâtiments existants… |
| geometrie | boolean | true : ajoute la géométrie GeoJSON des parcelles… |
| hauteur_m | number | Hypothèse de hauteur maximale en mètres… |
Quels intitulés et ratios usuels pour un business plan d'exploitation hôtelière : RevPAR, GOP, EBITDA, commissions OTA. Ratios = hypothèses tirées de deux dossiers, pas des moyennes de marché.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Quelles sont les zones du PLU d'une commune entière (U, AU, A, N) et où trouver leur règlement. Liste paginée, filtre type_zone. Règles d'une parcelle : toise_urbanisme. Ne rend ni règlement ni servitudes.
| Argument | Type | Description |
|---|---|---|
| limite | integer | |
| curseur | string | |
| type_zone | string | Ne garder que ce type de zone. |
| code_insee* | string |
{
"type": "object",
"required": [
"code_insee"
],
"properties": {
"limite": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"curseur": {
"type": "string"
},
"type_zone": {
"enum": [
"U",
"AU",
"A",
"N"
],
"type": "string",
"description": "Ne garder que ce type de zone."
},
"code_insee": {
"type": "string"
}
}
}Combien d'habitants et quelle concurrence à 10 minutes de ce point : zone de chalandise en voiture, à pied ou en rayon, population, revenus, entreprises. Modes voiture, a_pied, velo, poids_lourd, rayon, isodistance, trace, admin. Entreprises Sirene, habitants INSEE, revenus Filosofi, trafic, transports. Plusieurs adresses : toise_comparer_zones (un seul appel).
| Argument | Type | Description |
|---|---|---|
| km | number | Rayon en km, de 1 à 30 (rayon, isodistance). |
| lat | number | |
| lon | number | |
| mode* | string | voiture, velo, poids_lourd : jusqu’à 45 min… |
| besoin | string | Besoin métier du commerce… |
| ca_min | number | Chiffre d’affaires minimal en euros. |
| detail | boolean | Défaut false : sortie résumée… |
| limite | integer | |
| profil | string | Profil de cible NAF (restaurant, boulangerie…)… |
We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 12, 2026.
| doctrine_id | integer |
| parcelle_id | string |
| prix_terrain | number | Prix d’acquisition imposé pour le bilan. |
| numero_parcelle | string |
| surface_bati_m2 | number | Surface bâtie vendue (m²), utilisée pour… |
| prix_demande_eur | number |
| surface_plancher_m2 | number |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"choix": {
"type": "object",
"description": "Hypothèses du bilan…"
},
"texte": {
"type": "string",
"maxLength": 60000,
"minLength": 40,
"description": "Texte du teaser collé (40 à 60 000 caractères)."
},
"metier": {
"enum": [
"vefa",
"cpi",
"marchand",
"locatif"
],
"type": "string",
"default": "locatif",
"description": "vefa : Promotion en VEFA — acheter, construire…"
},
"adresse": {
"type": "string"
},
"section": {
"type": "string"
},
"doctrine": {
"type": "object",
"properties": {
"intitule": {
"type": "string"
},
"walb_min": {
"type": "number"
},
"ticket_max": {
"type": "number"
},
"ticket_min": {
"type": "number"
},
"typologies": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20
},
"prix_m2_max": {
"type": "number"
},
"vacance_max": {
"type": "number"
},
"rendement_min": {
"type": "number"
}
},
"description": "Critères de la doctrine (voir toise_teaser)."
},
"typologie": {
"type": "string",
"description": "Typologie de l’actif…"
},
"code_insee": {
"type": "string"
},
"doctrine_id": {
"type": "integer",
"minimum": 1
},
"parcelle_id": {
"type": "string"
},
"prix_terrain": {
"type": "number",
"minimum": 0.01,
"description": "Prix d’acquisition imposé pour le bilan."
},
"numero_parcelle": {
"type": "string"
},
"surface_bati_m2": {
"type": "number",
"minimum": 0.01,
"description": "Surface bâtie vendue (m²), utilisée pour…"
},
"prix_demande_eur": {
"type": "number",
"minimum": 0.01
},
"surface_plancher_m2": {
"type": "number",
"minimum": 0.01
}
},
"additionalProperties": false
}| travaux |
| number |
| Travaux à prévoir, en euros. |
| localiser | string |
| tri_cible | number | TRI cible pour le prix maximum (défaut 0.15). |
| typologie | string | Type de bien si le texte ne le dit pas clairement… |
| code_insee | string |
| duree_mois | integer | Résidentiel : portage jusqu'à la revente, mois… |
| surface_m2 | number | Surface en m². |
| taux_dette | number | Taux de la dette, fraction… |
| travaux_m2 | number | Résidentiel : budget travaux €/m²… |
| departement | string |
| notaire_pct | number | Résidentiel : notaire hors droits, fraction du… |
| vacance_pct | number | Vacance structurelle (défaut 0.05). |
| regime_droits | string | Résidentiel : droits marchand 0,715 % (défaut) ou… |
| honoraires_pct | number | Frais d'acquisition, fraction du prix… |
| cap_rate_sortie | number | Cap rate de sortie du scénario base (défaut 0.09)… |
| decote_etat_pct | number | Résidentiel : décote de revente en l'état vs… |
| frais_vente_pct | number | Frais de revente (défaut 0.03). |
| loyer_annuel_ht | number | Loyer annuel hors taxes en euros… |
| marge_cible_pct | number | Résidentiel : marge cible sur coût total pour le… |
| prix_m2_revente | number | Résidentiel : votre prix de revente rénové au m²… |
| croissance_loyer | number | Croissance annuelle des loyers (défaut 0.02). |
| charges_annuelles | number | Charges annuelles non récupérables, en euros. |
| frais_dossier_pct | number | Résidentiel : frais de dossier sur la dette… |
| frais_gestion_pct | number | Frais de gestion, fraction des loyers… |
| surface_terrain_m2 | number | Localisation : surface du terrain, si mal lue. |
| duree_detention_ans | integer | Durée retenue pour la synthèse (défaut 5). |
| amortissement_annees | integer | Durée d'amortissement en années (défaut 15). |
| marge_prudence_taux_pts | number | Marge de prudence ajoutée au taux Banque de… |
| charges_detention_pct_an | number | Résidentiel : charges de détention, fraction du… |
{
"type": "object",
"required": [
"texte"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"ltv": {
"type": "number",
"maximum": 0.9,
"description": "Quotité de financement, fraction (défaut 0.60)."
},
"etat": {
"enum": [
"a_renover",
"a_rafraichir",
"bon_etat"
],
"type": "string",
"description": "Résidentiel : état du bien, si mal lu…"
},
"prix": {
"type": "number",
"description": "Prix de vente net vendeur en euros, si le texte…"
},
"texte": {
"type": "string",
"maxLength": 12000,
"minLength": 40,
"description": "Texte complet de l'annonce…"
},
"adresse": {
"type": "string"
},
"nb_lots": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Résidentiel : nombre de lots, si mal lu."
},
"rayon_m": {
"type": "number",
"maximum": 5000,
"minimum": 50
},
"travaux": {
"type": "number",
"description": "Travaux à prévoir, en euros."
},
"localiser": {
"enum": [
"oui",
"seul"
],
"type": "string"
},
"tri_cible": {
"type": "number",
"maximum": 0.5,
"minimum": 0.01,
"description": "TRI cible pour le prix maximum (défaut 0.15)."
},
"typologie": {
"type": "string",
"description": "Type de bien si le texte ne le dit pas clairement…"
},
"code_insee": {
"type": "string"
},
"duree_mois": {
"type": "integer",
"maximum": 60,
"minimum": 1,
"description": "Résidentiel : portage jusqu'à la revente, mois…"
},
"surface_m2": {
"type": "number",
"description": "Surface en m²."
},
"taux_dette": {
"type": "number",
"maximum": 0.2,
"description": "Taux de la dette, fraction…"
},
"travaux_m2": {
"type": "number",
"description": "Résidentiel : budget travaux €/m²…"
},
"departement": {
"type": "string"
},
"notaire_pct": {
"type": "number",
"maximum": 0.1,
"description": "Résidentiel : notaire hors droits, fraction du…"
},
"vacance_pct": {
"type": "number",
"maximum": 0.5,
"description": "Vacance structurelle (défaut 0.05)."
},
"regime_droits": {
"enum": [
"marchand",
"ancien"
],
"type": "string",
"description": "Résidentiel : droits marchand 0,715 % (défaut) ou…"
},
"honoraires_pct": {
"type": "number",
"maximum": 0.2,
"description": "Frais d'acquisition, fraction du prix…"
},
"cap_rate_sortie": {
"type": "number",
"maximum": 0.2,
"minimum": 0.03,
"description": "Cap rate de sortie du scénario base (défaut 0.09)…"
},
"decote_etat_pct": {
"type": "number",
"maximum": 0.6,
"description": "Résidentiel : décote de revente en l'état vs…"
},
"frais_vente_pct": {
"type": "number",
"maximum": 0.1,
"description": "Frais de revente (défaut 0.03)."
},
"loyer_annuel_ht": {
"type": "number",
"description": "Loyer annuel hors taxes en euros…"
},
"marge_cible_pct": {
"type": "number",
"maximum": 1,
"description": "Résidentiel : marge cible sur coût total pour le…"
},
"prix_m2_revente": {
"type": "number",
"minimum": 100,
"description": "Résidentiel : votre prix de revente rénové au m²…"
},
"croissance_loyer": {
"type": "number",
"maximum": 0.1,
"minimum": -0.05,
"description": "Croissance annuelle des loyers (défaut 0.02)."
},
"charges_annuelles": {
"type": "number",
"description": "Charges annuelles non récupérables, en euros."
},
"frais_dossier_pct": {
"type": "number",
"maximum": 0.05,
"description": "Résidentiel : frais de dossier sur la dette…"
},
"frais_gestion_pct": {
"type": "number",
"maximum": 0.3,
"description": "Frais de gestion, fraction des loyers…"
},
"surface_terrain_m2": {
"type": "number",
"description": "Localisation : surface du terrain, si mal lue."
},
"duree_detention_ans": {
"enum": [
3,
5
],
"type": "integer",
"description": "Durée retenue pour la synthèse (défaut 5)."
},
"amortissement_annees": {
"type": "integer",
"maximum": 30,
"minimum": 1,
"description": "Durée d'amortissement en années (défaut 15)."
},
"marge_prudence_taux_pts": {
"type": "number",
"maximum": 3,
"description": "Marge de prudence ajoutée au taux Banque de…"
},
"charges_detention_pct_an": {
"type": "number",
"maximum": 0.1,
"description": "Résidentiel : charges de détention, fraction du…"
}
}
}| ebitda_pct |
| number |
| programmes | array | Programme ou mélange de programmes… |
| terrain_m2 | number | Pré-analyse VEFA/CPI : surface du terrain… |
| nb_chambres | number |
| travaux_eur | number | Pré-analyse : budget travaux total, en euros. |
| personnel_an | number |
| prix_terrain | number | Prix du terrain ou de l’acquisition, en euros… |
| devis_travaux | boolean | Pré-analyse : vrai si les travaux sont couverts… |
| dpe_etiquette | string | Pré-analyse : étiquette DPE déclarée du bien. |
| fonds_propres | number | Apport en fonds propres, en euros. |
| loyer_m2_mois | number | Pré-analyse locatif : loyer en €/m²/mois. |
| prix_moyen_ht | number |
| places_prevues | number | Pré-analyse : places de stationnement prévues au… |
| prix_revente_m2 | number | Marchand : prix de revente au m² visé. |
| taux_credit_pct | number | Pré-analyse locatif : taux du crédit en %. |
| chiffre_affaires | number |
| duree_credit_ans | number | Durée du crédit en années… |
| siren_emprunteur | string | SIREN emprunteur : ses comptes publics. |
| revente_visee_eur | number | Pré-analyse : prix de revente visé total, en… |
| budget_copropriete | number | Pré-analyse : budget de division ou de création… |
| surface_plancher_m2 | number |
| taux_occupation_pct | number |
| frais_acquisition_pct | number | Pré-analyse : frais d’acquisition en % du prix… |
| repere_travaux_eur_m2 | number | Pré-analyse : repère de travaux en €/m² à la… |
| marge_prudence_taux_pts | number | Marge de prudence ajoutée au taux Banque de… |
| precommercialisation_pct | number | VEFA : part déjà réservée, en %. |
{
"type": "object",
"required": [
"metier"
],
"properties": {
"choix": {
"type": "object",
"description": "Hypothèses imposées au bilan…"
},
"ebitda": {
"type": "number"
},
"metier": {
"enum": [
"vefa",
"cpi",
"marchand",
"locatif",
"exploitation"
],
"type": "string",
"description": "vefa : Promotion en vente en l’état futur…"
},
"adresse": {
"type": "string",
"maxLength": 200
},
"nb_lots": {
"type": "number",
"maximum": 500,
"description": "Pré-analyse : nombre de lots créés ou vendus…"
},
"loyer_an": {
"type": "number"
},
"operation": {
"type": "string",
"maxLength": 120,
"description": "Pré-analyse : libellé de l’opération…"
},
"type_bien": {
"enum": [
"appartement",
"maison"
],
"type": "string",
"description": "Pré-analyse : type de bien pour les ventes…"
},
"duree_mois": {
"type": "number",
"maximum": 240,
"description": "Durée de l’opération, en mois…"
},
"ebitda_pct": {
"type": "number"
},
"programmes": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"part"
],
"properties": {
"code": {
"type": "string"
},
"part": {
"type": "number",
"maximum": 1
}
}
},
"maxItems": 20,
"description": "Programme ou mélange de programmes…"
},
"terrain_m2": {
"type": "number",
"description": "Pré-analyse VEFA/CPI : surface du terrain…"
},
"nb_chambres": {
"type": "number"
},
"travaux_eur": {
"type": "number",
"description": "Pré-analyse : budget travaux total, en euros."
},
"personnel_an": {
"type": "number"
},
"prix_terrain": {
"type": "number",
"description": "Prix du terrain ou de l’acquisition, en euros…"
},
"devis_travaux": {
"type": "boolean",
"description": "Pré-analyse : vrai si les travaux sont couverts…"
},
"dpe_etiquette": {
"enum": [
"A",
"B",
"C",
"D",
"E",
"F",
"G"
],
"type": "string",
"description": "Pré-analyse : étiquette DPE déclarée du bien."
},
"fonds_propres": {
"type": "number",
"description": "Apport en fonds propres, en euros."
},
"loyer_m2_mois": {
"type": "number",
"description": "Pré-analyse locatif : loyer en €/m²/mois."
},
"prix_moyen_ht": {
"type": "number"
},
"places_prevues": {
"type": "number",
"description": "Pré-analyse : places de stationnement prévues au…"
},
"prix_revente_m2": {
"type": "number",
"description": "Marchand : prix de revente au m² visé."
},
"taux_credit_pct": {
"type": "number",
"maximum": 20,
"description": "Pré-analyse locatif : taux du crédit en %."
},
"chiffre_affaires": {
"type": "number"
},
"duree_credit_ans": {
"type": "number",
"maximum": 40,
"description": "Durée du crédit en années…"
},
"siren_emprunteur": {
"type": "string",
"description": "SIREN emprunteur : ses comptes publics."
},
"revente_visee_eur": {
"type": "number",
"description": "Pré-analyse : prix de revente visé total, en…"
},
"budget_copropriete": {
"type": "number",
"description": "Pré-analyse : budget de division ou de création…"
},
"surface_plancher_m2": {
"type": "number"
},
"taux_occupation_pct": {
"type": "number"
},
"frais_acquisition_pct": {
"type": "number",
"maximum": 20,
"description": "Pré-analyse : frais d’acquisition en % du prix…"
},
"repere_travaux_eur_m2": {
"type": "number",
"minimum": 50,
"description": "Pré-analyse : repère de travaux en €/m² à la…"
},
"marge_prudence_taux_pts": {
"type": "number",
"maximum": 3,
"description": "Marge de prudence ajoutée au taux Banque de…"
},
"precommercialisation_pct": {
"type": "number",
"maximum": 100,
"description": "VEFA : part déjà réservée, en %."
}
},
"additionalProperties": false
}| number |
| prix_moyen_ht | number |
| chiffre_affaires | number |
| duree_credit_ans | number | Durée du crédit en années : fixe l’amortissement… |
| prix_acquisition | number | Prix d’acquisition (murs, fonds ou les deux), en… |
| ca_restauration_ht | number | Chiffre d’affaires annuel de restauration/bar HT… |
| taux_occupation_pct | number |
| taux_capitalisation_pct | number | Taux de capitalisation visé, en % : valeur… |
{
"type": "object",
"properties": {
"zone": {
"enum": [
"Paris",
"grandes métropoles",
"autres"
],
"type": "string",
"description": "Localisation de l’hôtel : Paris, grandes…"
},
"choix": {
"type": "object",
"description": "Hypothèses de financement et de sortie…"
},
"jours": {
"type": "integer",
"maximum": 366,
"minimum": 1,
"description": "Jours d’ouverture (365 par défaut)."
},
"ebitda": {
"type": "number"
},
"ratios": {
"type": "object",
"description": "Ratios de charges imposés…"
},
"loyer_an": {
"type": "number"
},
"ebitda_pct": {
"type": "number",
"maximum": 100
},
"ffe_pct_ca": {
"type": "number",
"maximum": 30,
"description": "Réserve FF&E en % du chiffre d’affaires…"
},
"nb_chambres": {
"type": "number",
"maximum": 5000
},
"personnel_an": {
"type": "number"
},
"prix_moyen_ht": {
"type": "number"
},
"chiffre_affaires": {
"type": "number"
},
"duree_credit_ans": {
"type": "number",
"maximum": 40,
"description": "Durée du crédit en années : fixe l’amortissement…"
},
"prix_acquisition": {
"type": "number",
"description": "Prix d’acquisition (murs, fonds ou les deux), en…"
},
"ca_restauration_ht": {
"type": "number",
"description": "Chiffre d’affaires annuel de restauration/bar HT…"
},
"taux_occupation_pct": {
"type": "number",
"maximum": 100,
"minimum": 0.1
},
"taux_capitalisation_pct": {
"type": "number",
"maximum": 30,
"minimum": 0.5,
"description": "Taux de capitalisation visé, en % : valeur…"
}
},
"additionalProperties": false
}| zone_abc | string | VEFA : zonage ABC de la commune… |
| hauteur_m | number | Hypothèse de hauteur maximale (m) pour la surface… |
| montana_a | number | Coefficient de Montana a… |
| montana_b | number | Coefficient de Montana b. |
| retrait_m | number | Hypothèse de retrait (m) pour la surface… |
| code_insee | string |
| ebitda_pct | number |
| programmes | array | Programme, ou mélange… |
| terrain_nu | boolean | Locatif : le bien est un terrain nu… |
| destination | string | Destination du programme pour le règlement écrit. |
| nb_chambres | number |
| parcelle_id | string |
| nb_logements | number | Avec avec_contraintes_plu : nombre de logements… |
| personnel_an | number |
| prix_terrain | number | Prix du terrain ou de l’acquisition, en euros… |
| taux_sru_pct | number | VEFA : taux de logements sociaux de la commune… |
| prix_moyen_ht | number |
| type_logement | string | Locatif résidentiel avec code_insee : série de la… |
| programme_neuf | boolean | Locatif : programme à construire (neuf). |
| region_montana | string | Région de pluie du terrain selon la carte de… |
| tva_social_pct | number | VEFA : TVA sur la part sociale, en %. |
| type_retention | string | Ouvrage de rétention : chiffre le volume estimé… |
| numero_parcelle | string |
| avec_sensibilite | boolean | Rend `sensibilite`… |
| chiffre_affaires | number |
| cout_paysager_m2 | number | Coût paysager de la pleine terre (€/m²)… |
| duree_credit_ans | number | Durée du crédit en années… |
| hauteur_niveau_m | number | Hauteur d’un niveau (m, défaut 3) pour la surface… |
| objectif_sru_pct | number | VEFA : objectif SRU de la commune (20 ou 25 %)… |
| adresse_confirmee | string | Adresse confirmée par l'utilisateur… |
| confirmer_adresse | boolean | true = l'utilisateur a confirmé l'adresse retenue… |
| tva_abordable_pct | number | VEFA : TVA sur la part abordable, en %. |
| avec_flux_mensuels | boolean | Rend `flux_mensuels`… |
| caler_prix_sur_dvf | boolean | VEFA et marchand (prix de revente) : cale le prix… |
| couts_construction | object | Grille de coûts indexée ICC : type_ouvrage… |
| emprise_au_sol_pct | number | Hypothèse d’emprise au sol (%) pour la surface… |
| mixite_sociale_pct | number | VEFA : part imposée par une servitude de mixité… |
| situation_pluviale | string | Zone du zonage pluvial du terrain quand le… |
| surface_louable_m2 | number | Locatif : surface LOUABLE imposée (m²). |
| surface_terrain_m2 | number | Surface du terrain (m²) ; défaut : géométrie… |
| type_stationnement | string | Réponse à la question stationnement : ajoute un… |
| emprise_projetee_m2 | number | Emprise au sol projetée (m²). |
| surface_plancher_m2 | number |
| taux_occupation_pct | number |
| appliquer_delais_plu | boolean | Défaut false : aucun délai ajouté. true, avec… |
| avec_contraintes_plu | boolean | Défaut false : bilan inchangé. true, avec… |
| dispositif_abordable | string | VEFA : libellé du dispositif… |
| lire_reglement_ecrit | boolean | Avec avec_contraintes_plu : lit le règlement… |
| taxe_amenagement_eur | number | VEFA : montant de la taxe d'aménagement + taxe… |
| cout_retention_eur_m3 | number | Coût de rétention (€/m³) remplaçant l’ordre de… |
| appliquer_surcouts_plu | boolean | Défaut false. |
| programme_destinations | array | Programme mixte : une entrée par destination… |
| marge_prudence_taux_pts | number | Locatif, exploitation : marge de prudence ajoutée… |
| nb_places_stationnement | number | Nombre de places prévues, comparé au minimum ou… |
| situation_stationnement | string | Situation du terrain quand le règlement en… |
| surface_construction_m2 | number | Avec avec_contraintes_plu (vefa) : surface de… |
| confirmer_regles_famille | boolean | Défaut false. |
| part_logement_social_pct | number | VEFA (promotion résidentielle) : part de la… |
| surface_abattement_ta_m2 | number | Part de surface_construction_m2 qui bénéficie de… |
| prix_cession_social_m2_ttc | number | VEFA : prix de cession au bailleur social, en €… |
| surface_impermeabilisee_m2 | number | Surface imperméabilisée projetée… |
| confirmer_surface_urbanisme | boolean | Défaut false. |
| part_logement_abordable_pct | number | VEFA : part de la surface habitable cédée en… |
| cout_place_stationnement_eur | number | Avec type_stationnement : coût par place (€) qui… |
| prix_cession_abordable_m2_ttc | number | VEFA : prix de cession de la part abordable, €… |
{
"type": "object",
"required": [
"metier"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"choix": {
"type": "object",
"description": "Hypothèses à imposer, facultatif…"
},
"ebitda": {
"type": "number"
},
"metier": {
"enum": [
"vefa",
"cpi",
"marchand",
"locatif",
"exploitation"
],
"type": "string",
"description": "vefa : Promotion en VEFA — acheter, construire…"
},
"adresse": {
"type": "string"
},
"niveaux": {
"type": "number",
"maximum": 60,
"description": "Hypothèse de nombre de niveaux pour la surface…"
},
"section": {
"type": "string"
},
"loyer_an": {
"type": "number"
},
"zone_abc": {
"enum": [
"A bis",
"A",
"B1",
"B2",
"C"
],
"type": "string",
"description": "VEFA : zonage ABC de la commune…"
},
"hauteur_m": {
"type": "number",
"maximum": 200,
"minimum": 3,
"description": "Hypothèse de hauteur maximale (m) pour la surface…"
},
"montana_a": {
"type": "number",
"description": "Coefficient de Montana a…"
},
"montana_b": {
"type": "number",
"maximum": 1,
"description": "Coefficient de Montana b."
},
"retrait_m": {
"type": "number",
"maximum": 100,
"description": "Hypothèse de retrait (m) pour la surface…"
},
"code_insee": {
"type": "string"
},
"ebitda_pct": {
"type": "number"
},
"programmes": {
"type": "array",
"items": {
"type": "object",
"required": [
"code",
"part"
],
"properties": {
"code": {
"type": "string"
},
"part": {
"type": "number",
"maximum": 1,
"description": "Part de surface, entre 0 et 1."
}
}
},
"maxItems": 20,
"description": "Programme, ou mélange…"
},
"terrain_nu": {
"type": "boolean",
"description": "Locatif : le bien est un terrain nu…"
},
"destination": {
"enum": [
"habitation",
"bureaux",
"commerce",
"hotel",
"residence_etudiante",
"residence_seniors",
"coliving",
"entrepot",
"activite"
],
"type": "string",
"description": "Destination du programme pour le règlement écrit."
},
"nb_chambres": {
"type": "number"
},
"parcelle_id": {
"type": "string"
},
"nb_logements": {
"type": "number",
"description": "Avec avec_contraintes_plu : nombre de logements…"
},
"personnel_an": {
"type": "number"
},
"prix_terrain": {
"type": "number",
"description": "Prix du terrain ou de l’acquisition, en euros…"
},
"taux_sru_pct": {
"type": "number",
"description": "VEFA : taux de logements sociaux de la commune…"
},
"prix_moyen_ht": {
"type": "number"
},
"type_logement": {
"enum": [
"appartement",
"maison"
],
"type": "string",
"default": "appartement",
"description": "Locatif résidentiel avec code_insee : série de la…"
},
"programme_neuf": {
"type": "boolean",
"description": "Locatif : programme à construire (neuf)."
},
"region_montana": {
"enum": [
"I",
"II",
"III"
],
"type": "string",
"description": "Région de pluie du terrain selon la carte de…"
},
"tva_social_pct": {
"type": "number",
"maximum": 30,
"description": "VEFA : TVA sur la part sociale, en %."
},
"type_retention": {
"enum": [
"bassin_enterre",
"noue",
"toiture_stockante"
],
"type": "string",
"description": "Ouvrage de rétention : chiffre le volume estimé…"
},
"numero_parcelle": {
"type": "string"
},
"avec_sensibilite": {
"type": "boolean",
"description": "Rend `sensibilite`…"
},
"chiffre_affaires": {
"type": "number"
},
"cout_paysager_m2": {
"type": "number",
"description": "Coût paysager de la pleine terre (€/m²)…"
},
"duree_credit_ans": {
"type": "number",
"maximum": 40,
"description": "Durée du crédit en années…"
},
"hauteur_niveau_m": {
"type": "number",
"maximum": 6,
"minimum": 2,
"description": "Hauteur d’un niveau (m, défaut 3) pour la surface…"
},
"objectif_sru_pct": {
"type": "number",
"description": "VEFA : objectif SRU de la commune (20 ou 25 %)…"
},
"adresse_confirmee": {
"type": "string",
"description": "Adresse confirmée par l'utilisateur…"
},
"confirmer_adresse": {
"type": "boolean",
"description": "true = l'utilisateur a confirmé l'adresse retenue…"
},
"tva_abordable_pct": {
"type": "number",
"maximum": 30,
"description": "VEFA : TVA sur la part abordable, en %."
},
"avec_flux_mensuels": {
"type": "boolean",
"description": "Rend `flux_mensuels`…"
},
"caler_prix_sur_dvf": {
"type": "boolean",
"description": "VEFA et marchand (prix de revente) : cale le prix…"
},
"couts_construction": {
"type": "object",
"description": "Grille de coûts indexée ICC : type_ouvrage…"
},
"emprise_au_sol_pct": {
"type": "number",
"maximum": 100,
"description": "Hypothèse d’emprise au sol (%) pour la surface…"
},
"mixite_sociale_pct": {
"type": "number",
"description": "VEFA : part imposée par une servitude de mixité…"
},
"situation_pluviale": {
"type": "string",
"maxLength": 40,
"description": "Zone du zonage pluvial du terrain quand le…"
},
"surface_louable_m2": {
"type": "number",
"description": "Locatif : surface LOUABLE imposée (m²)."
},
"surface_terrain_m2": {
"type": "number",
"description": "Surface du terrain (m²) ; défaut : géométrie…"
},
"type_stationnement": {
"enum": [
"surface",
"silo_aerien",
"sous_sol"
],
"type": "string",
"description": "Réponse à la question stationnement : ajoute un…"
},
"emprise_projetee_m2": {
"type": "number",
"description": "Emprise au sol projetée (m²)."
},
"surface_plancher_m2": {
"type": "number"
},
"taux_occupation_pct": {
"type": "number"
},
"appliquer_delais_plu": {
"type": "boolean",
"description": "Défaut false : aucun délai ajouté. true, avec…"
},
"avec_contraintes_plu": {
"type": "boolean",
"description": "Défaut false : bilan inchangé. true, avec…"
},
"dispositif_abordable": {
"type": "string",
"maxLength": 40,
"description": "VEFA : libellé du dispositif…"
},
"lire_reglement_ecrit": {
"type": "boolean",
"description": "Avec avec_contraintes_plu : lit le règlement…"
},
"taxe_amenagement_eur": {
"type": "number",
"description": "VEFA : montant de la taxe d'aménagement + taxe…"
},
"cout_retention_eur_m3": {
"type": "number",
"description": "Coût de rétention (€/m³) remplaçant l’ordre de…"
},
"appliquer_surcouts_plu": {
"type": "boolean",
"description": "Défaut false."
},
"programme_destinations": {
"type": "array",
"items": {
"type": "object",
"required": [
"destination"
],
"properties": {
"destination": {
"enum": [
"habitation",
"bureaux",
"commerce",
"hotel",
"residence_etudiante",
"residence_seniors",
"coliving",
"entrepot",
"activite"
],
"type": "string"
},
"nb_chambres": {
"type": "number"
},
"nb_logements": {
"type": "number"
},
"surface_plancher_m2": {
"type": "number"
}
}
},
"description": "Programme mixte : une entrée par destination…"
},
"marge_prudence_taux_pts": {
"type": "number",
"maximum": 3,
"description": "Locatif, exploitation : marge de prudence ajoutée…"
},
"nb_places_stationnement": {
"type": "number",
"description": "Nombre de places prévues, comparé au minimum ou…"
},
"situation_stationnement": {
"type": "string",
"maxLength": 80,
"description": "Situation du terrain quand le règlement en…"
},
"surface_construction_m2": {
"type": "number",
"description": "Avec avec_contraintes_plu (vefa) : surface de…"
},
"confirmer_regles_famille": {
"type": "boolean",
"description": "Défaut false."
},
"part_logement_social_pct": {
"type": "number",
"maximum": 100,
"description": "VEFA (promotion résidentielle) : part de la…"
},
"surface_abattement_ta_m2": {
"type": "number",
"description": "Part de surface_construction_m2 qui bénéficie de…"
},
"prix_cession_social_m2_ttc": {
"type": "number",
"description": "VEFA : prix de cession au bailleur social, en €…"
},
"surface_impermeabilisee_m2": {
"type": "number",
"description": "Surface imperméabilisée projetée…"
},
"confirmer_surface_urbanisme": {
"type": "boolean",
"description": "Défaut false."
},
"part_logement_abordable_pct": {
"type": "number",
"maximum": 100,
"description": "VEFA : part de la surface habitable cédée en…"
},
"cout_place_stationnement_eur": {
"type": "number",
"description": "Avec type_stationnement : coût par place (€) qui…"
},
"prix_cession_abordable_m2_ttc": {
"type": "number",
"description": "VEFA : prix de cession de la part abordable, €…"
}
}
}| Surcharge de investissement.acquisition. |
| fixes_annuels | number | Surcharge de charges.fixes_annuels. |
| nombre_unites | integer | Surcharge de capacite.nombre. |
| prix_unitaire | number | Surcharge de recettes.prix_unitaire. |
| occupation_cible | number | Surcharge de recettes.occupation_cible… |
| personnel_pct_ca | number | Surcharge de charges.personnel_pct_ca… |
| loyer_fixe_annuel | number | Surcharge de loyer.fixe_annuel. |
| occupation_depart | number | Surcharge de recettes.occupation_depart… |
| loyer_variable_pct_ca | number | Surcharge de loyer.variable_pct_ca… |
| mois_montee_en_charge | integer | Surcharge de calendrier.mois_montee_en_charge. |
| taux_capitalisation_sortie | number | Surcharge de sortie.taux_capitalisation. |
| reserve_renouvellement_pct_ca | number | Surcharge de charges… |
| commissions_pct_ca_hebergement | number | Surcharge de charges… |
{
"type": "object",
"required": [
"segment",
"zone"
],
"properties": {
"mode": {
"enum": [
"proprietaire_exploitant",
"bail_fixe",
"bail_variable",
"mandat_gestion"
],
"type": "string",
"description": "Mode d’exploitation…"
},
"zone": {
"enum": [
"paris",
"petite_couronne",
"grande_ville_province",
"province"
],
"type": "string",
"description": "Zone de marché."
},
"dette": {
"type": "number",
"description": "Surcharge de financement.dette."
},
"segment": {
"enum": [
"hotel_eco",
"hotel_milieu",
"hotel_haut",
"hostel",
"residence_etudiante",
"residence_senior",
"coliving"
],
"type": "string",
"description": "Segment d’exploitation."
},
"travaux": {
"type": "number",
"description": "Surcharge de investissement.travaux."
},
"scenario": {
"enum": [
"prudent",
"central",
"optimise"
],
"type": "string",
"description": "Scénario des préréglages (central par défaut)."
},
"surface_m2": {
"type": "number",
"description": "Surcharge de capacite.surface_m2."
},
"taux_dette": {
"type": "number",
"maximum": 0.3,
"description": "Surcharge de financement.taux_annuel."
},
"acquisition": {
"type": "number",
"description": "Surcharge de investissement.acquisition."
},
"fixes_annuels": {
"type": "number",
"description": "Surcharge de charges.fixes_annuels."
},
"nombre_unites": {
"type": "integer",
"maximum": 5000,
"minimum": 1,
"description": "Surcharge de capacite.nombre."
},
"prix_unitaire": {
"type": "number",
"description": "Surcharge de recettes.prix_unitaire."
},
"occupation_cible": {
"type": "number",
"maximum": 1,
"minimum": 0.01,
"description": "Surcharge de recettes.occupation_cible…"
},
"personnel_pct_ca": {
"type": "number",
"maximum": 1,
"description": "Surcharge de charges.personnel_pct_ca…"
},
"loyer_fixe_annuel": {
"type": "number",
"description": "Surcharge de loyer.fixe_annuel."
},
"occupation_depart": {
"type": "number",
"maximum": 1,
"description": "Surcharge de recettes.occupation_depart…"
},
"loyer_variable_pct_ca": {
"type": "number",
"maximum": 1,
"description": "Surcharge de loyer.variable_pct_ca…"
},
"mois_montee_en_charge": {
"type": "integer",
"maximum": 120,
"minimum": 0,
"description": "Surcharge de calendrier.mois_montee_en_charge."
},
"taux_capitalisation_sortie": {
"type": "number",
"maximum": 0.3,
"minimum": 0.01,
"description": "Surcharge de sortie.taux_capitalisation."
},
"reserve_renouvellement_pct_ca": {
"type": "number",
"maximum": 1,
"description": "Surcharge de charges…"
},
"commissions_pct_ca_hebergement": {
"type": "number",
"maximum": 1,
"description": "Surcharge de charges…"
}
},
"additionalProperties": false
}| prix_m2_min | number | Prix médian DVF au m² (€), au moins ; communes à… |
| vacants_max | number | Part de logements vacants en %, au plus. |
| vacants_min | number | Part de logements vacants en %, au moins. |
| prix_m2_type | string | Type de bien du prix médian : logement (défaut)… |
| revenu_regle | string | Comment comparer la fourchette d'IRIS au seuil… |
| population_max | number | Habitants, au plus. |
| population_min | number | Habitants, au moins. |
| etablissements_max | number | Établissements actifs (INSEE SIDE 2024), au plus. |
| etablissements_min | number | Établissements actifs (INSEE SIDE 2024), au moins. |
| procedure_en_cours | string | Exige departement : 'avec' ne garde que les… |
{
"type": "object",
"properties": {
"tri": {
"enum": [
"population",
"revenu",
"vacants",
"etablissements",
"prix_m2",
"code",
"nom"
],
"type": "string",
"description": "Valeur affichée servant au tri…"
},
"ordre": {
"enum": [
"asc",
"desc"
],
"type": "string"
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"curseur": {
"type": "string"
},
"decalage": {
"type": "integer",
"minimum": 0
},
"revenu_max": {
"type": "number",
"description": "Revenu médian annuel par unité de consommation…"
},
"revenu_min": {
"type": "number",
"description": "Revenu médian annuel par unité de consommation…"
},
"departement": {
"type": "string"
},
"prix_m2_max": {
"type": "number",
"description": "Prix médian DVF au m² (€), au plus."
},
"prix_m2_min": {
"type": "number",
"description": "Prix médian DVF au m² (€), au moins ; communes à…"
},
"vacants_max": {
"type": "number",
"maximum": 100,
"description": "Part de logements vacants en %, au plus."
},
"vacants_min": {
"type": "number",
"maximum": 100,
"description": "Part de logements vacants en %, au moins."
},
"prix_m2_type": {
"enum": [
"logement",
"local"
],
"type": "string",
"description": "Type de bien du prix médian : logement (défaut)…"
},
"revenu_regle": {
"enum": [
"min",
"max",
"les_deux"
],
"type": "string",
"description": "Comment comparer la fourchette d'IRIS au seuil…"
},
"population_max": {
"type": "number",
"description": "Habitants, au plus."
},
"population_min": {
"type": "number",
"description": "Habitants, au moins."
},
"etablissements_max": {
"type": "number",
"description": "Établissements actifs (INSEE SIDE 2024), au plus."
},
"etablissements_min": {
"type": "number",
"description": "Établissements actifs (INSEE SIDE 2024), au moins."
},
"procedure_en_cours": {
"enum": [
"avec",
"sans"
],
"type": "string",
"description": "Exige departement : 'avec' ne garde que les…"
}
},
"additionalProperties": false
}| Mode filtres, garde les parcelles à moins de… |
| hauteur_max_m | number | Mode filtres : hauteur maximale du bâti (m). |
| patrimoine_max | integer | Taille maximale, pour viser les petits porteurs… |
| patrimoine_min | integer | Taille minimale du patrimoine national du… |
| terrain_max_m2 | number | Mode filtres : surface de terrain maximale (m²). |
| terrain_min_m2 | number | Mode filtres : surface de terrain minimale (m²). |
| emprise_max_pct | number | Mode filtres : taux d’emprise au sol maximal (%)… |
| forme_juridique | string | Forme juridique (SCI, SAS, société civile…). |
| densification_min | string | Écart minimal entre capacité réglementaire et… |
| denomination_prefixe | string |
| personne_morale_privee | boolean | Mode filtres : écarte les bailleurs sociaux et… |
| locaux_min_sur_parcelle | integer | Nombre minimal de locaux du même propriétaire sur… |
{
"type": "object",
"required": [],
"properties": {
"mode": {
"enum": [
"catalogue",
"cribler",
"filtres"
],
"type": "string",
"default": "cribler",
"description": "catalogue (critères et coûts), cribler (défaut)…"
},
"zone": {
"type": "string",
"maxLength": 10,
"description": "Mode filtres : début du libellé de zone du PLU…"
},
"limite": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"mesure": {
"type": "integer",
"maximum": 25,
"minimum": 0,
"description": "Nombre de parcelles dont le bâti est mesuré…"
},
"curseur": {
"type": "string"
},
"exclure": {
"type": "array",
"items": {
"enum": [
"natura2000",
"znieff",
"znieff1",
"reserve_naturelle",
"parc_national",
"parc_naturel_regional",
"apb",
"ppr_inondation",
"pprn",
"pprt",
"tri",
"sis"
],
"type": "string"
},
"maxItems": 12,
"description": "Mode filtres, écarte les parcelles touchées par…"
},
"code_insee": {
"type": "string"
},
"departement": {
"type": "string"
},
"distance_max": {
"type": "array",
"items": {
"type": "object",
"required": [
"cible",
"rayon_m"
],
"properties": {
"cible": {
"enum": [
"gare",
"arret_transport",
"station_transport",
"ecole",
"commerce",
"sante",
"loisirs"
],
"type": "string"
},
"rayon_m": {
"type": "integer",
"maximum": 2000,
"minimum": 50
}
},
"additionalProperties": false
},
"maxItems": 4,
"description": "Mode filtres, garde les parcelles à moins de…"
},
"hauteur_max_m": {
"type": "number",
"maximum": 500,
"description": "Mode filtres : hauteur maximale du bâti (m)."
},
"patrimoine_max": {
"type": "integer",
"minimum": 1,
"description": "Taille maximale, pour viser les petits porteurs…"
},
"patrimoine_min": {
"type": "integer",
"minimum": 1,
"description": "Taille minimale du patrimoine national du…"
},
"terrain_max_m2": {
"type": "number",
"description": "Mode filtres : surface de terrain maximale (m²)."
},
"terrain_min_m2": {
"type": "number",
"description": "Mode filtres : surface de terrain minimale (m²)."
},
"emprise_max_pct": {
"type": "number",
"maximum": 100,
"description": "Mode filtres : taux d’emprise au sol maximal (%)…"
},
"forme_juridique": {
"type": "string",
"maxLength": 60,
"minLength": 2,
"description": "Forme juridique (SCI, SAS, société civile…)."
},
"densification_min": {
"enum": [
"fort",
"modere"
],
"type": "string",
"description": "Écart minimal entre capacité réglementaire et…"
},
"denomination_prefixe": {
"type": "string",
"maxLength": 60,
"minLength": 2
},
"personne_morale_privee": {
"type": "boolean",
"description": "Mode filtres : écarte les bailleurs sociaux et…"
},
"locaux_min_sur_parcelle": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Nombre minimal de locaux du même propriétaire sur…"
}
},
"additionalProperties": false
}| number |
| Marge du promoteur pour les programmes de vente… |
| lire_reglement_ecrit | boolean | Lit le règlement écrit de la zone… |
| confirmer_regles_famille | boolean | Défaut false. |
{
"type": "object",
"properties": {
"choix": {
"type": "object",
"description": "Hypothèses de gabarit à imposer…"
},
"detail": {
"type": "boolean",
"description": "Défaut false : réponse résumée…"
},
"adresse": {
"type": "string"
},
"identifiants": {
"type": "array",
"items": {
"type": "object",
"required": [
"code_insee",
"section",
"numero_parcelle"
],
"properties": {
"section": {
"type": "string"
},
"code_insee": {
"type": "string"
},
"numero_parcelle": {
"type": "string"
}
},
"additionalProperties": false
},
"maxItems": 12,
"description": "Liste de 1 à 12 parcelles choisies…"
},
"type_retention": {
"enum": [
"bassin_enterre",
"noue",
"toiture_stockante"
],
"type": "string",
"description": "Avec lire_reglement_ecrit : ouvrage de rétention…"
},
"prix_terrain_eur": {
"type": "number",
"minimum": 0.01,
"description": "Prix du terrain à chiffrer dans le bilan du…"
},
"type_stationnement": {
"enum": [
"surface",
"silo_aerien",
"sous_sol"
],
"type": "string",
"description": "Avec lire_reglement_ecrit : chiffre les places…"
},
"ecart_rendement_bps": {
"type": "number",
"maximum": 1000,
"description": "Écart de rendement exigé sur coût pour les…"
},
"marge_promoteur_pct": {
"type": "number",
"maximum": 50,
"description": "Marge du promoteur pour les programmes de vente…"
},
"lire_reglement_ecrit": {
"type": "boolean",
"description": "Lit le règlement écrit de la zone…"
},
"confirmer_regles_famille": {
"type": "boolean",
"description": "Défaut false."
}
},
"additionalProperties": false
}| usage_declare |
| string |
| Usage du bien selon le teaser ou l'utilisateur… |
| numero_parcelle | string |
| perimetre_vendu | string | Actif tertiaire : immeuble_entier, lots… |
| surface_bati_m2 | number | Surface bâtie connue (m²) pour la valeur en… |
| loyer_annuel_eur | number | Actif loué : loyer annuel hors taxes et hors… |
| niveaux_declares | integer | Nombre de niveaux déclarés ; confronté à la BD… |
| prix_demande_eur | number |
| adresse_confirmee | string | Adresse confirmée par l'utilisateur… |
| confirmer_adresse | boolean | true = l'utilisateur a confirmé l'adresse retenue… |
| taux_capitalisation_pct | number | Actif loué : taux de capitalisation retenu (%)… |
| charges_proprietaire_eur | number | Actif loué : charges non récupérables du… |
| duree_ferme_restante_ans | number | Actif loué : durée ferme restante du bail… |
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"blocs": {
"type": "array",
"items": {
"enum": [
"identification",
"proprietaires",
"transactions",
"construction",
"comparables",
"urbanisme",
"risques",
"energie",
"capacite",
"marche",
"voisinage"
],
"type": "string"
},
"minItems": 1,
"description": "Mode ciblé : ne rendre que ces blocs…"
},
"detail": {
"type": "boolean",
"default": false,
"description": "true : sortie détaillée…"
},
"adresse": {
"type": "string"
},
"section": {
"type": "string"
},
"rubriques": {
"type": "array",
"items": {
"enum": [
"identification",
"proprietaires",
"transactions",
"construction",
"comparables",
"urbanisme",
"risques",
"energie",
"capacite",
"marche",
"voisinage"
],
"type": "string"
},
"minItems": 1,
"description": "Rapport selon votre modèle : volets à lire et…"
},
"code_insee": {
"type": "string"
},
"parcelle_id": {
"type": "string"
},
"usage_declare": {
"enum": [
"bureaux",
"commerce",
"activite",
"logement",
"mixte"
],
"type": "string",
"description": "Usage du bien selon le teaser ou l'utilisateur…"
},
"numero_parcelle": {
"type": "string"
},
"perimetre_vendu": {
"enum": [
"immeuble_entier",
"lots",
"inconnu"
],
"type": "string",
"description": "Actif tertiaire : immeuble_entier, lots…"
},
"surface_bati_m2": {
"type": "number",
"minimum": 0.01,
"description": "Surface bâtie connue (m²) pour la valeur en…"
},
"loyer_annuel_eur": {
"type": "number",
"minimum": 0.01,
"description": "Actif loué : loyer annuel hors taxes et hors…"
},
"niveaux_declares": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "Nombre de niveaux déclarés ; confronté à la BD…"
},
"prix_demande_eur": {
"type": "number",
"minimum": 0.01
},
"adresse_confirmee": {
"type": "string",
"description": "Adresse confirmée par l'utilisateur…"
},
"confirmer_adresse": {
"type": "boolean",
"description": "true = l'utilisateur a confirmé l'adresse retenue…"
},
"taux_capitalisation_pct": {
"type": "number",
"maximum": 30,
"minimum": 0.1,
"description": "Actif loué : taux de capitalisation retenu (%)…"
},
"charges_proprietaire_eur": {
"type": "number",
"description": "Actif loué : charges non récupérables du…"
},
"duree_ferme_restante_ans": {
"type": "number",
"maximum": 30,
"description": "Actif loué : durée ferme restante du bail…"
}
},
"additionalProperties": false
}{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"depuis": {
"type": "string",
"description": "Ne garder que les DPE établis depuis cette année…"
},
"adresse": {
"type": "string"
},
"curseur": {
"type": "string"
},
"rayon_m": {
"type": "number",
"maximum": 300,
"minimum": 20
},
"section": {
"type": "string"
},
"travaux": {
"type": "array",
"items": {
"enum": [
"isolation_toiture",
"isolation_murs",
"isolation_plancher_bas",
"menuiseries",
"ventilation",
"chauffage_pac",
"chauffage_performant",
"ecs_thermodynamique",
"regulation"
],
"type": "string"
},
"description": "Bouquet : classe estimée après travaux…"
},
"code_insee": {
"type": "string"
},
"numero_parcelle": {
"type": "string"
}
}
}| rayon_m | number |
| section | string |
| prix_max | number | Valeur foncière maximale, €. |
| prix_min | number | Valeur foncière minimale, €. |
| code_insee | string |
| surface_m2 | number | Mode comparables : surface du bien à comparer, m². |
| surface_max | number | Surface maximale, m². |
| surface_min | number | Surface bâtie (ou de terrain) minimale, m². |
| adresse_confirmee | string | Adresse confirmée par l'utilisateur… |
| confirmer_adresse | boolean | true = l'utilisateur a confirmé l'adresse retenue… |
| tolerance_surface_pct | number | Mode comparables : écart de surface accepté en %… |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"tri": {
"enum": [
"proximite",
"similarite",
"recent"
],
"type": "string",
"description": "Mode comparables : ordre des ventes rendues…"
},
"mode": {
"enum": [
"historique",
"comparables",
"estimation"
],
"type": "string",
"description": "historique (défaut) : liste des mutations d'une…"
},
"type": {
"enum": [
"activite",
"commerce",
"appartement",
"maison",
"dependance",
"terrain"
],
"type": "string",
"description": "OBLIGATOIRE en mode comparables…"
},
"depuis": {
"type": "integer",
"maximum": 2100,
"minimum": 2021,
"description": "Première année (2021 par défaut)."
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"nature": {
"enum": [
"vente",
"vefa",
"echange",
"adjudication",
"expropriation",
"terrain-a-batir"
],
"type": "string",
"description": "Nature de la mutation."
},
"adresse": {
"type": "string"
},
"rayon_m": {
"type": "number"
},
"section": {
"type": "string"
},
"prix_max": {
"type": "number",
"description": "Valeur foncière maximale, €."
},
"prix_min": {
"type": "number",
"description": "Valeur foncière minimale, €."
},
"code_insee": {
"type": "string"
},
"surface_m2": {
"type": "number",
"description": "Mode comparables : surface du bien à comparer, m²."
},
"surface_max": {
"type": "number",
"description": "Surface maximale, m²."
},
"surface_min": {
"type": "number",
"description": "Surface bâtie (ou de terrain) minimale, m²."
},
"adresse_confirmee": {
"type": "string",
"description": "Adresse confirmée par l'utilisateur…"
},
"confirmer_adresse": {
"type": "boolean",
"description": "true = l'utilisateur a confirmé l'adresse retenue…"
},
"tolerance_surface_pct": {
"type": "number",
"maximum": 100,
"description": "Mode comparables : écart de surface accepté en %…"
}
},
"additionalProperties": false
}| rayon_km |
| number |
| code_insee | string |
| numero_parcelle | string |
| caracteristiques | object | Caractéristiques connues du bâtiment… |
| hypotheses_couts | object | Variables de coût modifiables… |
| hypotheses_valeur | object | Hypothèses de l’axe économique… |
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"couts": {
"type": "object",
"description": "Ancien nom : équivaut à hypotheses_couts.bandes."
},
"poids": {
"type": "object",
"properties": {
"plu": {
"type": "number",
"maximum": 100
},
"marche": {
"type": "number",
"maximum": 100
},
"economie": {
"type": "number",
"maximum": 100
},
"adequation": {
"type": "number",
"maximum": 100
},
"complexite": {
"type": "number",
"maximum": 100
}
},
"description": "Poids des axes (défaut 25 chacun, normalisés).",
"additionalProperties": false
},
"teaser": {
"type": "string",
"maxLength": 20000,
"description": "Texte d’un teaser collé : surface, R+n, parking…"
},
"usages": {
"type": "array",
"items": {
"enum": [
"bureaux",
"formation",
"sante",
"services_publics",
"residence_etudiante",
"residence_sociale",
"logement",
"hotel",
"coworking",
"sport_culture",
"mixte"
],
"type": "string"
},
"description": "Restreindre aux usages listés (défaut : tous)."
},
"adresse": {
"type": "string",
"maxLength": 300
},
"commune": {
"type": "string",
"maxLength": 100
},
"section": {
"type": "string",
"maxLength": 5
},
"rayon_km": {
"type": "number",
"maximum": 5
},
"code_insee": {
"type": "string"
},
"numero_parcelle": {
"type": "string",
"maxLength": 5
},
"caracteristiques": {
"type": "object",
"properties": {
"annee": {
"type": "integer",
"minimum": 0
},
"facade": {
"enum": [
"vitree_fixe",
"ouvrants",
"mixte"
],
"type": "string"
},
"vacant": {
"type": "boolean",
"description": "Bâtiment vacant…"
},
"niveaux": {
"type": "integer",
"minimum": 0,
"description": "Nombre de niveaux (R+4 = 5)."
},
"prix_eur": {
"type": "number",
"description": "Prix demandé, €."
},
"sous_sol": {
"type": "boolean"
},
"erp_types": {
"type": "array",
"items": {
"enum": [
"J",
"L",
"M",
"N",
"O",
"P",
"R",
"S",
"T",
"U",
"V",
"W",
"X",
"Y"
],
"type": "string"
},
"maxItems": 14,
"description": "Types ERP autorisés (ex. [\"W\",\"Y\",\"L\"])."
},
"hauteur_m": {
"type": "number",
"description": "Hauteur du dernier plancher, m…"
},
"ascenseurs": {
"type": "integer",
"minimum": 0
},
"erp_ouvert": {
"type": "boolean",
"description": "Bâtiment déjà classé ERP…"
},
"sanitaires": {
"enum": [
"groupes",
"repartis"
],
"type": "string"
},
"surface_m2": {
"type": "number",
"description": "Surface de plancher, m²."
},
"trefonds_m2": {
"type": "number"
},
"effectif_erp": {
"type": "integer",
"minimum": 0,
"description": "Effectif du public autorisé."
},
"usage_actuel": {
"type": "string",
"maxLength": 60
},
"erp_categorie": {
"type": "integer",
"maximum": 5,
"minimum": 1
},
"cages_escalier": {
"type": "integer",
"minimum": 0
},
"parking_places": {
"type": "integer",
"minimum": 0
},
"trefonds_metro": {
"type": "boolean",
"description": "Tréfonds ou servitude du métro sous la…"
},
"etat_equipements": {
"enum": [
"bon",
"moyen",
"a_refaire"
],
"type": "string"
},
"salles_formation": {
"type": "boolean",
"description": "Salles de formation / réunion…"
},
"profondeur_plateau_m": {
"type": "number",
"description": "Profondeur de plateau façade à façade…"
},
"charge_plancher_kg_m2": {
"type": "number"
},
"hauteur_sous_plafond_m": {
"type": "number"
}
},
"description": "Caractéristiques connues du bâtiment…",
"additionalProperties": false
},
"hypotheses_couts": {
"type": "object",
"properties": {
"bandes": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "number",
"minimum": 0
},
"maxItems": 2,
"minItems": 2
}
},
"aleas_pct": {
"type": "number",
"maximum": 50
},
"honoraires_pct": {
"type": "number",
"maximum": 50
},
"surcharges_usage": {
"type": "object",
"description": "Surcharges propres à l’usage, ajoutées…",
"additionalProperties": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "number",
"minimum": 0
},
"maxItems": 3,
"minItems": 2
}
}
},
"desamiantage_eur_m2": {
"type": "number",
"maximum": 500
},
"facteurs_complexite": {
"type": "object",
"additionalProperties": {
"type": "number",
"maximum": 5,
"exclusiveMinimum": 0
}
}
},
"description": "Variables de coût modifiables…",
"additionalProperties": false
},
"hypotheses_valeur": {
"type": "object",
"properties": {
"valeur_m2": {
"type": "object",
"additionalProperties": {
"type": "array",
"items": {
"type": "number",
"minimum": 0
},
"maxItems": 3,
"minItems": 3
}
},
"loyer_m2_an": {
"type": "number",
"maximum": 2000,
"minimum": 10,
"description": "Loyer € HT HC/m² SU/an saisi : remplace…"
},
"ratio_su_sdp": {
"type": "number",
"maximum": 1,
"minimum": 0.3
},
"vacance_mois": {
"type": "number",
"maximum": 60,
"description": "Bâtiment vacant : mois de vacance avant…"
},
"ecart_taux_pts": {
"type": "number",
"maximum": 3
},
"franchise_mois": {
"type": "number",
"maximum": 36,
"description": "Mois de franchise de loyer (défaut 3)."
},
"ratio_habitable_sdp": {
"type": "number",
"maximum": 1,
"minimum": 0.3
},
"frais_acquisition_pct": {
"type": "number",
"maximum": 30
},
"taux_capitalisation_pct": {
"type": "object",
"additionalProperties": {
"type": "number",
"maximum": 20,
"minimum": 1
}
},
"decote_etat_existant_pct": {
"type": "number",
"maximum": 80,
"description": "Décote « état existant » (défaut 30 %)…"
}
},
"description": "Hypothèses de l’axe économique…",
"additionalProperties": false
}
},
"additionalProperties": false
}| integer |
| Validité du lien : 15 à 1440 minutes (défaut 15). |
| prix_demande_eur | number |
| max_telechargements | integer | Nombre de téléchargements autorisés (défaut 3). |
{
"type": "object",
"properties": {
"nom": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,40}$",
"description": "Nom du fichier sans extension…"
},
"outil": {
"type": "string",
"pattern": "^toise_[a-z_]+$",
"description": "Outil de lecture à ré-exécuter côté serveur…"
},
"titre": {
"type": "string",
"maxLength": 120,
"description": "Avec docx dossier ou etude : titre du document…"
},
"format": {
"enum": [
"csv",
"json",
"docx"
],
"type": "string",
"description": "csv…"
},
"adresse": {
"type": "string"
},
"donnees": {
"type": "array",
"items": {
"type": "object"
},
"maxItems": 5000,
"description": "Lignes (objets) déjà obtenues d’un outil…"
},
"document": {
"enum": [
"memo_second_avis",
"dossier",
"etude"
],
"type": "string",
"description": "Avec format docx : memo_second_avis…"
},
"arguments": {
"type": "object",
"description": "Arguments de cet outil…"
},
"cle_tableau": {
"type": "string",
"maxLength": 60,
"description": "Chemin pointé du tableau à exporter dans le…"
},
"duree_minutes": {
"type": "integer",
"maximum": 1440,
"minimum": 15,
"description": "Validité du lien : 15 à 1440 minutes (défaut 15)."
},
"prix_demande_eur": {
"type": "number"
},
"max_telechargements": {
"type": "integer",
"maximum": 10,
"minimum": 1,
"description": "Nombre de téléchargements autorisés (défaut 3)."
}
},
"additionalProperties": false
}| number |
| Marchand de biens : prix de revente, en euros… |
| surface_taxable_m2 | number | Surface taxable du projet, en m², pour estimer la… |
| prix_acquisition_eur | number | Marchand de biens : prix d’acquisition, en euros… |
| valeur_locative_annuelle_eur | number | Valeur locative cadastrale annuelle du local… |
{
"type": "object",
"required": [
"code_insee"
],
"properties": {
"tsb": {
"type": "object",
"required": [
"circonscription"
],
"properties": {
"stockage_m2": {
"type": "number"
},
"commerces_m2": {
"type": "number"
},
"circonscription": {
"type": "integer",
"maximum": 4,
"minimum": 1,
"description": "Circonscription tarifaire (1 à 4), case…"
},
"stationnement_m2": {
"type": "number"
},
"bureaux_normal_m2": {
"type": "number"
},
"bureaux_reduit_m2": {
"type": "number"
}
},
"description": "Taxe sur les bureaux, locaux commerciaux, de…",
"additionalProperties": false
},
"tss": {
"type": "object",
"required": [
"circonscription",
"surface_m2"
],
"properties": {
"surface_m2": {
"type": "number",
"description": "Surface de stationnement imposable en…"
},
"circonscription": {
"type": "integer",
"maximum": 3,
"minimum": 1,
"description": "Circonscription (1 à 3), case « ZONE »…"
}
},
"description": "Taxe annuelle sur les surfaces de stationnement…",
"additionalProperties": false
},
"annee": {
"type": "integer",
"maximum": 2030,
"minimum": 2017,
"description": "Audit de taxe foncière : année d'imposition…"
},
"locaux": {
"type": "array",
"items": {
"type": "object",
"properties": {
"nom": {
"type": "string",
"description": "Libellé du local (occupant, lot)."
},
"secteur": {
"type": "integer",
"description": "Secteur d’évaluation, si vous le…"
},
"section": {
"type": "string"
},
"surface_m2": {
"type": "number",
"description": "Surface réelle en m², avec…"
},
"categorie_cible": {
"type": "string",
"description": "Sous-groupe visé par le reclassement…"
},
"numero_parcelle": {
"type": "string"
},
"categorie_actuelle": {
"type": "string",
"description": "Sous-groupe retenu par l’administration…"
},
"tarif_cible_eur_m2": {
"type": "number",
"description": "Tarif au m² de la catégorie visée dans…"
},
"surface_ponderee_m2": {
"type": "number",
"description": "Surface pondérée du local, en m²…"
},
"tarif_actuel_eur_m2": {
"type": "number",
"description": "Tarif au m² de la catégorie actuelle…"
},
"taxe_fonciere_avis_eur": {
"type": "number",
"description": "Taxe foncière de ce local lue sur…"
},
"coefficient_ponderation": {
"type": "number",
"description": "Coefficient de pondération moyen, avec…"
},
"coefficient_localisation": {
"type": "number",
"description": "Coefficient de localisation du local…"
}
},
"additionalProperties": false
},
"maxItems": 50,
"description": "Audit de taxe foncière : locaux professionnels à…"
},
"profil": {
"enum": [
"particulier",
"marchand",
"investisseur"
],
"type": "string",
"description": "Profil de l'utilisateur. particulier…"
},
"regime": {
"enum": [
"marchand_de_biens",
"droit_commun"
],
"type": "string",
"description": "Régime des droits retenu comme retenu_eur…"
},
"type_bien": {
"enum": [
"ancien",
"neuf"
],
"type": "string",
"description": "Ancien (droits du département) ou neuf…"
},
"code_insee": {
"type": "string"
},
"prix_revente_eur": {
"type": "number",
"description": "Marchand de biens : prix de revente, en euros…"
},
"surface_taxable_m2": {
"type": "number",
"description": "Surface taxable du projet, en m², pour estimer la…"
},
"prix_acquisition_eur": {
"type": "number",
"description": "Marchand de biens : prix d’acquisition, en euros…"
},
"valeur_locative_annuelle_eur": {
"type": "number",
"description": "Valeur locative cadastrale annuelle du local…"
}
},
"additionalProperties": false
}| surface_min_m2 |
| number |
| Surface minimale en m²… |
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"type": {
"type": "string",
"description": "Type de friche tel que publié par Cartofriches…"
},
"limite": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"statut": {
"enum": [
"friche potentielle",
"friche sans projet",
"friche avec projet",
"friche reconvertie"
],
"type": "string",
"description": "Statut de la friche. Facultatif."
},
"adresse": {
"type": "string"
},
"curseur": {
"type": "string"
},
"rayon_m": {
"type": "number",
"minimum": 100
},
"code_insee": {
"type": "string"
},
"departement": {
"type": "string"
},
"surface_min_m2": {
"type": "number",
"description": "Surface minimale en m²…"
}
},
"additionalProperties": false
}| integer |
| enseigne | string | Enseigne visée (ex. |
| categorie* | string | Catégorie de commerce étudiée. |
| transports | boolean | Ajouter les arrêts de transport en commun dans la… |
{
"type": "object",
"required": [
"mode",
"categorie"
],
"properties": {
"km": {
"type": "number",
"maximum": 30,
"description": "Rayon en km, de 1 à 30 (rayon, isodistance)."
},
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"mode": {
"enum": [
"voiture",
"a_pied",
"rayon"
],
"type": "string",
"description": "voiture, velo, poids_lourd : jusqu’à 45 min…"
},
"limite": {
"type": "integer",
"maximum": 200,
"minimum": 1
},
"trafic": {
"type": "boolean",
"description": "Ajouter le trafic routier…"
},
"adresse": {
"type": "string"
},
"curseur": {
"type": "string"
},
"minutes": {
"type": "number",
"maximum": 45,
"minimum": 5,
"description": "Durée du trajet, de 5 à 45 (voiture) ou 30…"
},
"decalage": {
"type": "integer",
"minimum": 0
},
"enseigne": {
"type": "string",
"description": "Enseigne visée (ex."
},
"categorie": {
"enum": [
"boulangerie",
"discount",
"alimentaire",
"restauration_rapide",
"cafe",
"salle_de_sport",
"pharmacie",
"opticien",
"coiffure",
"creche"
],
"type": "string",
"description": "Catégorie de commerce étudiée."
},
"transports": {
"type": "boolean",
"description": "Ajouter les arrêts de transport en commun dans la…"
}
}
}| prix_demande_eur |
| number |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"adresse": {
"type": "string"
},
"section": {
"type": "string"
},
"code_insee": {
"type": "string"
},
"parcelle_id": {
"type": "string"
},
"fiche_adresse": {
"type": "object",
"description": "Fiche déjà obtenue…"
},
"bilan_operation": {
"type": "object",
"description": "Résultat de toise_bilan_operation sur la même…"
},
"numero_parcelle": {
"type": "string"
},
"surface_bati_m2": {
"type": "number",
"minimum": 0.01,
"description": "Surface du bien (m²), prioritaire sur la surface…"
},
"prix_demande_eur": {
"type": "number",
"minimum": 0.01
}
},
"additionalProperties": false
}| integer |
| Mode profil : nombre de points du profil… |
{
"type": "object",
"required": [
"mode"
],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"mode": {
"enum": [
"altitude",
"profil",
"mesure",
"millesimes",
"autour"
],
"type": "string",
"description": "Lecture demandée : altitude, profil, mesure…"
},
"zoom": {
"type": "integer",
"maximum": 18,
"minimum": 10,
"description": "Mode millesimes : niveau de zoom de la tuile…"
},
"trace": {
"anyOf": [
{
"type": "object"
},
{
"type": "array",
"items": {
"type": "array",
"items": {
"type": "number"
}
}
}
],
"description": "Modes profil et mesure : géométrie GeoJSON…"
},
"adresse": {
"type": "string"
},
"inclure": {
"type": "array",
"items": {
"enum": [
"trafic",
"arrets"
],
"type": "string"
},
"description": "Mode autour : trafic, arrets, ou les deux…"
},
"rayon_m": {
"type": "number",
"maximum": 5000,
"minimum": 50
},
"polygone": {
"type": "boolean",
"description": "Mode mesure avec un tableau de points : vrai pour…"
},
"echantillons": {
"type": "integer",
"maximum": 200,
"minimum": 2,
"description": "Mode profil : nombre de points du profil…"
}
},
"additionalProperties": false
}| string |
| Doctrine (après mesure) : écart minimal entre… |
| rendement_cible_pct | number | Doctrine déclarative : rendement visé (%). |
| denomination_prefixe | string |
| personne_morale_privee | boolean | Doctrine (pré-filtre) : écarte les bailleurs… |
| locaux_min_sur_parcelle | integer | Doctrine (pré-filtre) : nombre minimal de locaux… |
{
"type": "object",
"required": [],
"properties": {
"code_insee": {
"type": "string"
},
"departement": {
"type": "string"
},
"budget_mesure": {
"type": "integer",
"default": 25,
"maximum": 1000,
"minimum": 1,
"description": "Nombre de candidats mesurés (25 par défaut)."
},
"ticket_max_m2": {
"type": "number",
"description": "Doctrine (après mesure) : surface de terrain…"
},
"ticket_min_m2": {
"type": "number",
"description": "Doctrine (après mesure) : surface de terrain…"
},
"patrimoine_max": {
"type": "integer",
"minimum": 1,
"description": "Doctrine (pré-filtre) : taille maximale, pour…"
},
"patrimoine_min": {
"type": "integer",
"minimum": 1,
"description": "Doctrine (pré-filtre) : taille minimale du…"
},
"forme_juridique": {
"type": "string",
"maxLength": 60,
"minLength": 2,
"description": "Doctrine (pré-filtre) : forme juridique…"
},
"densification_min": {
"enum": [
"fort",
"modere"
],
"type": "string",
"description": "Doctrine (après mesure) : écart minimal entre…"
},
"rendement_cible_pct": {
"type": "number",
"maximum": 100,
"description": "Doctrine déclarative : rendement visé (%)."
},
"denomination_prefixe": {
"type": "string",
"maxLength": 60,
"minLength": 2
},
"personne_morale_privee": {
"type": "boolean",
"description": "Doctrine (pré-filtre) : écarte les bailleurs…"
},
"locaux_min_sur_parcelle": {
"type": "integer",
"maximum": 1000,
"minimum": 1,
"description": "Doctrine (pré-filtre) : nombre minimal de locaux…"
}
},
"additionalProperties": false
}| profondeur_groupe | integer | 1 = filiales dirigées directement ; 2 (défaut) =… |
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"siren": {
"type": "string"
},
"adresse": {
"type": "string"
},
"section": {
"type": "string"
},
"code_insee": {
"type": "string"
},
"parcelle_id": {
"type": "string"
},
"denomination": {
"type": "string",
"minLength": 3,
"description": "Dénomination de la société…"
},
"mois_signaux": {
"type": "integer",
"default": 24,
"maximum": 120,
"minimum": 1,
"description": "Fenêtre des signaux BODACC (annonces légales), en…"
},
"numero_parcelle": {
"type": "string"
},
"profondeur_groupe": {
"type": "integer",
"default": 2,
"maximum": 2,
"minimum": 1,
"description": "1 = filiales dirigées directement ; 2 (défaut) =…"
}
},
"additionalProperties": false
}| confirmer_adresse | boolean | true = l'utilisateur a confirmé l'adresse retenue… |
| avec_proprietaires | boolean | Modes rayon et sélection : joindre les personnes… |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"limite": {
"type": "integer",
"default": 50,
"maximum": 150,
"minimum": 1
},
"adresse": {
"type": "string"
},
"curseur": {
"type": "string"
},
"rayon_m": {
"type": "number",
"default": 120,
"maximum": 400,
"minimum": 40
},
"section": {
"type": "string"
},
"code_insee": {
"type": "string"
},
"parcelle_ids": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 30,
"description": "Sélection de 30 parcelles au plus : IDU sur 14…"
},
"adresse_confirmee": {
"type": "string",
"description": "Adresse confirmée par l'utilisateur…"
},
"confirmer_adresse": {
"type": "boolean",
"description": "true = l'utilisateur a confirmé l'adresse retenue…"
},
"avec_proprietaires": {
"type": "boolean",
"default": true,
"description": "Modes rayon et sélection : joindre les personnes…"
}
}
}| faisabilite | boolean | Rapport de faisabilité : scénarios, plans SVG… |
| surface_lot_m2 | number | Fiche : surface de lot visée pour la faisabilité… |
| surface_min_m2 | number | Mode dents_creuses : surface cadastrale minimale… |
| emprise_max_pct | number | Mode dents_creuses : emprise bâtie maximale en %… |
| numero_parcelle | string |
| confirmer_regles_famille | boolean | Défaut false. true : les règles écrites pour la… |
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"mode": {
"enum": [
"fiche",
"dents_creuses"
],
"type": "string",
"description": "Défaut fiche. dents_creuses (avec code_insee)…"
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"adresse": {
"type": "string"
},
"curseur": {
"type": "string"
},
"prefixe": {
"type": "string",
"pattern": "^[0-9]{3}$",
"description": "Préfixe de section (3 chiffres) pour une commune…"
},
"rayon_m": {
"type": "number",
"maximum": 3000,
"minimum": 50
},
"section": {
"type": "string",
"maxLength": 2
},
"code_insee": {
"type": "string"
},
"faisabilite": {
"type": "boolean",
"description": "Rapport de faisabilité : scénarios, plans SVG…"
},
"surface_lot_m2": {
"type": "number",
"minimum": 50,
"description": "Fiche : surface de lot visée pour la faisabilité…"
},
"surface_min_m2": {
"type": "number",
"minimum": 100,
"description": "Mode dents_creuses : surface cadastrale minimale…"
},
"emprise_max_pct": {
"type": "number",
"maximum": 30,
"description": "Mode dents_creuses : emprise bâtie maximale en %…"
},
"numero_parcelle": {
"type": "string",
"maxLength": 4
},
"confirmer_regles_famille": {
"type": "boolean",
"description": "Défaut false. true : les règles écrites pour la…"
}
},
"additionalProperties": false
}| avec_filiales |
| boolean |
| Avec demandeur ou siren_demandeur : élargit au… |
| sans_chantier | boolean | Ne garder que les permis autorisés dont Sitadel… |
| numero_parcelle | string |
| siren_demandeur | string | SIREN du demandeur, 9 chiffres : tous les permis… |
| anciennete_max_ans | number | Avec sans_chantier : ancienneté maximale de… |
| anciennete_min_ans | number | Avec sans_chantier : ancienneté minimale de… |
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"depuis": {
"type": "string",
"description": "Ne garder que les dossiers déposés à partir de…"
},
"limite": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"adresse": {
"type": "string"
},
"curseur": {
"type": "string"
},
"rayon_m": {
"type": "number",
"maximum": 5000,
"minimum": 50
},
"section": {
"type": "string"
},
"demandeur": {
"type": "string",
"description": "Nom ou fragment de nom du demandeur…"
},
"code_insee": {
"type": "string"
},
"avec_filiales": {
"type": "boolean",
"description": "Avec demandeur ou siren_demandeur : élargit au…"
},
"sans_chantier": {
"type": "boolean",
"description": "Ne garder que les permis autorisés dont Sitadel…"
},
"numero_parcelle": {
"type": "string"
},
"siren_demandeur": {
"type": "string",
"description": "SIREN du demandeur, 9 chiffres : tous les permis…"
},
"anciennete_max_ans": {
"type": "number",
"maximum": 100,
"description": "Avec sans_chantier : ancienneté maximale de…"
},
"anciennete_min_ans": {
"type": "number",
"maximum": 100,
"description": "Avec sans_chantier : ancienneté minimale de…"
}
}
}{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"adresse": {
"type": "string"
},
"section": {
"type": "string"
},
"code_insee": {
"type": "string"
},
"parcelle_id": {
"type": "string"
},
"numero_parcelle": {
"type": "string"
},
"adresse_confirmee": {
"type": "string",
"description": "Adresse confirmée par l'utilisateur…"
},
"confirmer_adresse": {
"type": "boolean",
"description": "true = l'utilisateur a confirmé l'adresse retenue…"
}
},
"additionalProperties": false
}| Valeur ou prix actuel du bien, en euros. |
| destination_actuelle | string | Destination actuelle du bien (ex. |
| surface_existante_m2 | number | Surface bâtie existante, en m². |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"mode": {
"enum": [
"redeveloppement",
"batiment_existant"
],
"type": "string",
"description": "Défaut redeveloppement…"
},
"detail": {
"type": "boolean",
"description": "Défaut false : sortie résumée…"
},
"adresse": {
"type": "string"
},
"section": {
"type": "string"
},
"code_insee": {
"type": "string"
},
"numero_parcelle": {
"type": "string"
},
"lire_destinations": {
"type": "boolean",
"description": "Défaut true : lit les destinations et le…"
},
"valeur_actuelle_eur": {
"type": "number",
"description": "Valeur ou prix actuel du bien, en euros."
},
"destination_actuelle": {
"type": "string",
"maxLength": 100,
"description": "Destination actuelle du bien (ex."
},
"surface_existante_m2": {
"type": "number",
"description": "Surface bâtie existante, en m²."
}
},
"additionalProperties": false
}| Fragment de dénomination (3 caractères au moins)… |
| numero_parcelle | string |
| adresse_confirmee | string | Adresse confirmée par l'utilisateur… |
| confirmer_adresse | boolean | true = l'utilisateur a confirmé l'adresse retenue… |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"siren": {
"type": "string"
},
"limite": {
"type": "integer",
"default": 40,
"maximum": 200,
"minimum": 1
},
"adresse": {
"type": "string"
},
"curseur": {
"type": "string"
},
"section": {
"type": "string"
},
"code_insee": {
"type": "string"
},
"parcelle_id": {
"type": "string"
},
"denomination": {
"type": "string",
"minLength": 3,
"description": "Fragment de dénomination (3 caractères au moins)…"
},
"numero_parcelle": {
"type": "string"
},
"adresse_confirmee": {
"type": "string",
"description": "Adresse confirmée par l'utilisateur…"
},
"confirmer_adresse": {
"type": "boolean",
"description": "true = l'utilisateur a confirmé l'adresse retenue…"
}
}
}| adresse_confirmee | string | Adresse confirmée par l'utilisateur (ex. le candidat choisi) : géocodée à la place de `adresse`, sans nouvelle demande de confirmation. |
| assistance_modele | boolean | Défaut true : thème vide, passage chiffré proposé par un modèle (citation vérifiée), dans themes_absents, jamais une règle. false : règles seules. |
| confirmer_adresse | boolean | true = l'utilisateur a confirmé l'adresse retenue signalée par ADRESSE_A_CONFIRMER : poursuivre avec elle. Ne le passez jamais sans son accord. |
{
"type": "object",
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"zone": {
"type": "string",
"maxLength": 12,
"description": "Libellé de la zone au PLU (ex. « Uh », « UA », « 1AU »), tel que rendu par toise_urbanisme."
},
"themes": {
"type": "array",
"items": {
"enum": [
"hauteur",
"emprise_au_sol",
"retrait",
"stationnement",
"pleine_terre",
"mixite_sociale"
],
"type": "string"
},
"description": "Facultatif : limiter aux thèmes demandés (tous par défaut)."
},
"adresse": {
"type": "string",
"description": "Adresse : la zone est lue au point d’adresse (PLUi compris)."
},
"programme": {
"type": "object",
"description": "Places : logements, bureaux_m2, commerce_m2, entrepot_m2…"
},
"code_insee": {
"type": "string",
"pattern": "^([0-9]{5}|2[AB][0-9]{3})$",
"description": "Code INSEE de la commune. Avec zone. Alias : insee, code_commune."
},
"adresse_confirmee": {
"type": "string",
"description": "Adresse confirmée par l'utilisateur (ex. le candidat choisi) : géocodée à la place de `adresse`, sans nouvelle demande de confirmation."
},
"assistance_modele": {
"type": "boolean",
"description": "Défaut true : thème vide, passage chiffré proposé par un modèle (citation vérifiée), dans themes_absents, jamais une règle. false : règles seules."
},
"confirmer_adresse": {
"type": "boolean",
"description": "true = l'utilisateur a confirmé l'adresse retenue signalée par ADRESSE_A_CONFIRMER : poursuivre avec elle. Ne le passez jamais sans son accord."
}
},
"additionalProperties": false
}| surface_plancher_m2* | number |
{
"type": "object",
"required": [
"surface_plancher_m2"
],
"properties": {
"mode": {
"enum": [
"terrain",
"batiment_existant"
],
"type": "string",
"description": "Défaut terrain. batiment_existant…"
},
"zone": {
"type": "string",
"maxLength": 50,
"description": "Zone du PLU (recopiée, sans effet sur le calcul)."
},
"choix": {
"type": "object",
"description": "Substitutions par programme, ex. { \"bureaux\": {…"
},
"section": {
"type": "string"
},
"code_insee": {
"type": "string"
},
"destinations": {
"type": "object",
"description": "Champ `destinations` rendu par…"
},
"prix_demande": {
"type": "number",
"description": "Prix demandé du terrain, en euros, pour rendre le…"
},
"ecart_rendement_bps": {
"type": "number",
"maximum": 1000,
"description": "Écart de rendement exigé sur coût pour les…"
},
"marge_promoteur_pct": {
"type": "number",
"maximum": 50,
"description": "Marge du promoteur pour les programmes de vente…"
},
"surface_plancher_m2": {
"type": "number"
}
},
"additionalProperties": false
}| departement |
| string |
{
"type": "object",
"required": [],
"properties": {
"mois": {
"type": "integer",
"default": 24,
"maximum": 60,
"minimum": 1,
"description": "Fenêtre en mois…"
},
"limite": {
"type": "integer",
"default": 20,
"maximum": 50,
"minimum": 1
},
"profil": {
"enum": [
"prive",
"tous"
],
"type": "string",
"default": "prive",
"description": "prive : écarte bailleurs sociaux, public…"
},
"adresse": {
"type": "string"
},
"curseur": {
"type": "string"
},
"communes": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 12,
"description": "Avec departement : codes INSEE (12 au plus)…"
},
"parcelle": {
"type": "string"
},
"categories": {
"type": "array",
"items": {
"enum": [
"liquidation",
"redressement",
"sauvegarde",
"cloture",
"suivi",
"autre"
],
"type": "string"
},
"description": "Avec departement : situations retenues ; par…"
},
"code_insee": {
"type": "string"
},
"departement": {
"type": "string"
}
}
}| Numéro de voie (ex. 12, 12 bis), avec voie et… |
| hors_domiciliation | boolean | Mode adresse : écarter les sièges probablement… |
{
"type": "object",
"required": [],
"properties": {
"nom": {
"type": "string",
"minLength": 3,
"description": "Nom…"
},
"voie": {
"type": "string",
"description": "Nom de la voie (ex. rue de la Paix)."
},
"siren": {
"type": "string"
},
"bodacc": {
"type": "boolean",
"default": true,
"description": "Fiche par siren : joindre le résumé des annonces…"
},
"limite": {
"type": "integer",
"maximum": 50,
"minimum": 1
},
"adresse": {
"type": "string"
},
"curseur": {
"type": "string"
},
"dirigeants": {
"type": "boolean",
"default": true,
"description": "Fiche par siren : joindre les dirigeants…"
},
"code_postal": {
"type": "string"
},
"numero_voie": {
"type": "string",
"description": "Numéro de voie (ex. 12, 12 bis), avec voie et…"
},
"hors_domiciliation": {
"type": "boolean",
"description": "Mode adresse : écarter les sièges probablement…"
}
}
}| string |
{
"type": "object",
"required": [],
"properties": {
"id": {
"type": "integer",
"minimum": 1,
"description": "Section recherches : fiche d'une recherche."
},
"type": {
"enum": [
"carte",
"portefeuille"
],
"type": "string",
"description": "Section recherches : carte ou portefeuille."
},
"limite": {
"type": "integer",
"default": 25,
"maximum": 100,
"minimum": 1
},
"curseur": {
"type": "string"
},
"origine": {
"enum": [
"veille",
"zone"
],
"type": "string",
"default": "veille",
"description": "Section alertes : événements des veilles (biens)…"
},
"section": {
"enum": [
"synthese",
"biens",
"zones",
"alertes",
"instantanes",
"comparaison",
"recherches",
"notifications",
"rapport",
"equipe",
"societes"
],
"type": "string",
"default": "synthese"
},
"id_apres": {
"type": "integer",
"minimum": 1,
"description": "Section comparaison : identifiant de la version…"
},
"id_avant": {
"type": "integer",
"minimum": 1,
"description": "Section comparaison : identifiant de la version…"
},
"non_lues": {
"type": "boolean",
"default": false,
"description": "Section notifications : seulement les non lues."
},
"reference": {
"type": "string"
}
}
}| parcelles | array | Références cadastrales, douze au plus. |
| retrait_m | number | Hypothèse de retrait en mètres, appliqué à toutes… |
| code_insee | string |
| parcelle_id | string |
| numero_parcelle | string |
| hauteur_niveau_m | number | Hauteur d'un niveau en mètres (défaut 3). |
| adresse_confirmee | string | Adresse confirmée par l'utilisateur… |
| confirmer_adresse | boolean | true = l'utilisateur a confirmé l'adresse retenue… |
| emprise_au_sol_pct | number | Hypothèse de coefficient d'emprise au sol en %. |
{
"type": "object",
"required": [],
"properties": {
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"projet": {
"type": "object",
"description": "Cerfa, délais : type…"
},
"adresse": {
"type": "string"
},
"niveaux": {
"type": "number",
"maximum": 60,
"description": "Nombre de niveaux, facultatif ; déduit de la…"
},
"section": {
"type": "string"
},
"batiments": {
"type": "boolean",
"description": "true : ajoute la fiche des bâtiments existants…"
},
"geometrie": {
"type": "boolean",
"description": "true : ajoute la géométrie GeoJSON des parcelles…"
},
"hauteur_m": {
"type": "number",
"maximum": 200,
"minimum": 3,
"description": "Hypothèse de hauteur maximale en mètres…"
},
"parcelles": {
"type": "array",
"items": {
"oneOf": [
{
"type": "string",
"description": "« AH-184 » (avec code_insee) ou…"
},
{
"type": "object",
"required": [
"section",
"numero"
],
"properties": {
"numero": {
"type": "string"
},
"section": {
"type": "string"
},
"code_insee": {
"type": "string"
}
}
}
]
},
"maxItems": 12,
"description": "Références cadastrales, douze au plus."
},
"retrait_m": {
"type": "number",
"maximum": 100,
"description": "Hypothèse de retrait en mètres, appliqué à toutes…"
},
"code_insee": {
"type": "string"
},
"parcelle_id": {
"type": "string"
},
"numero_parcelle": {
"type": "string"
},
"hauteur_niveau_m": {
"type": "number",
"maximum": 6,
"minimum": 2,
"description": "Hauteur d'un niveau en mètres (défaut 3)."
},
"adresse_confirmee": {
"type": "string",
"description": "Adresse confirmée par l'utilisateur…"
},
"confirmer_adresse": {
"type": "boolean",
"description": "true = l'utilisateur a confirmé l'adresse retenue…"
},
"emprise_au_sol_pct": {
"type": "number",
"maximum": 100,
"description": "Hypothèse de coefficient d'emprise au sol en %."
}
}
}| trafic | boolean | Ajouter le trafic routier… |
| adresse | string |
| curseur | string |
| minutes | number | Durée du trajet, de 5 à 45 (voiture) ou 30… |
| decalage | integer |
| secteurs | array | Sections NAF à garder (lettres A à U), ex.… |
| transports | boolean | Ajouter les arrêts de transport en commun dans la… |
| demographie | boolean | Ajouter les habitants de la zone et leurs revenus… |
| zone_tracee | object | Mode trace : GeoJSON Polygon [longitude… |
| effectif_min | string | Code INSEE de la tranche d’effectif minimale de… |
| codes_postaux | boolean | Ajouter les codes postaux des communes que la… |
| proprietaires | boolean | Ajouter les propriétaires PERSONNES MORALES des… |
| naf_concurrents | array | Codes NAF (rév. 2) des concurrents, pour la… |
| zones_emboitees | array | Trois valeurs croissantes (ex. [5,10,15]) : zones… |
| ca_inconnu_exclu | boolean | Avec ca_min : exclure aussi les sociétés dont le… |
| adresse_confirmee | string | Adresse confirmée par l'utilisateur… |
| confirmer_adresse | boolean | true = l'utilisateur a confirmé l'adresse retenue… |
| zone_administrative | object | Mode admin : { type… |
{
"type": "object",
"required": [
"mode"
],
"properties": {
"km": {
"type": "number",
"maximum": 30,
"description": "Rayon en km, de 1 à 30 (rayon, isodistance)."
},
"lat": {
"type": "number",
"maximum": 90,
"minimum": -90
},
"lon": {
"type": "number",
"maximum": 180,
"minimum": -180
},
"mode": {
"enum": [
"voiture",
"a_pied",
"velo",
"poids_lourd",
"rayon",
"isodistance",
"trace",
"admin"
],
"type": "string",
"description": "voiture, velo, poids_lourd : jusqu’à 45 min…"
},
"besoin": {
"enum": [
"team_building",
"restauration_entreprise",
"seminaire",
"bien_etre_sport",
"services_entreprise"
],
"type": "string",
"description": "Besoin métier du commerce…"
},
"ca_min": {
"type": "number",
"description": "Chiffre d’affaires minimal en euros."
},
"detail": {
"type": "boolean",
"description": "Défaut false : sortie résumée…"
},
"limite": {
"type": "integer",
"maximum": 200,
"minimum": 1
},
"profil": {
"enum": [
"restaurant",
"boulangerie",
"creche",
"coiffeur",
"pharmacie",
"salle_de_sport",
"auto_ecole"
],
"type": "string",
"description": "Profil de cible NAF (restaurant, boulangerie…)…"
},
"trafic": {
"type": "boolean",
"description": "Ajouter le trafic routier…"
},
"adresse": {
"type": "string"
},
"curseur": {
"type": "string"
},
"minutes": {
"type": "number",
"maximum": 45,
"minimum": 5,
"description": "Durée du trajet, de 5 à 45 (voiture) ou 30…"
},
"decalage": {
"type": "integer",
"minimum": 0
},
"secteurs": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Ua-u]$"
},
"description": "Sections NAF à garder (lettres A à U), ex.…"
},
"transports": {
"type": "boolean",
"description": "Ajouter les arrêts de transport en commun dans la…"
},
"demographie": {
"type": "boolean",
"description": "Ajouter les habitants de la zone et leurs revenus…"
},
"zone_tracee": {
"type": "object",
"description": "Mode trace : GeoJSON Polygon [longitude…"
},
"effectif_min": {
"enum": [
"01",
"02",
"03",
"11",
"12",
"21",
"22",
"31",
"32",
"41",
"42",
"51",
"52",
"53"
],
"type": "string",
"description": "Code INSEE de la tranche d’effectif minimale de…"
},
"codes_postaux": {
"type": "boolean",
"description": "Ajouter les codes postaux des communes que la…"
},
"proprietaires": {
"type": "boolean",
"description": "Ajouter les propriétaires PERSONNES MORALES des…"
},
"naf_concurrents": {
"type": "array",
"items": {
"type": "string",
"pattern": "^[0-9]{2}\\.?[0-9]{2}[A-Za-z]$"
},
"description": "Codes NAF (rév. 2) des concurrents, pour la…"
},
"zones_emboitees": {
"type": "array",
"items": {
"type": "number"
},
"maxItems": 3,
"minItems": 3,
"description": "Trois valeurs croissantes (ex. [5,10,15]) : zones…"
},
"ca_inconnu_exclu": {
"type": "boolean",
"description": "Avec ca_min : exclure aussi les sociétés dont le…"
},
"adresse_confirmee": {
"type": "string",
"description": "Adresse confirmée par l'utilisateur…"
},
"confirmer_adresse": {
"type": "boolean",
"description": "true = l'utilisateur a confirmé l'adresse retenue…"
},
"zone_administrative": {
"type": "object",
"description": "Mode admin : { type…"
}
}
}