SeLoger Scraper — France Property for Sale & Rent
Pricing
from $1.00 / 1,000 listing scrapeds
SeLoger Scraper — France Property for Sale & Rent
Scrape SeLoger.com listings for sale or rent from search URLs or city/postcode + filters: price, €/m², surface, rooms, floor, DPE/GES, features, photos, agency, coordinates.
Pricing
from $1.00 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Trevor Ortega
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape property listings from SeLoger.com, France's leading real estate portal (same group as Logic-Immo and Belles Demeures), for sale (achat) or for rent (location). For each listing you get the price, the price per m², the living surface and plot size, the number of rooms (pièces), bedrooms (chambres) and the floor. You also get the property type, whether it is a new build (neuf), the DPE energy class, the year built, and the city, postcode, district, department and region. Every photo URL comes too, plus the agency (or "private seller"), the publication and update dates and the listing URL.
Start from any SeLoger search URL, or type a city, postcode, arrondissement, department or region and pick filters (price, surface, rooms, bedrooms, property type, new build, must-have features, private or professional seller). Turn on Include full details to also get the full description, the map coordinates, every feature (lift, balcony, terrace, garden, parking, cellar, pool, furnished...), the DPE and GES classes with their kWh and CO₂ values, the energy-bill estimate, the rent breakdown (charges, deposit, tenant fees), the notary-fee estimate and the co-ownership details (lots, yearly charges).
The actor reads the same JSON services the SeLoger website loads, not the rendered HTML. That keeps the output complete and stable and the runs fast: 1,000 listings in 45 seconds in our test. You pay only for the listings you get.
What data does SeLoger Scraper extract?
| Field | Description |
|---|---|
id, legacyId, url | SeLoger listing id (e.g. 26CS6LJJU2XE), the old numeric reference, and the listing URL |
title, headline | SeLoger's title ("Appartement à vendre") and the advertiser's headline ("F2 au calme") |
transactionType | sale or rent |
propertyType, propertyTypeCode | "Appartement" / APARTMENT, "Maison" / HOUSE, "Programme immobilier", ... |
price, priceText, priceOnRequest | Sale price, or monthly rent for rentals, in euros (null and priceOnRequest: true for "Prix sur demande") |
pricePerSqm, priceInfo | Price per m² as SeLoger shows it (computed from price and surface when not shown); priceInfo is e.g. "charges comprises" for rents |
surface, landSurface | Living surface and plot (terrain) in m² |
rooms, bedrooms | Pièces and chambres |
floor, floorNumber, buildingFloors | "Étage 2/5" -> 2 and 5; "RDC" -> 0 |
availability | For rentals: "disponible dès maintenant", "dès le 01/11/2026" |
energyClass, yearBuilt, condition | DPE letter (A-G), year of construction, building condition (REFURBISHED, NEED_OF_RENOVATION, ...) when given |
isNewBuild, newBuildProgram, newBuildProgramUrl | New-build (neuf) listings and their programme |
city, postcode, district, department, region, country | e.g. Paris 18ème arrondissement, 75018, Grandes Carrières-Clichy, Paris, Ile-de-France |
transport | Nearest metro / tram / bus lines shown on the listing |
description, descriptionTruncated | The description; in search results SeLoger cuts it after ~500 characters (descriptionTruncated: true), with full details it is complete |
photos, photoCount, hasVirtualTour | All photo URLs; whether there is a 3D / video tour |
isExclusive, isNewListing | Exclusive mandate badge; SeLoger's "new" badge |
sellerType | professional or private (particulier) |
agencyName, agencyProfileUrl, agencyWebsite, agencyLogo, agencyAddress, agencyLegalInfo, agencyFeesUrl | The agency as shown on the listing (business data: name, SeLoger page, website, office address, RCS/SIRET lines, fee schedule) |
contactName | For private sellers: the first name shown on the listing |
createdAt, updatedAt | Publication and last update (ISO, UTC) |
searchUrl, position, scrapedAt | The search the listing came from (as a SeLoger URL), its rank, the time of the run |
With Include full details you also get:
| Field | Description |
|---|---|
description | Full description text (line breaks kept) |
latitude, longitude, locationPrecision | Map point: exact (address published), approximate (private sellers: rounded to ~1 km), or area (centre of the town / district when no address is published) |
features | Every feature line of the listing, e.g. ["Ascenseur", "Cave (Total 3 m²)", "Exposition: ouest", "Digicode", "Pas de balcon"] |
hasElevator, hasBalcony, hasTerrace, hasGarden, hasParking, hasCellar, hasPool, isFurnished | true / false when the listing says so ("Ascenseur" / "Pas d'ascenseur"), null when it does not mention it |
dpeClass, gesClass, energyConsumption, ghgEmissions | DPE and GES letters, primary energy in kWh/m²/year, emissions in kg CO₂/m²/year |
energyCostEstimate, dpeDate, energySources | e.g. "entre 910 et 1290 €/an", "Après le 1er juillet 2021", "Gaz" |
rentIncludingCharges, rentExcludingCharges, monthlyCharges, rentSupplement, deposit, tenantFees | Rentals: the rent breakdown, deposit (dépôt de garantie) and agency fees charged to the tenant |
notaryFeesEstimate | Sales: SeLoger's notary-fee estimate |
coOwnershipLots, coOwnershipAnnualCharges, coOwnershipProceedings | Copropriété: number of lots, yearly charges, procedures in progress |
priceLines | Every price line of the listing as label -> amount |
detailsFetched, detailError | Whether the details were loaded, and why not |
How to scrape SeLoger listings
- Open seloger.com, search for a place, set your filters (price, surface, rooms, property type, sort, ...) and copy the address from your browser. Or skip this step: type places in Locations and pick the filters in the input.
- Paste the URL into Start URLs. You can add several searches, SEO search pages (
/recherche/...) and single listing URLs (/annonce/...). - Set Max items and start the run. Download the results as JSON, CSV or Excel, or read them through the API.
Every SeLoger filter works through a search URL (energy class, floor, build state, ...). The Locations search covers the common ones: buy or rent, property types, price, surface, rooms, bedrooms, land surface, new build, must-have features and seller type.
Input example
{"locations": ["Paris 11e", "Paris 12e"],"transactionType": "rent","propertyTypes": ["apartment"],"maxPrice": 1800,"minSurface": 35,"minRooms": 2,"features": ["elevator"],"sort": "newest","maxItems": 500,"includeDetails": true}
Or with URLs:
{"startUrls": [{ "url": "https://www.seloger.com/classified-search?distributionTypes=Buy&estateTypes=House&locations=AD06FR34&priceMax=400000&numberOfBedroomsMin=3" },{ "url": "https://www.seloger.com/recherche/location/appartement/auvergne-rhone-alpes/lyon-69000/ad08fr28808" },{ "url": "https://www.seloger.com/annonce/achat/ile-de-france/paris-75/paris-75000/26CS6LJJU2XE" }],"maxItems": 1000}
Locations accept a city (Bordeaux), a postcode (33000), an arrondissement (Paris 11e, Lyon 3e), a neighbourhood (Montmartre), a department (Gironde) or a region (Bretagne). Each one is looked up with SeLoger's own place search; the resolvedLocations entry of the SUMMARY record in the key-value store shows which place was used.
Output example
{"id": "26CS6LJJU2XE","legacyId": "281958781","url": "https://www.seloger.com/annonce/achat/ile-de-france/paris-75/paris-75000/26CS6LJJU2XE","title": "Appartement à vendre","headline": "F2 au calme","transactionType": "sale","propertyType": "Appartement","price": 400000,"priceText": "400 000 €","pricePerSqm": 8888.89,"surface": 45,"rooms": 2,"bedrooms": 1,"floor": "Étage 2/5","floorNumber": 2,"buildingFloors": 5,"energyClass": "D","yearBuilt": 1880,"condition": "REFURBISHED","isNewBuild": false,"city": "Paris 18ème arrondissement","postcode": "75018","district": "Grandes Carrières-Clichy","department": "Paris","region": "Ile-de-France","transport": [{ "type": "METRO", "lines": ["13"] }, { "type": "BUS", "lines": ["21", "31", "54"] }],"photos": ["https://cdnihddipa.cloudimg.io/5/8/e/a/58ea3b08-30a3-4ef0-899a-b815808d1e60.jpg?ci_seal=45996f3d10027508f42164114865cf5783de651c"],"photoCount": 13,"hasVirtualTour": true,"isExclusive": true,"sellerType": "professional","agencyName": "IMOSS","agencyProfileUrl": "https://www.seloger.com/professionnels-immobilier/FEW3VPchH8roDn265N8Hnj","agencyWebsite": "https://www.imossimmobilier.fr/","createdAt": "2026-10-09T10:58:00Z","updatedAt": "2026-10-10T00:56:39.86Z","detailsFetched": true,"description": "Situé rue Lamarck, à quelques pas du métro Lamarck - Caulaincourt (ligne 12), venez vite découvrir votre futur nid douillet...","latitude": 48.891108,"longitude": 2.328854,"locationPrecision": "exact","features": ["Calme", "Exposition: ouest", "2ème étage/5 étages", "Pas d'ascenseur", "Cuisine séparée, Cuisine intégrée", "Cave (Total 3 m²)", "Pas de balcon", "Digicode"],"hasElevator": false,"hasBalcony": false,"hasCellar": true,"dpeClass": "D","gesClass": "D","energyConsumption": 204,"ghgEmissions": 44,"energyCostEstimate": "entre 910 et 1290 €/an","notaryFeesEstimate": 32000,"coOwnershipLots": 40,"coOwnershipAnnualCharges": 1376,"searchUrl": "https://www.seloger.com/classified-search?distributionTypes=Buy&estateTypes=Apartment&locations=AD08FR31096&order=DateDesc","position": 1,"scrapedAt": "2026-10-10T03:25:07Z"}
(Shortened: real items carry every field from the tables above. Detail fields are absent when Include full details is off.)
How many listings can I get per search?
SeLoger serves at most 10,000 listings per search. When a search has more and Max items asks for more, the actor cuts it into price bands of up to 10,000 listings each, using a few tiny count requests, and collects them all. Results then come band by band, cheapest band first, and each band keeps your sort order. Listings without a price ("Prix sur demande") are not in any price band. Turn off Split searches over 10,000 results to stop at the first 10,000. For whole regions or all of France (400,000+ apartments for sale), split the work yourself by department or city.
Does it work without login? Does it collect phone numbers?
No login and no account are needed: the actor reads only what anyone sees on SeLoger. It does not export phone numbers, which SeLoger shows only after a click. Private sellers' exact location is never exported: when SeLoger has a map point for a private seller's listing, it is rounded to about 1 km. When no address is published, the coordinates are the centre of the town or district (locationPrecision: "area"). Agencies' names, offices, websites and legal details are business data and are included. For private sellers, contactName is the first name the listing shows publicly.
Do I need a proxy?
Yes. SeLoger is protected by DataDome, which refuses datacenter IP addresses. The default proxy, Apify Residential proxy in France, worked in all our test runs; a refused request (about 1 in 8 for searches, about 1 in 4 for listing details) is retried automatically on a new IP, and every run finished without errors. Residential traffic is billed by Apify per GB, and this actor uses little of it: about 1.5 MB per 1,000 listings, and about 23 MB per 1,000 listings with full details.
Monitor changes on a schedule
Turn on Only new or changed items to watch a search. Each run remembers what earlier runs returned and outputs only new listings and listings whose price changed. Unchanged listings are dropped before any detail request, so they are not charged. Max items then sets how many listings are checked per run; keep the "Newest first" sort, e.g. 100-300 for a city or arrondissement. Save the input as a task in Apify and add a Schedule (for example daily). Give each watch its own Monitoring key if several schedules use the same search. Every output item gets changeType (new or changed), and changed items get previousValues with the old values, e.g. {"price": 420000}. The actor also remembers a few listings just below the window without outputting or charging them, so an older listing that moves into the window is not reported as new. Sold or removed listings simply stop appearing.
Pricing
Pay per result: you are charged for each listing saved to the dataset, plus a small extra per listing when Include full details is on. See the Pricing tab for the current prices. There is no start fee. Platform usage is small: at the default 512 MB memory our test runs used about $0.02 per 1,000 listings (residential proxy, compute and dataset writes), and about $0.22 per 1,000 listings with full details (detail requests are paced at two at a time, so those runs take longer: about one listing per second).
Integrations and API
Run it from the Apify API or a schedule, and send the results to Google Sheets, Slack, Make, Zapier, n8n or a webhook. Use maxItems to cap the cost of each run. Typical uses: price per m² studies by arrondissement or town, rental yield analysis, DPE / energy-class statistics (passoires thermiques), agency inventory tracking, new-listing alerts and lead lists of real estate agencies.
Is it legal to scrape SeLoger?
This actor collects publicly visible listing data that anyone can see on SeLoger without logging in. It does not log in, it does not collect phone numbers or anything else behind a click, and it does not export private sellers' exact location. Private sellers' first names are personal data under the GDPR: you are responsible for having a legitimate purpose and a legal basis for processing them, and for respecting SeLoger's terms of use. If in doubt, ask a lawyer.
Support
Found a bug or need a field that is not there? Open an issue on the Issues tab with the input you used and the run link.