API ImmoPilot
Branchez le contrôle de conformité d'ImmoPilot dans votre logiciel d'agence, votre réseau ou votre outil maison : mentions obligatoires, DPE vérifié dans l'observatoire de l'ADEME, encadrement des loyers, avec le texte corrigé prêt à afficher.
Authentification
Chaque agence crée ses clés dans Réglages → Clés API. Envoyez-la dans l'en-tête Authorization: Bearer <clé>. Une clé ne donne accès qu'aux annonces de son agence ; elle peut être révoquée à tout moment. URL de base : https://immopilot.apostophe.fr/api/v1.
POST/check
Vérifie une annonce sans l'enregistrer : idéal juste avant publication.
curl -X POST https://immopilot.apostophe.fr/api/v1/check \ -H "Authorization: Bearer ip_live_…" -H "Content-Type: application/json" \ -d '{"ref":"LY-2041","transaction":"vente","city":"Lyon","arrondissement":"3e", "price":329000,"fees_payer":"acquereur","fees_pct":4.8,"surface":68,"rooms":3, "dpe":"E","ges":"C","dpe_number":"2469E3623546Y","copro":true,"copro_lots":24, "text":"Beau T3 avec balcon…"}' # → 200 { "score": 62, "blocking": 2, "issues": [ { "code": "DPE_CLASSE_DIFF", "severity": "bloquant", "message": "Classe énergie de l'annonce (E) différente du DPE enregistré (D).", … } ], "legal_block": "Prix : 329 000 € honoraires inclus, dont 4,8 % TTC…", "dpe": { "number": "2469E3623546Y", "energy": "D", "climate": "B", "valid_until": "2034-10-14" } }
PUT/listings
Remplace tout le stock de l'agence (comme un flux Poliris « annule et remplace ») : les annonces absentes sont retirées, les problèmes sont suivis (nouveau → corrigé) et l'agence est alertée des changements. Jusqu'à 5 000 annonces par appel.
curl -X PUT …/api/v1/listings -H "Authorization: Bearer …" -H "Content-Type: application/json" \ -d '[{"ref":"LY-2041", …}, {"ref":"LY-2055", …}]' # → { "listings": 2, "new_listings": 1, "removed": 0, "new_issues": [ {"ref":"LY-2055","severity":"bloquant","message":"…"} ], "fixed_issues": [] }
POST/listings
Ajoute ou met à jour des annonces sans toucher au reste du stock. Même format et même réponse que PUT.
GET/listings · /listings/{ref}
Le stock suivi avec son score et le nombre de points ouverts, puis le détail d'une annonce : problèmes ouverts, texte corrigé, positionnement prix vs marché (DVF).
Champs d'une annonce
| Champ | Description |
|---|---|
ref | Référence unique dans l'agence (obligatoire pour /listings) |
transaction | vente ou location |
property_type, title, text | Type de bien, titre et texte publiés |
city, arrondissement, address | Commune ; adresse (non publiée) pour l'encadrement des loyers et le prix de marché |
price, surface, rooms, build_year | Prix FAI ou loyer charges comprises, surface, pièces, année de construction |
fees_payer, fees_pct | vendeur / acquereur, % TTC à la charge de l'acquéreur |
dpe, ges, dpe_number, energy_cost_min, energy_cost_max | Classes, numéro ADEME, fourchette des dépenses d'énergie |
copro, copro_lots, copro_charges_year, copro_procedure | Copropriété |
charges, deposit, furnished, tenant_fees, tenant_fees_edl, rent_supplement | Location |
negotiator | E-mail ou nom du négociateur : l'annonce lui est attribuée s'il fait partie de l'équipe (une attribution manuelle reste prioritaire) |
Erreurs
| Code | Signification |
|---|---|
| 401 | Clé absente, invalide ou révoquée |
| 404 | Annonce inconnue |
| 413 | Plus de 5 000 annonces dans un appel |
| 422 | Format invalide (liste attendue, ref manquante…) |