SeLoger Scraper — France Real Estate
Under maintenancePricing
from $0.95 / 1,000 listings
SeLoger Scraper — France Real Estate
Under maintenanceScrape property listings from seloger.com. Extract price, surface, rooms, location, photos and agency details from French real estate ads.
Pricing
from $0.95 / 1,000 listings
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
3
Total users
2
Monthly active users
10 days ago
Last modified
Categories
Share
SeLoger Scraper

Extract property listings from seloger.com at scale, in a clean, consistent structure ready for market analysis, valuation models, lead generation and monitoring. No API key required.
Why this scraper?
🎯 Built for France
A dedicated French scraper, not a global tool with a country dropdown. Locations, price formats and currency (EUR) are tuned for seloger.com.
💶 Structured pricing
Asking price or rent as a clean number in EUR, plus the price exactly as displayed. Price-on-request listings return null, never a guess.
🏠 Property characteristics
Bedrooms, rooms, surface and property type in structured fields, ready for filtering and analysis.
📍 Location fields
Structured address data for every listing, ready for filtering and analysis.
🖼️ Listing photos
Photo URLs for every listing where the source publishes them.
🔁 Repost & change detection
Every record carries isRepost and changeStatus, so daily feeds return genuinely new listings instead of reposted duplicates.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
minPrice | integer | (empty) | Minimum listing price (local currency). Leave empty for no minimum. |
maxPrice | integer | (empty) | Maximum listing price (local currency). Leave empty for no maximum. |
daysOld | integer | (empty) | Only return listings published within the last N days. Leave empty for no recency filter. |
fetchDetails | boolean | false | If enabled, each listing's detail page is fetched for the full description and additional photos. Increases run time but provides richer data. |
maxItems | integer | 200 | Maximum total number of listings to collect across all search URLs. seloger.com caps at approximately 1,000 results per search. |
startUrls | array | (empty) | List of seloger.com search URLs to scrape in one run. Each URL is scraped independently. Use this for multi-city or multi-criteria runs. |
searchUrl | string | (empty) | A seloger.com search URL. Paste the URL from your browser after setting up your filters (location, type, price range, etc.). Example: https://www.seloger.com/list.htm?types=1,2&projects=1&places=[{ci:750056}] |
Output schema
Every field below is present on every record. Fields the source does not publish for a given listing are returned as null rather than omitted.
| Field | Type | Description |
|---|---|---|
id | string | Platform internal ID |
url | string | Direct link |
title | string | Job or listing title |
operationType | string | Sale or rent |
propertyType | string | Property type |
priceText | string | Price as displayed |
priceAmount | number | Price (numeric) |
priceCurrency | string | Always "EUR" |
pricePerSqm | number | Price per m² |
monthlyPayment | number | Estimated monthly mortgage payment (seloger calculation) — null if not available |
city | string | City |
postalCode | string | Postal code |
neighborhood | string | Neighbourhood |
department | string | French department name — null (populated by fetchDetails) |
region | string | French region name — null |
country | string | Always "FR" |
rooms | number | Number of rooms |
bedrooms | number | Number of bedrooms (chambres) — null if not stated |
bathrooms | number | Number of bathrooms — null if not stated |
surfaceTotal | number | Total floor area in m² |
surfaceUnit | string | Always "m²" |
floor | number | Floor level |
totalFloors | number | Total floors in building |
epcRating | string | Energy performance certificate rating |
isExclusive | boolean | Whether the listing is an exclusive mandate |
tags | array | Raw tags from listing: ["4 pièces", "101 m²", "Terrasse", "Parking", ...] |
images | array | Higher-resolution photos from detail page gallery |
agencyName | string | Estate agency name |
agencyId | string | Agency identifier — null if not available |
agencyPhone | string | Estate agency phone number |
agencyUrl | string | Agency website URL — null if not available |
agencyPageUrl | string | SeLoger agency profile page URL — null if not available |
agencyLogo | string | Agency logo image URL — null if not available |
isPrivateSeller | boolean | True if listed by a private individual (not an agency) |
virtualVisitUrl | string | Virtual visit or video tour URL — null if not available |
descriptionText | string | Full property description |
descriptionMarkdown | string | Same as descriptionText |
publishDate | string | Date posted |
publishDateISO | string | Same as publishDate |
reference | string | Agency internal reference code |
agencyFeesPct | number | Agency fees % (ALUR regulation) |
priceExclFees | number | Price excluding agency fees |
priceHistory | array | [{"date": "15 octobre 2023", "newPrice": 311000, "oldPrice": 325000, "changePercent": 4.3, "direction": "down"}] |
coOwnership | object | {"lots": 80, "annualCharges": 2000, "hasProcedure": false} |
energyCostMin | number | Min estimated annual energy cost in € |
energyCostMax | number | Max estimated annual energy cost in € |
gasRating | string | GES class A–G |
yearOfConstruction | number | Year built |
streetAddress | string | Street name if available |
coordinates | object | {"lat": 48.85, "lng": 2.34} GPS coordinates |
source | string | Always "seloger.com" |
scrapedAt | string | ISO 8601 timestamp |
contentHash | string | 16-character MD5 fingerprint of id + price + rooms |
streetAddress | string | Street name if available |
coordinates | object | {"lat": 48.85, "lng": 2.34} GPS coordinates |
priceHistory | array | [{"date": "15 octobre 2023", "newPrice": 311000, "oldPrice": 325000, "changePercent": 4.3, "direction": "down"}] |
coOwnership | object | {"lots": 80, "annualCharges": 2000, "hasProcedure": false} |
energyCostMin | number | Min estimated annual energy cost in € |
energyCostMax | number | Max estimated annual energy cost in € |
gasRating | string | GES class A–G |
agencyFeesPct | number | Agency fees % (ALUR regulation) |
priceExclFees | number | Price excluding agency fees |
floor | number | Floor level |
totalFloors | number | Total floors in building |
yearOfConstruction | number | Year built |
reference | string | Agency internal reference code |
images | array | Higher-resolution photos from detail page gallery |
id | string | Platform internal ID |
url | string | Direct link |
title | string | Job or listing title |
operationType | string | Sale or rent |
propertyType | string | Property type |
priceText | string | Price as displayed |
priceAmount | string | Price (numeric) |
pricePerSqm | string | Price per m² |
city | string | City |
postalCode | string | Postal code |
neighborhood | string | Neighbourhood |
rooms | string | Number of rooms |
surfaceTotal | string | Total floor area in m² |
floor | string | Floor level |
epcRating | string | Energy performance certificate rating |
agencyName | string | Estate agency name |
agencyPhone | string | Estate agency phone number |
descriptionText | string | Full property description |
publishDate | string | Date posted |
scrapedAt | string | ISO 8601 timestamp |
Example record
{"id": "8471203","url": "https://www.seloger.com/listing/8471203","title": "Ruim 3-kamer appartement met balkon","operationType": null,"propertyType": "apartment","priceText": null,"priceAmount": 285000,"priceCurrency": "EUR","pricePerSqm": null,"monthlyPayment": 0,"city": "Paris","postalCode": null,"neighborhood": null,"department": null,"region": null,"country": "France","rooms": 4,"bedrooms": 3,"bathrooms": 1,"surfaceTotal": null,"surfaceUnit": null,"floor": null,"totalFloors": 0,"epcRating": null,"isExclusive": false,"tags": [],"images": [],"agencyName": null,"agencyId": null,"agencyPhone": null,"agencyUrl": "https://www.seloger.com/listing/8471203","agencyPageUrl": "https://www.seloger.com/listing/8471203","agencyLogo": null,"isPrivateSeller": false,"virtualVisitUrl": "https://www.seloger.com/listing/8471203","descriptionText": "Well-maintained apartment close to the city centre, with ...","descriptionMarkdown": "Well-maintained apartment close to the city centre, with ...","publishDate": "2026-07-01","publishDateISO": "2026-07-01","reference": null,"agencyFeesPct": 0,"priceExclFees": 0,"priceHistory": [],"coOwnership": null,"energyCostMin": 0,"energyCostMax": 0,"gasRating": null,"yearOfConstruction": 0,"streetAddress": null,"coordinates": null,"source": null,"scrapedAt": "2026-07-01","contentHash": "b64c1f2a9d0e"}
Examples
Listings in Paris:
{"maxItems": 100}
Cap the price:
{"maxItems": 100,"maxPrice": 285000}
Scrape a specific search URL:
{"startUrls": [{"url": "https://www.seloger.com/list.htm?types=1,2&projects=2&places=[{ci:330063}]"}],"maxItems": 200}
Daily feed of new listings (run on a schedule):
{"daysOld": 1,"maxItems": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only listings added in the last 24 hours.
💰 Pricing
$1.19 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.12 |
| 1,000 | ~$1.19 |
| 10,000 | ~$11.90 |
| 100,000 | ~$119.00 |
Flat-rate alternatives typically charge $29–$49/month regardless of usage.
Subscription tiers lower the rate further, down to $0.71 per 1,000 at the highest tier. Use the Max results cap in the input to control your spend exactly.
Performance
| Run size | Typical time |
|---|---|
| 100 results | under 1 minute |
| 1,000 results | 2–4 minutes |
| 10,000 results | 20–35 minutes |
Known limitations
- Some fields (surface, year built, energy label) are only returned when the lister publishes them — expect
nullon a share of records. - Listing photos and agent details vary per listing; the scraper returns what the source publishes and never invents data.
- Very large result sets are bounded by the source's own paging limits.
- Listings can be withdrawn at any time, so a small share of URLs may expire shortly after scraping.
Technical details
- Source: seloger.com — France property listings
- Coverage: everything the public search exposes, filterable via the input parameters above
- Retry: automatic retry on network errors with exponential backoff
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl