SPB Git

spb/lou-ka Public

Lou·Ka — tous les logements à louer du Québec, un seul endroit.

HTML 99.7%
2.8 KB

# 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.

# Champs extraits

  • 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 $.