API obligation de rénovation
Les règles de rénovation énergétique de Flandre, Bruxelles et Wallonie, datées et sourcées, prêtes pour vos logiciels et vos agents IA. Le même moteur que notre simulateur public.
- REST · JSON
- Serveur MCP
- Sources officielles
API REST
rules : les règles d'une région, en vigueur ou annoncées. evaluate : un bien est-il visé, et avant quand.
Serveur MCP
Branchez votre assistant ou votre agent IA : trois outils en lecture seule, même moteur que l'API.
Données vérifiées
Chaque règle porte sa source officielle et sa date de vérification. Une règle annoncée n'est jamais présentée comme exigible.
Évaluer un bien
Requête
curl -X POST https://immo-checker.be/api/v1/obligations/evaluate \ -H "Authorization: Bearer ro_live_…" \ -H "content-type: application/json" \ -d '{"region":"flanders","labels":["F"], "actDate":"2024-03-15","use":"owner_occupied"}'
Réponse
{ "rulesVersion": "2026-10-01.d070e3de", "assessments": [{ "ruleId": "fl_renovatieverplichting_d", "force": "in_force", "applies": "yes", "target": "D", "deadline": "2030-03-15", "source": { "url": "https://www.vlaanderen.be/…" } }], "notice": "Information based on official sources; not legal advice. …" }
Information fondée sur les sources officielles, pas un conseil juridique. La clé est facultative pour essayer ; elle donne un quota dédié.
Évaluer un portefeuille
Requête
curl -X POST https://immo-checker.be/api/v1/obligations/evaluate/batch \ -H "Authorization: Bearer ro_live_…" \ -H "content-type: application/json" \ -d '{ "items": [ {"ref":"immeuble-12/lot-3","region":"flanders","labels":["F"],"actDate":"2024-03-15","use":"owner_occupied"}, {"ref":"rue-haute-4","region":"brussels","labels":["E"],"use":"rented"} ] }'
Réponse
{ "rulesVersions": { "flanders": "2026-10-01.d070e3de", "brussels": "2026-09-18.cc5dc2cd" }, "results": [ { "ref": "immeuble-12/lot-3", "assessments": [ { "ruleId": "fl_renovatieverplichting_d", "applies": "yes", "deadline": "2030-03-15" } ] }, { "ref": "rue-haute-4", "assessments": [ { "ruleId": "bru_objectif_150_2045", "applies": "yes", "deadline": "2045-12-31" } ] } ], "notice": "Information based on official sources; not legal advice. …" }
Jusqu'à 500 biens par appel et 10 appels par minute ; chaque bien compte 1 dans le quota de la clé. Accès sur demande. Un lot refusé (bien invalide, solde insuffisant) ne consomme rien : la réponse liste les biens fautifs ou le solde restant.
Relire les règles d'une date
Requête
curl "https://immo-checker.be/api/v1/obligations/rules/history?region=wallonia" \ -H "Authorization: Bearer ro_live_…" curl "https://immo-checker.be/api/v1/obligations/rules/history?region=wallonia&at=2027-03-12T10:00:00Z" \ -H "Authorization: Bearer ro_live_…"
Réponse
{ "region": "wallonia", "at": "2027-03-12T10:00:00.000Z", "version": "2026-09-18.d1fbe918", "observedAt": "2026-10-01T08:10:00.000Z", "rules": [ { "id": "wal_acquereur_2028", "force": "announced", … }, { "id": "wal_sortie_labels_2031", "force": "announced", … } ], "notice": "Information based on official sources; not legal advice. …" }
Les règles telles que l'API les servait à l'instant at : de quoi dater un dossier de crédit ou un audit. L'historique commence à la mise en service de la fonction ; avant le premier instantané, la réponse est 404 no_snapshot. Chaque lecture compte 1 dans le quota de la clé. Accès sur demande.
Être prévenu d'un changement (webhooks)
Abonnement
curl -X POST https://immo-checker.be/api/v1/obligations/webhooks \ -H "Authorization: Bearer ro_live_…" \ -H "content-type: application/json" \ -d '{ "url": "https://hooks.banque.be/immochecker", "regions": ["wallonia"] }'
{ "id": "5b1e…", "url": "https://hooks.banque.be/immochecker", "regions": ["wallonia"], "createdAt": "2026-10-12T08:00:00.000Z", "suspendedAt": null, "secret": "whsec_…" }
Le secret de signature (whsec_…) n'est montré qu'une fois, dans la réponse à la création : conservez-le.
Message reçu à chaque changement
{ "event": "rules.changed", "deliveryId": "8f3c…", "region": "wallonia", "previousVersion": "2026-09-18.d1fbe918", "version": "2026-09-18.46148c46", "observedAt": "2028-01-02T08:10:00.000Z", "changes": [ { "ruleId": "wal_acquereur_2028", "change": "modified", "before": { "force": "announced", … }, "after": { "force": "in_force", … } } ] }
Vérifier la signature (Node.js)
import { createHmac, timingSafeEqual } from "node:crypto"; // rawBody: the request body as received (before JSON.parse) // header: req.headers["immochecker-signature"] — secret: whsec_… export function verify(rawBody, header, secret) { const [, t, v1] = /^t=(\d+),v1=([0-9a-f]{64})$/.exec(header ?? "") ?? []; if (!t || Math.abs(Date.now() / 1000 - Number(t)) > 300) return false; const expected = createHmac("sha256", secret).update(`${t}.${rawBody}`).digest(); return timingSafeEqual(Buffer.from(v1, "hex"), expected); }
Quand les règles d'une région changent, chaque abonné reçoit l'ancienne version, la nouvelle et, règle par règle, ce qui a changé avec sa source. Sans réponse 2xx, jusqu'à 7 envois sur environ 24 h ; après 3 changements non livrés de suite, l'abonnement est suspendu. Au plus 3 abonnements par clé, hors quota. Accès sur demande.
Connecter un agent (MCP)
Adresse du serveur
https://immo-checker.be/api/mcp/obligationsOutils
get_renovation_rules(region) evaluate_obligation(region, labels, actDate, use) list_public_desks(postalCode)
Configuration (exemple)
{ "mcpServers": { "immochecker-obligations": { "url": "https://immo-checker.be/api/mcp/obligations", "headers": { "Authorization": "Bearer ro_live_…" } } } }
Accès
| Offre | Contenu | Limite |
|---|---|---|
| Gratuit sans clé | rules, evaluate à l'unité, MCP | Limite par adresse IP |
| Clé de démo | Même contenu, quota dédié et suivi d'usage | Quota mensuel par clé |
| Lot | Évaluation en lot, jusqu'à 500 biens par appel | Sur demande |
| Historique | Règles servies à une date, liste des versions | Sur demande |
| Webhooks | Changements de règles envoyés à votre serveur, signés | Sur demande |
Banque, courtier, logiciel d'audit ?
Demandez une clé de démo : nous vous montrons l'API sur vos propres cas.
contact@immo-checker.be
Questions fréquentes
D'où viennent les règles ?
Des pages officielles des trois régions (vlaanderen.be, environnement.brussels, energie.wallonie.be). Chaque règle renvoie à sa source et porte sa date de dernière vérification.
Que se passe-t-il quand une règle change ?
Une veille surveille les pages officielles ; un changement est relu avant publication. Le champ rulesVersion de chaque réponse change alors, ce qui permet de dater vos résultats. Les clients abonnés reçoivent le changement par webhook, et l'historique garde chaque version servie.
Comment le quota d'une clé est-il compté ?
Par mois civil. Chaque appel à rules ou evaluate compte, y compris un appel refusé pour entrée invalide ; via MCP, seuls les appels d'outil comptent.
Comment un lot est-il compté ?
Un bien = un appel du quota mensuel, réservé une fois le lot validé. Un lot invalide ou plus grand que le solde restant est refusé sans rien consommer, et la réponse indique le solde.
Que se passe-t-il si mon serveur ne répond pas ?
Le message est renvoyé à intervalles croissants pendant environ 24 heures, puis abandonné. Après 3 changements non livrés de suite, l'abonnement est suspendu : supprimez-le et recréez-le une fois votre serveur rétabli. L'historique des règles permet de rattraper ce qui a été manqué.
Pourquoi l'historique ne remonte-t-il pas plus loin ?
Il enregistre ce que l'API a réellement servi, à partir de la mise en service de la fonction. Nous ne reconstituons pas le passé : une version reconstruite ne serait pas une preuve.
