# Realtor.ca (MLS Québec) (`realtor_ag_ca`) *Généré le 2026-08-28 22:22 par `scripts/gen_connector_docs.py` — fichier produit automatiquement, ne pas éditer à la main.* ## Registre (`data/sources.json`) - **Site** : https://www.realtor.ca - **Recherche** : https://www.realtor.ca/map#view=list&Province=QC - **Couverture** : Toute la province — agrégateur MLS pan-bannières (SCI/CREA) - **Type** : agrégateur - **Statut** : actif > API interne api2.realtor.ca/Listing.svc/PropertySearch_Post (POST form). Protégée DataDome/Incapsula : accès direct = 403, mais REJOUABLE via Scrapfly ASP SANS render_js (vérifié 2026-08-18) → JSON riche : MLS, GPS, prix, CAC/SDB, superficie, photos, courtier+agence. 200 fiches/page, plafond serveur 600/recherche → sharding par 14 boîtes lat/lng QC, tri plus récentes d'abord (Sort=6-D). Budget borné IMMOKA_REALTOR_MAX (défaut 2 000 fiches/sync ≈ 10 appels Scrapfly — les ~10 shards les plus denses ; augmenter pour couvrir les régions éloignées ; 0 = désactivé). external_id = n° MLS Centris + infixe _ag_ → la dédup masque tout recoupement avec les connecteurs directs ; seules les fiches des bannières non couvertes restent visibles. Fenêtre glissante : les fiches anciennes sortent du budget au fil des syncs (miss_count → inactif). ## Mécanique (introspection du code) - Module : `immoka/connectors/realtor_ca.py` — classe `RealtorCaConnector` - Délai entre requêtes : 0.2 s ; cache détail BD : oui - Budgets env (enrichissement détail plafonné/exécution) : `IMMOKA_REALTOR_MAX` (défaut 2000), `IMMOKA_REALTOR_DETAIL_LIMIT` (défaut 100) **En-tête du module :** > Immo-Ka — Agrégateur de maisons à vendre (province de Québec) > Auteur : Simon-Pierre Boucher — contact@spboucher.ai > connectors/realtor_ca.py : Realtor.ca (couverture MLS pan-bannières, QC) > API interne https://api2.realtor.ca/Listing.svc/PropertySearch_Post (POST > form). Protégée (DataDome/Incapsula) : l'accès direct renvoie 403, mais > l'API se REJOUE via Scrapfly ASP SANS render_js (1 crédit-appel ASP, pas de > navigateur) → JSON complet : n° MLS, GPS, prix, CAC/SDB, superficie, photos, > courtier + agence. Vérifié 2026-08-18 : 200 fiches/page, plafond serveur > 600 fiches (MaxRecords) par recherche → SHARDING par boîtes lat/lng > couvrant le Québec, tri « plus récentes d'abord » (Sort=6-D). > BUDGET BORNÉ : IMMOKA_REALTOR_MAX fiches max par sync (défaut 2 000, soit > ~10 appels Scrapfly), réparties en balayant la page 1 de chaque shard puis > les pages 2-3 si le budget le permet. Les fiches plus anciennes sortent de > la fenêtre au fil des syncs (miss_count → active=0) : le connecteur vaut > surtout pour les inscriptions récentes des bannières non couvertes. > Mettre IMMOKA_REALTOR_MAX=0 pour désactiver le connecteur. > source_id « realtor_ag_ca » : l'infixe _ag_ + external_id = n° MLS Centris > activent la dédup existante — toute fiche déjà couverte par un connecteur > direct (RE/MAX, Royal LePage, Sutton…) est masquée, seules les fiches > UNIQUES (petites bannières sans connecteur) restent visibles. > ENRICHISSEMENT DÉTAIL (2026-08-18) : la réponse PropertySearch_Post ne > contient qu'UNE photo et un PublicRemarks VIDE (vérifié) — la galerie > complète, la description et les caractéristiques Building/Land viennent de > l'API Listing.svc/PropertyDetails (GET, mêmes protections → Scrapfly ASP > sans render_js, 1 crédit-appel), rejouée avec CultureId=2 (français) via > ReferenceNumber= + PropertyID=. Cache BD detail_cache > (_detailutil.enrich) : chaque fiche n'est détaillée qu'UNE fois ; budget > IMMOKA_REALTOR_DETAIL_LIMIT appels/cycle (défaut 100, override ponctuel > IMMOKA_DETAIL_LIMIT) → rattrapage progressif du stock, nouveautés ensuite. ## Volumétrie & complétude (BD live) | Indicateur | Valeur | |---|---| | Annonces en base (toutes) | 7 658 | | Actives | 2 511 | | Visibles (après dédup) | 397 | | Masquées par la dédup | 2 114 | | GPS (lat/lng) | 99.7 % | | Photos | 100.0 % | | Prix | 100.0 % | | CAC (chambres) | 77.8 % | | SDB (salles de bains) | 77.8 % | | Année de construction | 76.8 % (dont rôle : 39.7 %) | | Taxes / évaluation municipale | 0.0 % | | Estimation Vrai-Prix (rôle) | 96.5 % | ## Synchronisation - **Dernier sync** : 2026-08-28 17:27 — trouvé 2 148, +181 / ~31 / -104 — OK - **Erreurs récentes** : 0 sur les 10 derniers syncs Voir aussi les [mécanismes transverses](INDEX.md#mécanismes-transverses-tous-connecteurs) (budgets détail, dédup Centris+adresse, jointure rôle vraiprix.db).