Appearance
Facebook Marketplace — Technical Analysis
Platform Overview
Facebook Marketplace is the largest informal rental listings source in Montreal. No official API exists for Marketplace data. Meta is aggressive about anti-scraping enforcement.
Data Available Without Login
| Field | Available | Notes |
|---|---|---|
| Title | Yes | Listing title |
| Price | Yes | Rent amount |
| Location | Yes | City/neighborhood |
| Images | Yes | Thumbnails visible |
| Listing URL | Yes | Direct link |
| Description | Partial | Truncated on cards |
| Phone number | No | Behind login wall |
| Seller name | No | Behind login wall |
| Full description | No | Requires clicking into listing (auth modal) |
Technical Architecture
| Component | Details |
|---|---|
| Frontend | React SPA, heavy JS |
| Data loading | GraphQL (internal, tightly guarded) |
| CDN | Facebook's own infrastructure |
| Anti-bot | Extremely aggressive |
Anti-Bot Measures
| Measure | Status |
|---|---|
| JS challenges | Yes — dynamic content verification |
| Rate limiting | Yes — strict frequency controls |
| IP blocking | Yes — geographic + reputation filtering |
| Behavioral analysis | Yes — detects non-human patterns |
| Browser fingerprinting | Yes — webdriver detection, canvas, WebGL |
| Account suspension | Yes — logged-in scrapers get banned fast |
| DOM obfuscation | Yes — class names change frequently |
| CAPTCHA | Yes — triggered on suspicious behavior |
Scraping Approaches
1. Playwright with stealth (best option)
- Launch with
--disable-blink-features=AutomationControlled - Inject anti-detection scripts (hide
navigator.webdriver) - Dismiss login modal (click outside / press Escape)
- Simulate infinite scroll to load more listings
- Parse listing cards from DOM
- 3-7 second delays between actions
Pros: Can access public data without login Cons: Fragile selectors, constant maintenance, slow, resource-heavy
2. Session cookie reuse
- Log in manually once in real browser
- Export cookies
- Load cookies into Playwright context
- Access more data (descriptions, seller info)
Pros: More data available Cons: Account gets suspended within days/weeks
3. GraphQL API mirroring
- Intercept GraphQL requests from real browser session
- Replay with matching headers (Authorization, X-FB-*, query hashes)
- Use residential proxies
Pros: Fastest, most data Cons: Extremely brittle, headers/hashes change constantly, high ban risk
Estimated Volume
- Montreal rental listings: 5,000-15,000+ active at any time
- New listings/day: High (possibly 100-500/day)
- Overlap with Kijiji: Moderate — some cross-posting, but many FB-only landlords
Legal Risk
High.
- Facebook ToS explicitly prohibits automated data collection
- Meta actively detects and blocks scrapers
- Meta has sued scraping companies (e.g., BrandTotal, Octopus)
- Account suspension is near-certain for logged-in scraping
- IP blocking happens for aggressive patterns
Comparison to Kijiji
| Factor | Kijiji | Facebook Marketplace |
|---|---|---|
| Anti-bot | Moderate | Extreme |
| Login needed | No | No (basic), Yes (contact info) |
| Phone numbers | Available via API | Not available without login |
| DOM stability | Stable (__NEXT_DATA__) | Unstable (frequent changes) |
| Ban risk | Low | High |
| Data format | Structured JSON | Unstructured, obfuscated DOM |
| Maintenance effort | Low | Very high (constant fixes) |
| Implementation time | 2-3 weeks | 1-2 weeks + ongoing maintenance |
| Data richness | Very high | Low (without login) |
Recommendation
Not recommended as a near-term priority.
Reasons:
- No phone numbers without login → listings can't be actionable on our platform
- Extreme anti-bot = high maintenance cost
- Fragile selectors = scraper breaks frequently
- Account ban risk if using login
- Legal risk from Meta is real (they've sued scrapers)
When it might make sense:
- After Kangalou and other easy sources are done
- If a reliable third-party scraping service (Apify, Bright Data) handles the anti-bot
- If Facebook ever opens an API (unlikely)
- As a supplementary source for volume, accepting limited data quality
Better alternatives for the same effort:
- Kangalou (3-5 days, HTTP-only, 7,500 listings)
- Craigslist Montreal (simple, low volume)
- Louer.ca (Quebec-focused)