SeLoger France Real Estate Scraper icon

Real estate

SeLoger France Real Estate Scraper

Scrape SeLoger.com — France's leading property portal — into a clean, validated schema: price, price-per-sqm, area, rooms, energy rating, coordinates, and agency contact, with per-listing and per-page fault isolation so one blocked page or bad row never sinks the run.

Free Apify credit covers a first run. No credit card to try.

What this Actor scrapes

SeLoger is France's dominant property portal. The current Apify Store field for it is either near-zero-scale or the one incumbent with real run volume (34,729 runs / 386 users) that carries just 2 reviews — thin trust despite proven demand. This Actor wraps a single portal in a clean, validated schema (price, area, rooms, energy rating, coordinates, agency contact) with per-listing and per-page fault isolation, so one bad row or one blocked page never sinks the whole run.

What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python.
  • 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page, Retry-After honoured.
  • 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

Use cases

  • Investor deal screening — pull price/m², rooms, and location data for a whole neighborhood or postal code in one run.
  • PropTech aggregation — feed a normalized, Pydantic-validated SeLoger dataset into a downstream listings pipeline.
  • Relocation and expat services — build a client-facing French property feed without hand-scraping seloger.com listing by listing.
  • Agency/lister lead lists — collect agency and agent names behind active listings for outreach.

Input

Paste this into the Apify Console, or send it as the run input over the API. Proxy settings are on by default; you rarely need to touch them.

FieldTypeRequiredWhat it does
searchUrls array no Direct seloger.com search-results or listing detail URLs to scrape as-is. Up to 50. One of Search URLs or Location is required.
location string no Location slug — currently only 'paris-75000' is supported for direct location search. For any other city, paste a seloger.com search URL into Search URLs instead.
transactionType string no Sale vs. rent — maps to SeLoger's 'achat'/'location' URL segments.
propertyType string no Property taxonomy. 'apartment'/'house'/'land'/'parking' work for location search; 'commercial' currently requires Search URLs.
maxResults integer no Cap on rows returned; may be limited to the first confirmed page per search until pagination is validated.
enrichDetails boolean no Fetch each listing's detail page for description, coordinates, agency, energy rating, and the full photo gallery.
{
  "location": "paris-75000",
  "transactionType": "sale",
  "propertyType": "apartment",
  "maxResults": 5,
  "enrichDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}

Output

One row per result, schema-validated before it is written. Export JSON, CSV, Excel or XML from the run, or read it over the API.

listing_idurltransaction_typeproperty_typetitlepricecurrencyprice_per_sqmarea_sqmroomsbedroomsfloorenergy_ratinglocation_citylocation_districtlocation_postal_code

{
  "listing_id": "275658639",
  "url": "https://www.seloger.com/annonces/achat/appartement/paris-12eme-75/bel-air-sud/275658639.htm",
  "transaction_type": "sale",
  "property_type": "apartment",
  "title": "Appartement \u00e0 vendre T3/F3 53 m\u00b2 490000 \u20ac Bel-Air Paris (75012)",
  "price": 490000.0,
  "currency": "EUR",
  "price_per_sqm": 9245.28,
  "area_sqm": 53.0,
  "rooms": 3,
  "bedrooms": 2,
  "floor": "4/6",
  "energy_rating": null,
  "location_city": "Paris 12\u00e8me arrondissement",
  "location_district": "Bel-Air",
  "location_postal_code": "75012",
  "location_region": "Ile-de-France",
  "latitude": 48.836230001681116,
  "longitude": 2.40313082725819,
  "agency_name": "efficity",
  "agent_name": "Boban Janevski",
  "agency_phone": null,
  "listed_date": "2026-07-23T02:41:00.000Z",
  "description_snippet": "PARIS XII\u00e8me - MICHEL BIZOT - PLEIN SUD TRAVERSANT ET LUMINEUX AVEC ASCENSEUR ET CAVE...",
  "image_urls": [
    "https://mms.seloger.com/1/8/7/2/1872b9c3-3cc4-440f-9083-3725a842cc43.jpg"
  ],
  "scraped_at": "2026-08-13T12:00:00+00:00"
}

Pricing

EventPriceWhen
Actor start$0.20Once per run, covers warm-up and proxy session setup.
Result row emitted$0.0018Per result written to the dataset.

You pay only for results that land. Cap any run with maxTotalChargeUsd. See pricing & billing for worked examples.

FAQ

Do I need a SeLoger account or API key?
No. This Actor scrapes SeLoger's own publicly listed property data — no login, no API key.
Why is energy_rating usually null?
SeLoger's DPE energy-rating markup isn't reliably parseable yet — we ship it null rather than risk a wrong letter grade, and revisit once we confirm a stable source.
Does this cover every French property type?
Apartment, house, land, and parking are all live-confirmed for location-based search. Commercial has no confirmed SeLoger URL slug yet, so it only works if you paste a commercial search URL into Search URLs directly.
What happens if a page gets blocked?
We rotate the session and browser fingerprint and retry with backoff; if a page still fails, we skip it, log why, and keep going — never crash the whole run.

Ready to run it?

Open the listing on Apify, paste the input above, and watch rows land. If it ever breaks, it is our problem before it is yours.

Related Actors

Teams that run this also run