# garic — Garic Gestion Immobilière (Outaouais : Gatineau + Thurso) - site: https://garic.ca/a-louer/ - méthode: endpoint admin-ajax maison `garic_get_properties` (JSON structuré, nonce lu sur /a-louer/ à chaque sync) + fiches /a-louer/ via `self.detail()` (cache BD) - annonces: 47 (48 à l'inventaire moins 1 propriété d'Ottawa exclue) - couverture (sur 47 annonces): prix 100 %, adresse 100 %, type 100 %, dispo 100 %, lat/lng 100 %, secteur 94 %, description 100 % (via fiches, plafond 20/sync — le cache complète au fil des syncs), scores de mobilité - fixture: ok (22 requêtes, POST admin-ajax rejoué) · test: ok (2 verts) ## Champs extraits - **JSON de la grille** : `ID` (external_id **stable**), `post_title` = adresse civique complète (titre ET adresse), `prix_montant`/`prix_par` (« 900$ par mois »), `type` (« 4 ½ » → 4½, Studio), `pieces_chambres`, `pieces_salles_de_bain` → `details.bathrooms`, `superficie` (souvent vide), `availability` (« Disponible maintenant »), image (pleine taille), URL de la fiche. - **Géocodage publié par la source** (marqueurs Leaflet/OSM) : lat/lng par annonce + quartier OpenStreetMap (`display_name`) → secteur (Hull, Vieux-Gatineau, Aylmer, Masson-Angers, Buckingham, Templeton, Deschênes, Le Plateau…). Les segments génériques (rue, MRC, code postal) sont écartés ; une municipalité distincte révélée par le géocodage (**Thurso**) devient la ville. - **Fiche détail** (cache BD, plafond 20/sync) : description longue, `Inclusions` (amenities), `À proximité` (dans la description), Walk/Transit/Bike Scores → details. - **Exclusion** : l'unique propriété d'`Ottawa` (champ `ville` de la source) — périmètre Québec. ## Champs indisponibles à la source - Superficie : champ présent mais vide sur la quasi-totalité des annonces. - Meublé/animaux : pas de champ structuré (les descriptions le disent parfois — textmine). ## Fragilités - Le **nonce** admin-ajax expire : relu sur la page /a-louer/ à chaque sync (2 requêtes fixes + fiches). - Endpoint maison non documenté : si le thème change, le POST échoue proprement (0 annonce, la sync précédente reste en BD). - Toutes les annonces affichent « Disponible maintenant » : la date réelle fine n'est pas publiée par l'API. - robots.txt : Yoast « Disallow: » (tout permis). ## Échantillon - `garic:6663 | 2-74 Rue Saint-Paul, Gatineau, QC J8P 4V6 | Gatineau / Vieux-Gatineau | Studio | 900$ par mois | now | lat/lng OSM | walk 75, transit 38, bike 72 | Inclusions : cuisinière, réfrigérateur` - `garic:6579 | 2-478 Boul des Grives, Gatineau, QC J9A 3T5 | Gatineau | 5½ | 1 800 $` - `garic:6458 | 332 Ave. de Buckingham | Gatineau / Buckingham | 4½ | 1 100 $`