SeLoger Scraper — France Real Estate avatar

SeLoger Scraper — France Real Estate

Pricing

from $1.19 / 1,000 listings

Go to Apify Store
SeLoger Scraper — France Real Estate

SeLoger Scraper — France Real Estate

Scrape property listings from seloger.com. Extract price, surface, rooms, location, photos and agency details from French real estate ads.

Pricing

from $1.19 / 1,000 listings

Rating

0.0

(0)

Developer

Unfenced Group

Unfenced Group

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Categories

Share

SeLoger Scraper — French Property Listings

SeLoger Scraper — France Real Estate

Extract property listings from seloger.com, France's largest real estate portal. Supports buy and rent searches across all French departments. Paste any search URL from your browser — the scraper collects price, surface area, room count, location, EPC rating, agency details, description, virtual visit links and more. No API key or account required.


💰 Pricing

$1.19 per 1,000 results — you only pay for successfully retrieved listings.

ResultsCost
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.

Use the Max results cap to control spend exactly.


🚀 Quick start

  1. Go to seloger.com and run any search (location, type, price range, etc.)
  2. Copy the URL from your browser's address bar
  3. Paste it into the Search URL field below and click Start

The scraper paginates through all result pages automatically.


⚙️ Input

FieldTypeDefaultDescription
searchUrlStringA seloger.com search URL from your browser. Takes priority over startUrls if both are set.
startUrlsArray[]List of seloger.com search URLs. Use for multi-city or multi-criteria runs.
maxItemsInteger200Maximum total listings to collect. seloger.com caps results at ~1,000 per search URL.
fetchDetailsBooleanfalseFetch each listing's detail page for enriched data: full description, coordinates, price history, co-ownership, energy costs, floor details and higher-res photos. Increases run time and cost.

📦 Output

Always present (from search page — v3.0 json-html extraction)

