# Apartments.com (CoStar) — connecteur `apartments_com` _Fiche générée automatiquement par `scripts/gen_connector_docs.py` le 2026-08-25 01:59 — ne pas éditer à la main, régénérer._ **État : actif** · Région : Province · Backend : direct · Annonces actives : 615/615 ## Description de la source Apartments.com (CoStar) — réseau US avec un vrai parc québécois (~500 propriétés / 8 400 unités via /qc/, surtout de grands gestionnaires). Le site est verrouillé par Akamai (403 en direct, via Scrapfly ET via Oxylabs — sondé 2026-08-18/22) : le scraping est délégué à l'ACTEUR APIFY MAISON gorgeous_thistle/ka-apartments-com (source : actors/ka-apartments-com de ce repo) qui passe par le Web Unlocker Bright Data — HTML server-rendered, pas de rendu JS. UNE annonce = UNE PROPRIÉTÉ (immeuble) : prix « à partir de » (minimum des plans d'unités), tous les plans dans details["plans"]. Les fiches détail sont lues en FRANÇAIS (/fr/) : description, GPS, commodités, galerie. Cache détail 30 j + CADENCE : l'inventaire CoStar bouge lentement, l'acteur ne tourne qu'aux LOUKA_APTS_INTERVAL_H heures ; entre deux runs on ré-émet les annonces actives depuis la BD (coût 0). - **Site** : https://www.apartments.com - **Page des annonces** : https://www.apartments.com/qc/ - **Secteurs couverts** : Toute la province via /qc/ (~500 propriétés / 8 400 unités, grands gestionnaires) — acteur Apify maison ka-apartments-com + Bright Data Web Unlocker - **Module** : `louka/connectors/apartments_com.py` — classe `ApartmentsComConnector` ## Accès - **Type d'accès** : API JSON interne du site - **Endpoint de base** : https://api.apify.com/v2 - **URLs de départ (constantes du module)** : https://api.apify.com/v2 · https://www.apartments.com/qc/ - **Authentification** : aucune — contenu public - **Pagination** : pagination par offset - **Backend anti-bot / rendu** : requests direct - **Politesse** : 1.0 s entre requêtes, timeout 30 s, User-Agent identifiable `LouKaBot/1.0 (+https://www.lou-ka.com/bot)` ## Champs récupérés → schéma cible Le connecteur (direct, API JSON interne du site) alimente les colonnes de la table `listings`. Complétude mesurée en SQL sur les 615 annonces actives ; exemple tiré d'une ligne réelle de la BD. | Colonne `listings` | Contenu | Renseignée (actives) | Exemple réel | |---|---|---|---| | `title` | Titre de l'annonce | 100 % | Place Du Fort | | `address` | Adresse civique | 100 % | 1411 St Du Fort | | `city` | Ville (normalisée) | 100 % | Montréal | | `sector` | Secteur / quartier | 0 % | — | | `unit_type` | Type d'unité (3½, 4½…) | 58 % | — | | `price` | Loyer mensuel ($) | 100 % | 1 250 $ | | `bedrooms` | Chambres | 66 % | 4 | | `bathrooms` | Salles de bain | 23 % | 1 | | `area_sqft` | Superficie (pi²) | 2 % | — | | `availability_date` | Date de disponibilité | 33 % | now | | `lat` | GPS (lat/lng) | 68 % | 45.49181 | | `description` | Description | 40 % | Place du Fort est un immeuble d'appartements situé au cœur de Montréal, une ville inspira… | | `images` | Photos (JSON) | 100 % | 23 photo(s) — https://images1.apartments.com/i2/U8NaqvSrDRFxjRV-gt5W7Q4kjHyqkDFW9FxafM5yi… | | `amenities` | Commodités (JSON) | 40 % | ["Cats Allowed", "Maintenance on site", "Controlled Access", "Elevator", "Laundry Facilit… | | `details` | Détails additionnels (JSON) | 49 % | {"inclusions": {"heating": true, "hot_water": true, "internet": true, "cable": true}, "ap… | | `url` | URL de l'annonce source | 100 % | https://www.apartments.com/fr/place-du-fort-montreal-qc/n28d2cm/ | ## Fréquence & budget - **Cadence observée** (médiane des passages OK, sync_log) : ≈ 2.8 h - **Dernier passage OK** : 2026-08-25 01:37 — 615 trouvées, +0 / ~0 / -0 - **Throttling** : 1.0 s entre requêtes (constante de classe `request_delay`) - **Cache des pages détail (BD `detail_cache`)** : activé — évite de re-visiter les fiches inchangées ## Volumétrie & complétude - **Annonces en BD** : 615 au total, **615 actives** - **Première ingestion** : 2026-08-22 · **Dernière observation** : 2026-08-25 - **Complétude clé (actives)** : GPS 68 % · prix 100 % · photos 100 % · description 40 % - **Runs journalisés (60 derniers)** : 26, dont 0 en erreur ## Erreurs connues & dépannage Aucune erreur dans les 60 derniers runs journalisés. Rejouer la source seule : `python3 run.py sync apartments_com` · vérifier ensuite `sync_log` (`SELECT * FROM sync_log WHERE source='apartments_com' ORDER BY ts DESC LIMIT 5;`). ## Licence, attribution & conditions - Scraping poli d'annonces **publiques** (données factuelles : prix, adresse, disponibilité) publiées par le gestionnaire sur son propre site. - User-Agent **identifiable** avec page d'information et contact : `LouKaBot/1.0 (+https://www.lou-ka.com/bot; contact@spboucher.ai)` ; throttling 1.0 s ; cache détail pour minimiser les requêtes. - Chaque annonce affichée sur Lou-Ka **pointe vers l'annonce d'origine** (colonne `url`) — la source garde le trafic de conversion. - Retrait sur demande : contact@spboucher.ai. ## Historique - 2026-08-22 — premières annonces de la source ingérées dans la BD. - 2026-08-18 — vague d'enrichissement : standardisation de la documentation des connecteurs (fiche générée par `scripts/gen_connector_docs.py`).