SPB Git

spb/rent-ka

Public
4.0 KB

# Rent-Ka

www.rent-ka.com — Apartments and homes for rent across Canada outside Québec (Ontario first, national expansion in progress). A Groupe KA service, sister site of Lou-Ka (Québec rentals) and House-Ka (Canadian homes for sale).

Rent-Ka continuously aggregates rental listings published by Canadian property managers, REITs and national portals: every listing keeps its photos, price, availability and a direct link to the original ad.

# Architecture

Forked from Lou-Ka on 2026-08-27 (the Ontario expansion paused there — 65 sources, ~5,850 listings — moved here and went live, with every Québec-only layer removed). The Python package is rentka/.

  • Backend — FastAPI + SQLite (data/rentka.db): connectors → ingest → geocoding (Nominatim) → dedup → quality (completeness score + publication gate + Québec exclusion) → API.
  • Connectors (81) — three families:
    • Platform generators (53): LiftSystem/Rentsync (lift_*), RentCafe (rc_*), Rentsync gateway (rsgw_*), Buildium (bld_*), AppFolio (apf_*) — one JSON registry per platform in data/*_clients.json; adding a property manager anywhere in Canada = adding one client row (optional "province" key, default "ON").
    • National landlords (12): Boardwalk, CAPREIT, Centurion, Cogir, Hazelview, InterRent, MetCap, Minto, Morguard, Realstar, Akelius, Killam… — whole portfolio outside Québec (AB/SK/BC/MB/NS/NB included).
    • National portals (5): Rentals.ca, Zumper, Kijiji, Apartments.com, Facebook Marketplace — major metros in every province.
  • Frontend — React/Vite, English (en-CA), cobalt skin. Routes: /, /listing/{uid}, /city/{slug}[/{type}], /cities, /stats, /sources, /privacy, /terms. Map = Ka Maps (@groupe-ka/ka-maps, expected at ../../ka-maps).
  • SEO — rentka/seo.py renders server-side HTML (meta, JSON-LD, sitemaps) in English.
  • Enrichment kept (Canada-wide, no Québec dependency): KA Scores (OSM Walk/Transit/Bike/Quiet/Services), fair rental value, building passport, listing history, re-listed-unit detection, Winter Score, photo audit, manager profiles (SerpApi).
  • Removed vs Lou-Ka — everything Québec-only: Hydro-Québec estimates, rent registry (registre des loyers), TAL history, BDZI flood, RSQAQ air, gazquebec, quartier (QC census), real-cost breakdown, movers directory, the whole short-term subsystem, and ~300 QC connectors.

# Canonical unit types (English)

Studio | 1 bedroom | 2 bedrooms | 3 bedrooms | 4 bedrooms | 5+ bedrooms | Loft | Penthouse | Condo | Townhouse | House | Room — see rentka/normalize.py. Québec «n½» input converts automatically (n½ = n−2 bedrooms), and a central FR→EN label funnel in schema.finalize() translates amenities/availability/price labels coming from fr-ca page templates — the DB is uniformly English.

# Run

bash
python run.py sync [source ...]   # sync listings
python run.py watch [minutes]     # sync loop (default 60 min)
python run.py serve [port]        # API + frontend (default 8125)
python run.py list                # registered connectors
python run.py geocode [n]         # geocode listings missing coordinates
python run.py quality             # recompute publication gate

pm2 (node M4M36): rent-ka-web (serve 8125) · rent-ka-sync (watch 60) · rent-ka-ngrok (ngrok http --url=www.rent-ka.com 8125).

# Tests

bash
python -m pytest tests/

Connector snapshot tests replay recorded fixtures (tests/fixtures/); re-record with python run.py record <source> after changing a connector.

# Expansion playbook

The fastest way to add coverage is the platform registries: find property managers whose sites run LiftSystem/RentCafe/Rentsync/Buildium/AppFolio (signatures documented in gestion-immobiliere-ontario.md §10) and append a client entry with its province. docs/canada-sources.md tracks the national source inventory.

Files · f2c4182817795a943b83ef8afc5f7a266e5277e7
Menu

Theme