FieldTypeDescription
idStringUnique listing ID from seloger.com
urlStringCanonical URL of the listing detail page
titleStringListing title (e.g. "Appartement")
operationTypeString"sale" or "rent"
propertyTypeStringProperty category lowercased: appartement, maison, studio, terrain, parking, commerce, bureau
priceTextStringPrice as displayed: "311 000 €" or "850 € CC/mois" — null if not listed
priceAmountNumberNumeric price value — null if not listed
priceCurrencyStringAlways "EUR"
pricePerSqmNumberPrice per square metre — null if not available
monthlyPaymentNumberEstimated monthly mortgage payment (seloger calculation) — null if not available
cityStringCity name — null if not available
postalCodeStringFrench postal code (e.g. "75011") — null if not available
neighborhoodStringDistrict/quartier within the city — null if not available
departmentStringFrench department name — null (populated by fetchDetails)
regionStringFrench region name — null
countryStringAlways "FR"
roomsNumberNumber of rooms (pièces) — null if not stated
bedroomsNumberNumber of bedrooms (chambres) — null if not stated
bathroomsNumberNumber of bathrooms — null if not stated
surfaceTotalNumberTotal surface area in m² — null if not stated
surfaceUnitStringAlways "m²"
floorNumberFloor number (0 = ground floor) — extracted from listing tags — null if not stated
totalFloorsNumberTotal floors in building — null if not stated
epcRatingStringDPE energy class A–G — null if not available
isExclusiveBooleanWhether the listing is an exclusive mandate
tagsArrayRaw tags from listing: ["4 pièces", "101 m²", "Terrasse", "Parking", ...]
imagesArrayFull photo CDN URLs (https://v.seloger.com/s/width/800/visuels/...)
agencyNameStringAgency or agent name — null if not available
agencyIdStringAgency identifier — null if not available
agencyPhoneStringAgency contact phone number — null if not available
agencyUrlStringAgency website URL — null if not available
agencyPageUrlStringSeLoger agency profile page URL — null if not available
agencyLogoStringAgency logo image URL — null if not available
isPrivateSellerBooleanTrue if listed by a private individual (not an agency)
virtualVisitUrlStringVirtual visit or video tour URL — null if not available
descriptionTextStringFull listing description — available directly from search page (v3.0 upgrade)
descriptionMarkdownStringSame as descriptionText
publishDateStringPublication date "YYYY-MM-DD" — null if not available
publishDateISOStringSame as publishDate
referenceStringAgency internal reference code — null
agencyFeesPctNumberAgency fees as % of price (ALUR) — null
priceExclFeesNumberPrice excluding agency fees (ALUR) — null
priceHistoryArrayPrice change history — null
coOwnershipObjectCo-ownership details — null
energyCostMinNumberMin estimated annual energy cost (€) — null
energyCostMaxNumberMax estimated annual energy cost (€) — null
gasRatingStringGES (greenhouse gas) class A–G — null
yearOfConstructionNumberYear the building was built — null
streetAddressStringStreet name — null
coordinatesObject{lat, lng} GPS coordinates — null
sourceStringAlways "seloger.com"
scrapedAtStringISO 8601 timestamp of when the listing was collected
contentHashString16-character MD5 fingerprint of id + price + rooms

With fetchDetails: true (enriched from detail page __NEXT_DATA__)

All fields above are set where available, plus:

FieldTypeDescription
streetAddressStringStreet name if available
coordinatesObject{"lat": 48.85, "lng": 2.34} GPS coordinates
priceHistoryArray[{"date": "15 octobre 2023", "newPrice": 311000, "oldPrice": 325000, "changePercent": 4.3, "direction": "down"}]
coOwnershipObject{"lots": 80, "annualCharges": 2000, "hasProcedure": false}
energyCostMinNumberMin estimated annual energy cost in €
energyCostMaxNumberMax estimated annual energy cost in €
gasRatingStringGES class A–G
agencyFeesPctNumberAgency fees % (ALUR regulation)
priceExclFeesNumberPrice excluding agency fees
floorNumberFloor number (enriched if not in tags)
totalFloorsNumberTotal floors in building
yearOfConstructionNumberYear built
referenceStringAgency internal reference code
imagesArrayHigher-resolution photos from detail page gallery

Example output (search page, no fetchDetails)

{
"id": "207269613",
"url": "https://www.seloger.com/annonces/achat/appartement/bordeaux-33/grand-parc-chartrons-paul-doumer/207269613.htm",
"title": "Appartement",
"operationType": "sale",
"propertyType": "appartement",
"priceText": "311 000 €",
"priceAmount": 311000,
"priceCurrency": "EUR",
"pricePerSqm": 3079,
"monthlyPayment": 1735,
"city": "Bordeaux",
"postalCode": "33200",
"neighborhood": "Grand Parc-Chartrons-Paul Doumer",
"department": null,
"region": null,
"country": "FR",
"rooms": 4,
"bedrooms": null,
"bathrooms": null,
"surfaceTotal": 101,
"surfaceUnit": "m²",
"floor": 1,
"totalFloors": 5,
"epcRating": "D",
"isExclusive": false,
"tags": ["4 pièces", "3 chambres", "101 m²", "Étage 1/5", "Terrasse", "Parking"],
"images": [
"https://v.seloger.com/s/width/800/visuels/0/a/4/p/0a4p3lsrvjjiwhdrs4y8anegdnya1dd1l9rmo9ork.jpg"
],
"agencyName": "MANSON PROPERTIES",
"agencyId": "453705",
"agencyPhone": "06 82 32 26 68",
"agencyUrl": "http://www.manson-properties.com/",
"agencyPageUrl": "https://www.seloger.com/professionnels/agences-immobilieres/bordeaux-33000/agence-75763/",
"agencyLogo": "https://v.seloger.com/s/width/150/logos/0/d/1/b/0d1b0knhcgd20acjg3ai03v5gcjye7row9yexw6be.jpg",
"isPrivateSeller": false,
"virtualVisitUrl": "https://youtu.be/sksNHRAUeUA",
"descriptionText": "Manson Properties vous présente en exclusivité cet appartement de Type 4 au premier étage...",
"descriptionMarkdown": "Manson Properties vous présente en exclusivité cet appartement de Type 4 au premier étage...",
"publishDate": null,
"publishDateISO": null,
"reference": null,
"agencyFeesPct": null,
"priceExclFees": null,
"priceHistory": null,
"coOwnership": null,
"energyCostMin": null,
"energyCostMax": null,
"gasRating": null,
"yearOfConstruction": null,
"streetAddress": null,
"coordinates": null,
"source": "seloger.com",
"scrapedAt": "2026-05-06T12:00:00.000Z",
"contentHash": "a3f8d2c19e4b7f01"
}

💡 Examples

Search for apartments for sale in Paris:

{
"searchUrl": "https://www.seloger.com/list.htm?types=1&projects=2&natures=1&places=[{ci:750056}]",
"maxItems": 500
}

Search for houses to rent in Lyon under €1,500/month:

{
"searchUrl": "https://www.seloger.com/list.htm?types=2&projects=1&natures=1&places=[{ci:690123}]&px_loyermax=1500",
"maxItems": 200,
"fetchDetails": true
}

Scrape multiple cities in one run:

{
"startUrls": [
{ "url": "https://www.seloger.com/list.htm?types=1,2&projects=2&places=[{ci:330063}]" },
{ "url": "https://www.seloger.com/list.htm?types=1,2&projects=2&places=[{ci:440109}]" },
{ "url": "https://www.seloger.com/list.htm?types=1,2&projects=2&places=[{ci:130055}]" }
],
"maxItems": 1000
}

Daily feed — new listings only (schedule every 24h):

{
"searchUrl": "https://www.seloger.com/list.htm?types=1,2&projects=1,2&places=[{ci:750056}]&dd=1",
"maxItems": 200
}

⚠️ Known limitations

  • seloger.com caps search results at approximately 1,000 listings per search URL. For broader coverage, use multiple startUrls with different location filters.
  • bedrooms, bathrooms, coordinates and priceHistory require fetchDetails: true.
  • Price is null for listings marked "Prix sur demande" (price on request).
  • department and region are always null (seloger.com does not expose these in search results).

🔧 Technical details

  • v3.0: Upgraded from CSS selector parsing to window["initialData"] JSON extraction on search pages, and __NEXT_DATA__ Next.js JSON on detail pages. Significantly more stable and data-rich.
  • Handles all seloger.com search URL formats: new /classified-search?..., legacy /list.htm?..., and SEO /immobilier/achat/.../ URLs
  • Cookie-farm pattern: one RESIDENTIAL FR request to homepage bootstraps a DataDome cookie (Max-Age 1 year) reused for the entire run — 99% proxy bandwidth saving
  • Circuit breaker: stops after 5 consecutive failures to avoid wasted compute
  • Adaptive Gaussian sleep between requests to mimic organic browsing patterns

📬 Additional services

Need a custom data pipeline, scheduled export, or webhook integration? Contact us at info@unfencedgroup.nl.




Input parameters

ParameterTypeDescription
minPriceintegerMinimum listing price (local currency). Leave empty for no minimum.
maxPriceintegerMaximum listing price (local currency). Leave empty for no maximum.
daysOldintegerOnly return listings published within the last N days. Leave empty for
fetchDetailsbooleanIf enabled, each listing's detail page is fetched for the full descrip
maxItemsintegerMaximum total number of listings to collect across all search URLs. se
startUrlsarrayList of seloger.com search URLs to scrape in one run. Each URL is scra
searchUrlstringA seloger.com search URL. Paste the URL from your browser after settin

Output fields

FieldTypeNotes
idPlatform internal ID
urlDirect link
titleJob or listing title
operationTypeSale or rent
propertyTypeProperty type
priceTextPrice as displayed
priceAmountPrice (numeric)
pricePerSqmPrice per m²
cityCity
postalCodePostal code
neighborhoodNeighbourhood
roomsNumber of rooms
surfaceTotalTotal floor area in m²
floorFloor level
epcRatingEnergy performance certificate rating
agencyNameEstate agency name
agencyPhoneEstate agency phone number
descriptionTextFull property description
publishDateDate posted
scrapedAtISO 8601 timestamp

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