Skip to content

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

FieldAvailableNotes
TitleYesListing title
PriceYesRent amount
LocationYesCity/neighborhood
ImagesYesThumbnails visible
Listing URLYesDirect link
DescriptionPartialTruncated on cards
Phone numberNoBehind login wall
Seller nameNoBehind login wall
Full descriptionNoRequires clicking into listing (auth modal)

Technical Architecture

ComponentDetails
FrontendReact SPA, heavy JS
Data loadingGraphQL (internal, tightly guarded)
CDNFacebook's own infrastructure
Anti-botExtremely aggressive

Anti-Bot Measures

MeasureStatus
JS challengesYes — dynamic content verification
Rate limitingYes — strict frequency controls
IP blockingYes — geographic + reputation filtering
Behavioral analysisYes — detects non-human patterns
Browser fingerprintingYes — webdriver detection, canvas, WebGL
Account suspensionYes — logged-in scrapers get banned fast
DOM obfuscationYes — class names change frequently
CAPTCHAYes — 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

  • 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

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

FactorKijijiFacebook Marketplace
Anti-botModerateExtreme
Login neededNoNo (basic), Yes (contact info)
Phone numbersAvailable via APINot available without login
DOM stabilityStable (__NEXT_DATA__)Unstable (frequent changes)
Ban riskLowHigh
Data formatStructured JSONUnstructured, obfuscated DOM
Maintenance effortLowVery high (constant fixes)
Implementation time2-3 weeks1-2 weeks + ongoing maintenance
Data richnessVery highLow (without login)

Recommendation

Not recommended as a near-term priority.

Reasons:

  1. No phone numbers without login → listings can't be actionable on our platform
  2. Extreme anti-bot = high maintenance cost
  3. Fragile selectors = scraper breaks frequently
  4. Account ban risk if using login
  5. 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)