spb/ora-ka Public
Ora-Ka — cinq agrégateurs Ka, une barre de recherche hybride (exact + sémantique)
Python 80%
TypeScript 12.9%
CSS 6.8%
1{2 "_comment": "Immo-Ka — Registre des sources (agences de courtage immobilier, province de Québec). Un connecteur par agence. Auteur : Simon-Pierre Boucher — contact@spboucher.ai",3 "sources": [4 {5 "id": "remax_quebec",6 "name": "RE/MAX Québec",7 "url": "https://www.remax-quebec.com",8 "listing_url": "https://www.remax-quebec.com/fr/maison-a-vendre",9 "coverage": "Toute la province — ~5 000 courtiers, ~119 agences (bannière #1 au Québec)",10 "connector": "remax_quebec",11 "status": "actif",12 "type": "franchise"13 },14 {15 "id": "royal_lepage",16 "name": "Royal LePage (Québec)",17 "url": "https://www.royallepage.ca",18 "listing_url": "https://www.royallepage.ca/fr/search/homes/1/",19 "coverage": "Toute la province — ~2 233 courtiers, ~47 agences (Bridgemarq)",20 "connector": "royal_lepage",21 "status": "actif",22 "type": "franchise",23 "note": "Recherche par ville filtrable QC : GET /fr/search/homes/{page}/?search_str=<ville>, QC&prov_code=QC&city_name=<ville>&lat=&lng=&search_type=city -> 100% QC (46/page), classé par proximité, cap ~1250/recherche. Sharding par ~28 points d'ancrage QC + dédup MLS (= n° Centris dans /.../mls{no}/). Requêtes directes (pas de Firecrawl). Champs liste: adresse, ville, type, prix, CAC, SDB, coords (data-rlp-key), photo jumplisting, MLS."24 },25 {26 "id": "sutton",27 "name": "Groupe Sutton Québec",28 "url": "https://suttonquebec.com",29 "listing_url": "https://suttonquebec.com/maisons-a-vendre.html",30 "coverage": "Toute la province — ~1 300-1 500 courtiers, ~20 agences",31 "connector": "sutton",32 "status": "actif",33 "type": "franchise"34 },35 {36 "id": "via_capitale",37 "name": "Via Capitale",38 "url": "https://www.viacapitalevendu.com",39 "listing_url": "https://www.viacapitalevendu.com/recherche/residentiel/",40 "coverage": "Toute la province — ~5 300 propriétés, ~900-1 000 courtiers (québécoise, Bridgemarq)",41 "connector": "via_capitale",42 "status": "actif",43 "type": "franchise",44 "note": "ASP.NET rendu serveur derrière Cloudflare : accès via Firecrawl proxy=stealth. Résultats paginés ?page=N (34/page, ~155 pages). Parse: adresse, ville, secteur, région, type, prix, photos (images.viacapitale.info). CAC/SDB non captés à ce stade (icônes)."45 },46 {47 "id": "century21",48 "name": "Century 21 (Québec)",49 "url": "https://www.c21.ca",50 "listing_url": "https://listings.moxiworks.com/m214-1731446488/fr-ca",51 "coverage": "Toute la province — ~339 courtiers, ~22 agences",52 "connector": "century21",53 "status": "actif",54 "type": "franchise",55 "note": "Central c21.ca->moxiworks (company_uuid=3341197) : même flux search_v2 anonyme accessible, MAIS données Rest-of-Canada/MLS (pas Centris QC : Québec-ville=0). La couverture QC de C21 vient des sous-agences source.immo (c21_ag_*), déjà actives. Le central moxi n'ajoute rien au QC."56 },57 {58 "id": "proprio_direct",59 "name": "Proprio Direct",60 "url": "https://propriodirect.com",61 "listing_url": "https://propriodirect.com/propriete-a-vendre/",62 "coverage": "Toute la province — ~746 courtiers, agence unique (Bridgemarq)",63 "connector": "proprio_direct",64 "status": "actif",65 "type": "agence",66 "note": "Feed DDF (CREA) servi par API JSON interne POST propriodirect.com/fr/api/searchListings (corps {from:offset}, 30/page, champ total). ~3201 propriétés à vendre, données complètes + galeries photos. Hôte canonique sans www."67 },68 {69 "id": "exp_quebec",70 "name": "eXp Agence immobilière (Québec)",71 "url": "https://www.exprealty.ca",72 "listing_url": "https://www.exprealty.ca/fr-CA/search",73 "coverage": "Toute la province — ~400+ courtiers, agence virtuelle",74 "connector": "exp_quebec",75 "status": "a_faire",76 "type": "agence",77 "note": "Next.js + kvCORE/BoldTrail. Scrapfly asp+render_js rend la page mais ?state=QC NE filtre PAS (cartes = ON/Toronto par defaut, data-adm1st=ON) ; cartes marquees data-compliance-requirement=signIn (DDF gated). js_scenario scroll n'ajoute pas de cartes (18 data-listing, 6 uniques, ON). Pages region QC (/montreal-qc-real-estate) rendent 0 carte. Reste: API kvCORE authentifiee (provider-id 30000) filtree state=QC, non contournable sans session."78 },79 {80 "id": "kw_urbain",81 "name": "Keller Williams Urbain",82 "url": "https://www.kwurbain.ca",83 "listing_url": "https://www.kwurbain.ca/inscriptions/",84 "coverage": "Grand Montréal + Rive-Sud/Rive-Nord",85 "connector": "kw_urbain",86 "status": "actif",87 "type": "franchise",88 "note": "Cartes HTML rendues serveur (plateforme realestate.marketingwebsites.ca) — 349 inscriptions sur une page. Champs: adresse, ville, région, prix, chambres, sdb, photo."89 },90 {91 "id": "kw_distinction",92 "name": "Keller Williams Distinction",93 "url": "https://www.kwdistinction.com",94 "listing_url": "https://www.kwdistinction.com/sitemap.xml",95 "coverage": "Gatineau / Outaouais",96 "connector": "kw_distinction",97 "status": "actif",98 "type": "franchise",99 "note": "ASP.NET (tonikwebstudio) : grille/fiche en AJAX (prix/photos non rendus statiquement, ni fiablement via Firecrawl). Enumération via sitemap.xml (167 propr.) ; slug d'URL = ville/type/chambres/rue/no-Centris. Champs liste: adresse, ville, secteur, type, chambres, Centris. Prix/photos NON dispo."100 },101 {102 "id": "vendirect",103 "name": "Vendirect",104 "url": "https://vendirect.ca",105 "listing_url": "https://vendirect.ca/proprietes/",106 "coverage": "Toute la province — ~609 courtiers, commission réduite",107 "connector": "vendirect",108 "status": "actif",109 "type": "agence",110 "note": "WordPress + plugin source-immo. API publique api-v1.source.immo (en-têtes x-si-account/api/appId depuis _configs.json), pagination next_token. ~64 propriétés à vendre, données complètes (prix, ch., sdb, pi², année, coords, photo)."111 },112 {113 "id": "expert_immobilier_pm",114 "name": "L'Expert Immobilier P.M.",115 "url": "https://expertimmobilierpm.com",116 "listing_url": "https://expertimmobilierpm.com/proprietes/",117 "coverage": "Grand Montréal — ~305 courtiers, grosse indépendante",118 "connector": "expert_immobilier_pm",119 "status": "actif",120 "type": "agence",121 "note": "Vrai site QC trouve (l'ancienne URL lexpertimmobilier.com = agence de Casablanca). WordPress + plugin mw-properties2 (plateforme marketingwebsites.ca, comme KW Urbain). /proprietes/ rend 9 fiches serveur (inventaire complet derriere l'API REST mw-properties/v2 en 401). Cartes: adresse, ville, type, prix, chambres, sdb, superficie ; fiche detail: galerie complete (marketingwebsites) + description. external_id = no Centris."122 },123 {124 "id": "engel_volkers",125 "name": "Engel & Völkers Montréal / Québec",126 "url": "https://immobilier.evquebec.com",127 "listing_url": "https://immobilier.evquebec.com/property-sitemap.xml",128 "coverage": "Montréal, Québec, Tremblant — luxe #1 au Québec",129 "connector": "engel_volkers",130 "status": "actif",131 "type": "luxe",132 "note": "immobilier.evquebec.com : property-sitemap.xml (~1240 fiches FR /propriete/{no-centris}/). Fiche = JSON-LD (prix/adresse/description) ; galerie séquentielle media.evquebec.com/listings/{id}/NN.webp (sondée jusqu'au 1er trou). Enrichissement cache+plafond (IMMOKA_EV_DETAIL_LIMIT)."133 },134 {135 "id": "sothebys_quebec",136 "name": "Sotheby's International Realty Québec",137 "url": "https://sothebysrealty.ca",138 "listing_url": "https://sothebysrealty.ca/en/search-results/province-quebec-real-estate/",139 "coverage": "Toute la province — luxe",140 "connector": "sothebys_quebec",141 "status": "actif",142 "type": "luxe",143 "note": "Recherche rendue côté client. Fiches enumérées via pages de résultats (grid public plafonné ~40 fiches province-wide ; pagination AJAX non exposée en URL). Chaque fiche enrichie via son JSON-LD Product : prix, galerie S3 complète (35-75 photos), description, MLS (sku), type. Limite : couverture = set public courant (~40) ; coverage complète nécessiterait l'endpoint AJAX de pagination."144 },145 {146 "id": "profusion",147 "name": "Profusion Immobilier (Christie's)",148 "url": "https://www.profusion.global",149 "listing_url": "https://www.profusion.global/acheter/nos-inscriptions/",150 "coverage": "Grand Montréal + province — luxe, affiliée Christie's",151 "connector": "profusion",152 "status": "actif",153 "type": "luxe",154 "note": "WordPress DIVI ; nos-inscriptions liste ~357 fiches /propriete/{no-centris}/ (HTML). Fiche = JSON-LD RealEstateListing (adresse, description, prix, courtier) + galerie profusionimmo.ca. Enrichissement cache+plafond (IMMOKA_PROFUSION_DETAIL_LIMIT)."155 },156 {157 "id": "barnes_quebec",158 "name": "BARNES Québec",159 "url": "https://barnes-quebec.com",160 "listing_url": "https://barnes-quebec.com/property",161 "coverage": "Montréal + province — luxe international",162 "connector": "barnes_quebec",163 "status": "actif",164 "type": "luxe",165 "note": "Algolia (App HCW55VIQNM, index quebec_all). ~344 propriétés, prix/MLS/chambres/sdb/superficie/géoloc. Images non indexées (viendront de la page détail). Dédoublonnage FR/EN par adresse."166 },167 {168 "id": "m_immobilier",169 "name": "M Immobilier",170 "url": "https://www.mimmobilier.com",171 "listing_url": "https://www.mimmobilier.com/properties",172 "coverage": "Grand Montréal — indépendante primée (Leading RE)",173 "connector": "m_immobilier",174 "status": "actif",175 "type": "luxe",176 "note": "Cartes HTML rendues serveur (/properties, PAS /proprietes). ~65 propriétés à vendre (locations filtrées). Champs: ville, adresse, prix, chambres, sdb, photos Centris, no Centris. Type non exposé."177 },178 {179 "id": "via_ag_elite",180 "name": "Via Capitale Elite",181 "url": "https://viacapitaleelite.immo",182 "listing_url": "https://viacapitaleelite.immo/proprietes/",183 "coverage": "Sous-agence Via Capitale (source.immo)",184 "connector": "via_ag_elite",185 "status": "actif",186 "type": "franchise",187 "role": "backup"188 },189 {190 "id": "via_ag_select",191 "name": "Via Capitale Select",192 "url": "https://viacapitaleselect.com",193 "listing_url": "https://viacapitaleselect.com/proprietes/",194 "coverage": "Sous-agence Via Capitale (source.immo)",195 "connector": "via_ag_select",196 "status": "actif",197 "type": "franchise",198 "role": "backup"199 },200 {201 "id": "via_ag_dumontroyal",202 "name": "Via Capitale Dumontroyal",203 "url": "https://viacapitaledumontroyal.com",204 "listing_url": "https://viacapitaledumontroyal.com/proprietes/",205 "coverage": "Sous-agence Via Capitale (source.immo)",206 "connector": "via_ag_dumontroyal",207 "status": "actif",208 "type": "franchise",209 "role": "backup"210 },211 {212 "id": "via_ag_acces",213 "name": "Via Capitale Acces",214 "url": "https://viacapitaleacces.com",215 "listing_url": "https://viacapitaleacces.com/proprietes/",216 "coverage": "Sous-agence Via Capitale (source.immo)",217 "connector": "via_ag_acces",218 "status": "actif",219 "type": "franchise",220 "role": "backup"221 },222 {223 "id": "c21_ag_quebec",224 "name": "Century 21 Québec (All Quebec)",225 "url": "https://quebec.c21.ca",226 "listing_url": "https://quebec.c21.ca",227 "connector": "c21_ag_quebec",228 "status": "actif",229 "role": "sous-agence",230 "platform": "source.immo",231 "note": "Compte source.immo partagé (quebec/excel/immoplus) = inventaire provincial C21 complet (~1600 à vendre). Pagination st/nt. Dédup par n° Centris."232 },233 {234 "id": "c21_ag_vision",235 "name": "Century 21 Vision (Outaouais)",236 "url": "https://vision.c21.ca",237 "listing_url": "https://vision.c21.ca",238 "connector": "c21_ag_vision",239 "status": "actif",240 "role": "sous-agence",241 "platform": "source.immo",242 "note": "Century 21 Vision (Gatineau) — compte source.immo distinct (~139 à vendre)."243 },244 {245 "id": "duproprio",246 "name": "DuProprio (sans courtier)",247 "url": "https://duproprio.com",248 "listing_url": "https://duproprio.com/sitemaps/fr/index.xml.gz",249 "coverage": "Toute la province — vente par le propriétaire (FSBO), ~7 600 propriétés QC",250 "connector": "duproprio",251 "status": "actif",252 "type": "fsbo",253 "note": "FSBO. Enumeration via sitemaps FR par region QC (/sitemaps/fr/<region>-listings.xml.gz) : l'URL encode region/ville/type/id. Fiche detail JSON-LD Product (prix, description, galerie photos.duproprio.com). Fetch direct + Scrapfly ASP en secours. agency='DuProprio (sans courtier)'."254 },255 {256 "id": "realta",257 "name": "Réalta Agence Immobilière",258 "url": "https://www.realta.ca",259 "listing_url": "https://www.realta.ca/proprietes/",260 "coverage": "Agence indépendante (Québec)",261 "connector": "realta",262 "status": "actif",263 "type": "agence",264 "note": "Plateforme source.immo (API publique api-v1.source.immo, config auto _configs.json). 83 propriétés à vendre. Généré par agences_source_immo.py."265 },266 {267 "id": "immodev",268 "name": "Immodev Agence Immobilière",269 "url": "https://www.immodev.ca",270 "listing_url": "https://www.immodev.ca/proprietes/",271 "coverage": "Agence indépendante (Québec)",272 "connector": "immodev",273 "status": "actif",274 "type": "agence",275 "note": "Plateforme source.immo (API publique api-v1.source.immo, config auto _configs.json). 93 propriétés à vendre. Généré par agences_source_immo.py."276 },277 {278 "id": "gaillardetz",279 "name": "Gaillardetz Agence Immobilière",280 "url": "https://www.gaillardetz.ca",281 "listing_url": "https://www.gaillardetz.ca/proprietes/",282 "coverage": "Agence indépendante (Québec)",283 "connector": "gaillardetz",284 "status": "actif",285 "type": "agence",286 "note": "Plateforme source.immo (API publique api-v1.source.immo, config auto _configs.json). 13 propriétés à vendre. Généré par agences_source_immo.py."287 },288 {289 "id": "domicilia",290 "name": "Domicilia Agence Immobilière",291 "url": "https://www.domicilia.com",292 "listing_url": "https://www.domicilia.com/proprietes/",293 "coverage": "Agence indépendante (Québec)",294 "connector": "domicilia",295 "status": "actif",296 "type": "agence",297 "note": "Plateforme source.immo (API publique api-v1.source.immo, config auto _configs.json). 1427 propriétés à vendre. Généré par agences_source_immo.py."298 },299 {300 "id": "niddamour",301 "name": "Nid d'Amour Agence Immobilière",302 "url": "https://www.niddamour.ca",303 "listing_url": "https://www.niddamour.ca/proprietes/",304 "coverage": "Agence indépendante (Québec)",305 "connector": "niddamour",306 "status": "a_faire",307 "type": "agence",308 "note": "Plateforme source.immo (API publique api-v1.source.immo, config auto _configs.json). 0 propriétés à vendre. Généré par agences_source_immo.py."309 },310 {311 "id": "kw_prestige",312 "name": "Keller Williams Prestige",313 "url": "https://www.kwprestige.com",314 "listing_url": "https://www.kwprestige.com/sitemap.xml",315 "coverage": "Grand Montréal — bannière KW prestige",316 "connector": "kw_prestige",317 "status": "actif",318 "type": "franchise",319 "note": "Grille/fiche en widget JS (pagination AJAX non exploitable). Enumeration via sitemap.xml (277 fiches a-vendre) ; slug URL = type-a-vendre-ville-secteur-{noCentris}-detail-Fr. Champs liste: type, ville, secteur, n Centris. Prix/photos = widget JS (list cards rendus serveur mais pagination JS ; enrichissement futur via Scrapfly js_scenario)."320 },321 {322 "id": "coldwell_banker",323 "name": "Coldwell Banker Québec",324 "url": "https://coldwellbanker.ca",325 "listing_url": "https://coldwellbanker.ca/",326 "coverage": "Québec — franchise (L'Héritage, Prestige…)",327 "connector": "coldwell_banker",328 "status": "a_faire",329 "type": "franchise",330 "note": "moxiworks org m102181-1733247042 / company_uuid=4277740. FLUX ANONYME CRACKÉ : GET svc.moxiworks.com/service/v1/listing/search_v2?company_uuid=<id>&bounds_west/east/south/north=..&status=active (pas d'auth ; le WAF n'est que sur listings.moxiworks.com, pas sur svc). MAIS le feed = Rest-of-Canada/MLS (TREB Toronto : MLS C.../T...) ; couverture Québec/Centris ~nulle (Québec-ville=0, Montréal=4 fiches à MLS torontois). Non exploitable pour Immo-Ka (QC). CB Québec quasi inexistant sur ce feed."331 },332 {333 "id": "kijiji",334 "name": "Kijiji Québec",335 "url": "https://www.kijiji.ca/b-maison-a-vendre/quebec/c35l9001",336 "status": "actif",337 "notes": "Petites annonces — catégories immobilier à vendre QC seulement (maisons c35, condos c643, terrains c641), __NEXT_DATA__/Apollo."338 },339 {340 "id": "lespac",341 "name": "LesPAC Québec",342 "url": "https://www.lespac.com/quebec/immobilier-achat-vente_b36k1R2.jsa",343 "status": "actif",344 "notes": "Petites annonces QC — immobilier achat-vente b37/b38/b39/b40/b41/b42 (pas location ni entreprises), searchResponse embarqué."345 },346 {347 "id": "ubee",348 "name": "Ubee",349 "url": "https://ubee.com/carte/a-vendre",350 "status": "actif",351 "notes": "Plateforme QC — API anonyme api.ubee.ca SearchProperties (Seller, résidentiel+commercial), galerie complète."352 }353 ]354}