{
 "version": 1,
 "marque": "Installateurs d'alarme",
 "domain": "https://installateur-alarme.pages.dev",
 "langue": "fr",
 "ui_tools": [
  {
   "name": "filter_table",
   "description": "Filtrer le tableau-registre affiché sur cette page. Le résultat s'affiche visiblement sur la page.",
   "ancre": "registertabelle",
   "inputSchema": {
    "type": "object",
    "properties": {
     "texte": {
      "type": "string"
     }
    },
    "required": [
     "texte"
    ]
   }
  }
 ],
 "ui_badge": "%s outils disponibles pour votre agent",
 "genere_le": "2026-11-05",
 "note": "Ces outils sont décrits dans `/api/v1/tools.json` et appelables dans le navigateur via WebMCP. Ils sont gratuits.",
 "paiement": {
  "statut": "non_active",
  "chemins_reserves": [
   "/api/v1/changements.json",
   "/api/v1/jeu-complet.json"
  ],
  "prix": null,
  "contact": "https://installateur-alarme.pages.dev/",
  "note": "Réservé — pas encore servi. Conditions : https://installateur-alarme.pages.dev/"
 },
 "tools": [
  {
   "name": "find_place",
   "description": "Trouver les entités de l'annuaire proches d'une commune ou d'un code postal.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "lieu": {
      "type": "string",
      "description": "Commune ou code postal."
     }
    },
    "required": [
     "lieu"
    ]
   },
   "acces": "gratuit",
   "source": "/assets/institute.json"
  },
  {
   "name": "resolve_code",
   "description": "Résoudre un identifiant dans le registre. Un code absent de ce millésime est signalé comme introuvable — jamais une réponse approchée.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "code": {
      "type": "string",
      "description": "L'identifiant à résoudre.",
      "minLength": 9
     }
    },
    "required": [
     "code"
    ]
   },
   "acces": "gratuit",
   "source": "/api/v1/siret/",
   "fragments": 61,
   "longueur_min": 9
  },
  {
   "name": "describe_dataset",
   "description": "Couverture, source, licence et date de collecte de cet annuaire.",
   "inputSchema": {
    "type": "object",
    "properties": {}
   },
   "acces": "gratuit",
   "source": "/api/v1/manifest.json"
  },
  {
   "name": "get_sample",
   "description": "Échantillon gratuit du jeu de données, au format de la livraison complète.",
   "inputSchema": {
    "type": "object",
    "properties": {}
   },
   "acces": "gratuit",
   "source": "/api/v1/echantillon.json"
  },
  {
   "name": "get_entity",
   "description": "Récupérer une entité par son identifiant : nom, lieu, attributs et adresse de sa page.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "id": {
      "type": "string",
      "description": "Identifiant de l'entité."
     }
    },
    "required": [
     "id"
    ]
   },
   "acces": "gratuit",
   "source": "/api/v1/facettes.json"
  },
  {
   "name": "compare_entities",
   "description": "Mettre plusieurs entités CÔTE À CÔTE et dire en quoi elles diffèrent. Dix au maximum.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "ids": {
      "type": "array",
      "maxItems": 10,
      "items": {
       "type": "string"
      },
      "description": "Identifiants des entités à comparer."
     }
    },
    "required": [
     "ids"
    ]
   },
   "acces": "gratuit",
   "source": "/api/v1/facettes.json"
  },
  {
   "name": "filter_entities",
   "description": "Filtrer les entités sur plusieurs critères à la fois. Rend les entités correspondantes et leur adresse sur le site.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "forme": {
      "enum": [
       "Association déclarée",
       "Groupement de droit privé",
       "Personne morale de droit étranger",
       "SA à conseil d'administration",
       "SA à directoire",
       "SARL / EURL",
       "SARL coopérative (SCOP)",
       "SAS / SASU",
       "SNC",
       "Société étrangère immatriculée au RCS",
       "Société étrangère non immatriculée",
       "code 2800",
       "code 5659",
       "code 5660",
       "code 6220"
      ],
      "description": "Filtrer par forme."
     },
     "effectif": {
      "enum": [
       "0 salarié",
       "1 000 à 1 999 salariés",
       "1 ou 2 salariés",
       "10 à 19 salariés",
       "100 à 199 salariés",
       "2 000 à 4 999 salariés",
       "20 à 49 salariés",
       "200 à 249 salariés",
       "250 à 499 salariés",
       "3 à 5 salariés",
       "50 à 99 salariés",
       "500 à 999 salariés",
       "6 à 9 salariés",
       "non renseigné"
      ],
      "description": "Filtrer par effectif."
     },
     "etablissements_ouverts": {
      "enum": [
       "0",
       "1",
       "10",
       "11",
       "12",
       "13",
       "14",
       "2",
       "21",
       "28",
       "3",
       "32",
       "4",
       "47",
       "5",
       "57",
       "6",
       "7",
       "8",
       "82",
       "9"
      ],
      "description": "Filtrer par etablissements_ouverts."
     },
     "etablissements_fermes": {
      "enum": [
       "0",
       "1",
       "10",
       "11",
       "16",
       "2",
       "22",
       "23",
       "27",
       "28",
       "3",
       "4",
       "41",
       "47",
       "5",
       "51",
       "6",
       "7",
       "8",
       "80",
       "9"
      ],
      "description": "Filtrer par etablissements_fermes."
     },
     "categorie": {
      "enum": [
       "ETI",
       "GE",
       "PME"
      ],
      "description": "Filtrer par categorie."
     },
     "limite": {
      "type": "integer",
      "minimum": 1,
      "maximum": 200
     }
    }
   },
   "acces": "gratuit",
   "source": "/api/v1/facettes.json",
   "facettes": [
    "forme",
    "effectif",
    "etablissements_ouverts",
    "etablissements_fermes",
    "categorie"
   ]
  },
  {
   "name": "changes_since",
   "description": "Différentiel entre deux millésimes du registre. RÉSERVÉ : le périmètre et les conditions se fixent à la demande.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "depuis": {
      "type": "string",
      "format": "date"
     }
    },
    "required": [
     "depuis"
    ]
   },
   "acces": "reserve",
   "statut": "reserve",
   "conditions": "Réservé — pas encore servi. Conditions : https://installateur-alarme.pages.dev/",
   "source": "/api/v1/changements.json"
  },
  {
   "name": "export_dataset",
   "description": "Export complet et normalisé du jeu de données. RÉSERVÉ : périmètre, format et conditions se fixent à la demande.",
   "inputSchema": {
    "type": "object",
    "properties": {}
   },
   "acces": "reserve",
   "statut": "reserve",
   "conditions": "Réservé — pas encore servi. Conditions : https://installateur-alarme.pages.dev/",
   "source": "/api/v1/jeu-complet.json"
  },
  {
   "name": "request_dataset",
   "description": "Adresser à l'éditeur une demande portant sur le jeu complet. Ne transmet que ce qui est renseigné ici.",
   "inputSchema": {
    "type": "object",
    "properties": {
     "volume": {
      "type": "string",
      "description": "Périmètre souhaité (territoire, période, nombre de lignes)."
     },
     "usage": {
      "type": "string",
      "description": "Usage prévu des données."
     },
     "contact": {
      "type": "string",
      "description": "Adresse électronique pour la réponse."
     }
    },
    "required": [
     "contact"
    ]
   },
   "acces": "gratuit",
   "endpoint": "https://formspree.io/f/myegjvqn",
   "source_lead": "FR · Installateurs d'alarme · installateur-alarme.pages.dev · MCP"
  }
 ]
}