Skip to content
# gesteco — Gesteco inc.
- site: https://gesteco.ca/location (Umbraco .NET + app Vue homeRentalBrowsingApp)
- méthode: API JSON publique
/umbraco/api/units?locale=fr&page=N&pageSize=100
- annonces: 14 (338 unités au total dans l'API : 214 louées, 75 vendues,
8 réservées, 41 disponibles dont 27 en vente — filtrées)
- couverture (sur 14 annonces): prix 100%, dispo (date ISO) 100%, superficie
93%, type 100%, images 100%, description 100%, chiens (structuré) 100%
- fixture: ok (4 requêtes JSON) · test: ok (2 verts)
# Découverte
- robots.txt : tout permis sauf pages 404. Vérifié avant construction.
- L'endpoint
unitconfigurations documenté ne donne que les types d'unités ;
la cartographie du bundle JS (/dist/homeRentalBrowsingApp/index.js) a
révélé le vrai endpoint GET /umbraco/api/units (paramètres regionIds,
statuses, listingTypes, dogAllowed, page, pageSize…). Pagination par taille
de page (l'en-tête X-Total-Pages n'est pas rejouable par les fixtures).
# Filtres (fidèles à la source)
status == "Available" (énumération de l'API : Available/Rented/Reserved/Sold)
buildingListingType == 1 = location (0 = achat, prix de vente à 6 chiffres
— hors périmètre Lou-Ka), rentalUrl présent, isActive non faux.
- external_id :
id numérique de l'unité (clé BD Umbraco, stable).
- url :
rentalUrl (fiche localisée /location/<région>//<bâtiment>/…).
- price :
rawBasePrice (nombre) ; availability : availabilityDate ISO.
- address :
fullAddress (« 8-32 Chemin de l'Horizon, Waterloo, J0E 2N0 ») ;
city : champ city de l'API — Granby (9), Waterloo (4), Bromont (1),
Cowansville selon l'inventaire.
- unit_type :
unitUnitConfigurations[0].unitConfigurationName
(« 4 ½ + bureau » -> 4½) ; area_sqft : livingArea (pi²).
- amenities : configuration, chambres, sdb, étage (
floorName), borne de
recharge (hasChargingStation) — tous champs structurés de l'API.
- details :
dog_allowed (booléen API), project (nom du projet).
- description : champ FR natif
description (HTML nettoyé) — les champs
« localized » ressortent en anglais malgré locale=fr ; promotion
(promotions, ex. « 1ER MOIS GRATUIT ») préfixée à la description.
- images : galerie de l'unité +
buildingImageUrl + plan (planImageUrl).
# Champs indisponibles à la source
- lat/lng par unité (la carte du site géocode côté client).
- Chats/animaux autres que chiens : seulement en texte de description.
# Fragilités
- API non versionnée : un changement de schéma Umbraco casserait le parsing
(test de rejeu en sentinelle).
rawBasePrice sert aussi aux unités en vente (300 000 $ et plus) : le
filtre buildingListingType est indispensable ; garde-fou parse 100-20 000 $.