SeLoger Scraper ($0.85/1K) - French Property Listings
Pricing
from $0.35 / 1,000 listings
SeLoger Scraper ($0.85/1K) - French Property Listings
Scrape real-estate listings from SeLoger (seloger.com), France's biggest property portal: appartements, maisons, terrains and commercial property for sale and for rent. Filter by city, department or postcode, price, rooms and area. Newest first, with agent phone. Add-on: full details and DPE data.
Pricing
from $0.35 / 1,000 listings
Rating
0.0
(0)
Developer
Carabain Digital
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
What is SeLoger Listings Scraper?
SeLoger Listings Scraper scrapes property listings (annonces immobilières) from SeLoger (seloger.com), France's biggest property portal (part of the AVIV group, like Immowelt), with hundreds of thousands of appartements, maisons, terrains and commercial properties for sale (vente) and for rent (location) from agencies, developers and private owners. Search by city, department, region or postcode, sale or rent, property type, price range, rooms and living area, or paste a search URL from the site, and get clean, flat listing data as JSON, CSV, Excel, XML or HTML: price, postcode and city, living and plot area, rooms, DPE energy class, agency name and phone, photos and description. Prefilled example: the 20 newest properties for sale in Lyon, ready in seconds. Costs $0.85 per 1,000 listings. Add-ons: Full details (full description, coordinates, charges, deposit, DPE and GES values, heating, amenities) and Price history (price changes over time), $1.00 per 1,000 listings each.
- 🔎 Search like on the site: city, department, region or postcode, sale or rent, property type, price range, rooms, living area, or paste a SeLoger search URL
- ⚡ Fast: SeLoger's own JSON search, 100 listings per request, newest first, no browser: 400 listings in about 6 seconds
- 📞 Agency phone included: the agency name, phone number and SeLoger page come with every listing that has them; private owners show their phone number too
- 📚 Full details on demand: switch on Full details for the complete description, coordinates, rent without charges, monthly charges, deposit, DPE/GES and all amenities
- 📈 Track prices over time: switch on Price history to compare every run with the last one
- 🔌 Connect anywhere: API, schedules, webhooks, Google Sheets, Make, Zapier, MCP / AI agents
What data can I extract from SeLoger?
| 🆔 Stable listing ID and URL | 💶 Price (vente) or monthly rent (location), charges included or not |
| 📍 Postcode, city, quarter, department, region | 🧭 Latitude and longitude (details, public addresses) |
| 🏠 Property type and subtype | 📐 Living area and plot area (m²) |
| 🛏️ Rooms (pièces) and bedrooms (chambres) | ⚡ DPE energy class (A to G), GES class |
| 📅 Listed and last-updated date, move-in date | 🏢 Agency name, phone and page |
| 📷 All photo URLs | 📝 Description |
| 🔥 Heating, energy source, kWh and CO₂ per m² (details) | 🧰 Amenities, charges, deposit (details) |
The search results carry price, postcode, city, quarter, areas, rooms, bedrooms, construction year, DPE class, agency name and phone, all photos and a short description. The complete description, coordinates, rent without charges, monthly charges, deposit, DPE/GES values, heating and amenities come from the listing's detail data and are only filled with the Full details add-on. SeLoger never publishes street names or house numbers, so street and house_number are always null; coordinates exist only for listings whose owner made the exact location public. bathrooms is not published as a number.
How do I scrape SeLoger listings?
- Create a free Apify account and open this Actor.
- Enter a Location (for example
Lyon,Paris,Rhôneor75011), pick Sale or rent and, if you like, a property type and price range. Or paste one or more Search URLs copied from seloger.com. - Set Max listings (the newest come first).
- Click Start, then download the listings from the Output tab as JSON, CSV, Excel, XML or HTML.
How much does it cost to scrape SeLoger?
You pay per listing that ends up in your dataset: $0.85 per 1,000 listings, no subscription. The monthly credit of Apify's Free plan ($5) covers around 5,900 listings without add-ons. Paid plans get volume discounts.
- Add-on: Full details, $1.00 per 1,000 listings (off by default). Adds the complete description, coordinates, rent without charges, monthly charges, deposit, construction year, heating, energy source, DPE and GES values, amenities and all photos. Charged only for listings that were actually enriched.
- Add-on: Price history, $1.00 per 1,000 listings (off by default). Adds
first_seen_at,previous_price,price_change,price_change_pct,status_changedandprice_history. Charged only for listings that already had history from an earlier run, so the first run is free. See the Price history section below. - Failed runs and empty searches cost nothing; you can cap spending with Maximum cost per run in the run options.
See the Pricing tab for the current prices.
⬇️ Input
| Field | Description |
|---|---|
Location (location) | City, department, region or postcode; several separated by commas |
Sale or rent (listing_type) | sale or rent |
Property type (property_type) | any (houses and apartments), house, apartment, land, commercial, parking |
Minimum / maximum price (min_price, max_price) | In euro; for rentals the monthly rent as shown on the site (usually charges included) |
Minimum rooms (min_rooms) | Number of rooms (pièces) |
Minimum living area (min_living_area_m2) | In m² |
Search URLs (start_urls) | Search pages copied from seloger.com; they replace the filters above |
Max listings (limit) | Stop after this many listings |
Full details (includeDetails) | Paid add-on: description, coordinates, charges, DPE/GES and more |
Price history (trackHistory) | Paid add-on: compare with your previous runs |
History store name (historyStoreName) | Where the history is kept (default realestate-history) |
Proxy (proxyConfiguration) | French residential proxy, preselected (Apify Residential, country FR). SeLoger blocks datacenter IPs |
{"location": "Lyon","listing_type": "sale","limit": 20}
SeLoger needs a French residential proxy: the default is already set. With Search URLs paste a page like https://www.seloger.com/classified-search?distributionTypes=Rent&estateTypes=Apartment&locations=AD08FR31096&priceMax=1500, or a results page such as https://www.seloger.com/immobilier/achat/immo-lyon-69/bien-appartement/; filters in the URL are kept and the page number is ignored. Location takes a city name (Lyon), a department (Rhône), a region (Bretagne), an arrondissement (Lyon 3ème arrondissement) or a 5-digit postcode; add the department for homonyms (Saint-Denis (93)). If there is no exact match the Actor uses the site's first suggestion and says so in the log.
⬆️ Output
Listings are stored in the default dataset, newest first. View them as a table in the Output tab or export JSON, CSV, Excel, XML or HTML. Fields a listing does not have are null; every item has the same keys.
A rental with the Full details add-on
{"id": "seloger:26FJHDB6YSFC","source": "seloger","url": "https://www.seloger.com/annonce/location/ile-de-france/paris-75/paris-75000/26FJHDB6YSFC","title": "2 PIÈCES MEUBLÉ 26 M² – 100 % RÉNOVÉ – PARIS 5E - Metro CENSIER-DAUBENTON","listing_type": "rent","property_type": "apartment","property_subtype": null,"status": "available","price": 1550,"price_currency": "EUR","price_period": "month","price_type": "asking","price_includes_charges": true,"monthly_costs": 200,"rent_excl_charges": 1200,"address": "75005 Paris","street": null,"house_number": null,"postcode": "75005","city": "Paris","district": "Jardin des Plantes","region": "Ile-de-France","department": "Paris","country": "FR","lat": 48.838943,"lon": 2.353019,"living_area_m2": 26,"plot_area_m2": null,"rooms": 2,"bedrooms": 1,"bathrooms": null,"energy_label": "D","ghg_label": "D","construction_year": 1890,"condition": "mint-condition","heating": "Chauffage individuel","energy_source": "Électrique","energy_consumption_kwh_m2": null,"ghg_emissions_kg_m2": null,"available_from": null,"deposit": 2400,"features": null,"listed_at": "2026-11-01T10:37:47Z","updated_at": "2026-11-01T10:37:47Z","agent_name": null,"agent_phone": "+33613496974","agent_url": null,"image_urls": ["https://mms.seloger.com/a/c/0/e/ac0e8619-3563-4257-8890-e243b970ccce.jpg?ci_seal=83177efb449566ebe01c2a05284de11f9bb6aba3","https://mms.seloger.com/3/1/8/b/318b88e9-0163-4284-94ce-30afd777c056.jpg?ci_seal=e0034fcb00669169b46fd968f6bd26a71119fc97","..."],"description": "2 PIÈCES MEUBLÉ 26 M² – 100 % RÉNOVÉ – PARIS 5E (CENSIER-DAUBENTON)\n\n1 550 € / mois charges comprises (dont 220 € de charges) – 26 m² – Meublé – Bail ...","scraped_at": "2026-11-01T10:50:01Z"}
For rentals price is the rent as SeLoger shows it: in about nine of ten listings charges comprises (price_includes_charges is true), otherwise hors charges (false). With Full details, monthly_costs holds the charges and rent_excl_charges the rent without charges when the agent broke them down. Without Full details the detail-only fields (lat, lon, monthly_costs, rent_excl_charges, deposit, heating, energy_source, energy_consumption_kwh_m2, ghg_label, ghg_emissions_kg_m2, features) are null and description is a short text.
Extra fields with the Price history add-on
{"first_seen_at": "2026-10-23T07:00:12+00:00","previous_price": 575000,"price_change": -25000,"price_change_pct": -4.35,"status_changed": false,"price_history": [{ "at": "2026-10-23T07:00:12+00:00", "price": 575000, "status": "available" },{ "at": "2026-10-30T07:00:09+00:00", "price": 550000, "status": "available" }]}
What can I do with SeLoger data?
- 📉 Price drop alerts: schedule a run with Price history and get notified when
price_changeis negative - 🏘️ Market research: asking prices per m² per postcode or arrondissement, new supply per week, rents by room count
- 🔎 Deal finding and investment: filter by price, area and DPE class, compare rent and sale prices per neighbourhood
- 📇 Lead generation: agencies and developers with their active listings and phone numbers per city
- 🧠 AI and analytics: feed descriptions and attributes into valuation models or LLM pipelines
Tips for best results
- SeLoger shows at most 10,000 results per search. To collect more, split the search by city, arrondissement or postcode, or by price range, and run them as separate searches or several Search URLs.
- Results come in SeLoger's "newest" order, which follows the last update: a listing whose price just changed or that was republished comes first (roughly, not strictly by time), which is what you want for monitoring.
anycovers houses and apartments (maisons et appartements). New-build programmes (programmes neufs) are separate entries on the site, are not inany, and often have no price.- Some hits are Belles Demeures luxury listings: they keep their own
bellesdemeures.comURL. - For a daily feed, schedule a run with a high Max listings and Price history switched on.
- Leave Full details off for counting, price monitoring and market research; switch it on when you need full descriptions, coordinates, charges or DPE data.
- The base listing is small and fast: a 400-listing run takes a few seconds. Full details adds one request per listing.
- Results from one run are deduplicated by listing ID.
Price history
Switch on Price history (trackHistory) and the Actor remembers every listing between runs, so you can see price drops, status changes and how long a property has been on the market.
- Where it lives. History is kept in a named key-value store in your own Apify account (default name
realestate-history, change it with History store name). Named stores never expire, you own the data, and storage costs a fraction of a cent. - First run starts the series. The first time a listing is seen there is nothing to compare with, so
previous_priceisnulland you are not charged for the add-on on that listing. From the second run on, each listing getsfirst_seen_at,previous_price,price_change,price_change_pct,status_changedandprice_history(the last 20 price/status points, one point per change). - Run it on a schedule. History only grows when you run the Actor. Create a schedule (daily is typical) with the same search and the same store name.
- One store, several Actors. Every real-estate Actor we publish uses the same default store name, so a listing keeps one history even if you scrape it with a different one of our Actors. Item IDs start with the site (
seloger:...), so sites never clash. Use a different store name per search if you want separate series. - Do not run two runs on the same store at the same time. Records are updated per listing and the last writer wins, so two parallel runs can overwrite each other's newest point. Run searches that share a store one after another.
- If you delete the store, the Actor starts a new empty history without an error.
- Cost: $1.00 per 1,000 listings that already had history (see pricing above).
Frequently asked questions
Can I use SeLoger Listings Scraper with the Apify API?
Yes. Every run has a dataset you can read through the Apify API. Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("carabain-digital/seloger-listings").call(run_input={"location": "Paris","listing_type": "rent","property_type": "apartment","max_price": 2000,"limit": 100,})for home in client.dataset(run["defaultDatasetId"]).iterate_items():print(home["price"], home["address"], home["living_area_m2"], "m2")
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('carabain-digital/seloger-listings').call({location: 'Paris',listing_type: 'rent',property_type: 'apartment',max_price: 2000,limit: 100,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.length, 'listings');
Can I use SeLoger Listings Scraper through an MCP server or with AI agents?
Yes. Add it to an AI agent through the Apify MCP server (https://mcp.apify.com?tools=carabain-digital/seloger-listings), or let the agent find it with search-actors and run it with call-actor. A small search (limit 20) finishes in a few seconds, and the items are flat and small, so agents can read them with get-dataset-items. Example prompt: "Use SeLoger Listings Scraper to list the 20 newest apartments for rent in Paris under 2,000 euro and tell me which have an A, B or C energy class."
Can I integrate SeLoger data with other apps?
Yes: Google Sheets, Slack, Make, Zapier, n8n, Airtable or your own webhook, through Apify integrations and webhooks. Schedule a run every morning and send the new listings or price drops to your inbox or CRM.
Why do I need a proxy?
SeLoger is protected by DataDome and blocks datacenter IP addresses. The Actor therefore defaults to Apify's residential proxy in France. If a run is blocked it retries on fresh proxy sessions (up to four); if it still fails the run fails with a clear message instead of returning an empty dataset.
Why is a field empty?
SeLoger does not publish street names or house numbers, so street and house_number are always empty; postcode, city and (mostly) quarter are always there. Coordinates only exist when the owner made the exact location public, and only with Full details. Without Full details, lat, lon, monthly_costs, rent_excl_charges, deposit, heating, energy_source, energy_consumption_kwh_m2, ghg_label, ghg_emissions_kg_m2 and features are null. Some listings have no area, room count, construction year or DPE class yet, and private owners have no agent_name.
Is the rent with or without charges?
Both exist. price is what SeLoger shows as the headline rent, and price_includes_charges tells you whether that is charges comprises (cc) or hors charges (hc). With Full details you also get monthly_costs and rent_excl_charges when the agent entered them.
Does it cover sold and rented properties?
No. SeLoger only lists what is currently for sale or for rent, so status is always available.
Is it legal to scrape SeLoger?
The Actor only collects publicly visible listings, the same data anyone can see on seloger.com. Listings can contain personal data (for example the phone number of a private owner or an agent), and rules such as GDPR may apply to how you store and use it. Check your use case with a lawyer. More background: Is web scraping legal?
SeLoger Listings Scraper not working? Feedback
Open an issue on the Issues tab of this Actor with the run link and we will look at it. Feature ideas are welcome there too.
Other scrapers by us
| Actor | Covers |
|---|---|
| France Real Estate Scraper | SeLoger, Bien'ici and PAP in one run, merged newest first |
| Immoweb Listings Scraper | Belgium: immoweb.be, houses and apartments for sale and rent |
| Zimmo Listings Scraper | Belgium: zimmo.be, with the site's own price history |
| Immovlan Listings Scraper | Belgium: immovlan.be |
| Pararius Listings Scraper | Netherlands: pararius.nl, rentals and sales |
| Immowelt Listings Scraper | Germany: immowelt.de, property for sale and rent |
| Huislijn Listings Scraper | Netherlands: huislijn.nl |
⭐ Does it work well for you? A review on the Store page helps others find this Actor and helps us keep it maintained.