SeLoger Property Listings Scraper avatar

SeLoger Property Listings Scraper

Pricing

Pay per event

Go to Apify Store
SeLoger Property Listings Scraper

SeLoger Property Listings Scraper

Extract SeLoger listings with prices, locations, agencies, images, descriptions, and URLs for French real-estate market monitoring.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Export structured property listings from public SeLoger search pages.

Use this actor to collect rental and sale inventory from SeLoger result URLs and turn each listing card into a clean dataset with price, area, rooms, location, agency, images, description, and the listing URL.

What does SeLoger Property Listings Scraper do?

SeLoger Property Listings Scraper reads public SeLoger search/category result pages and extracts the embedded listing data that powers the search experience.

It is built for repeatable real-estate market monitoring workflows:

  • 🏠 Collect property listings from SeLoger city or neighborhood searches
  • 💶 Export asking prices, price periods, and price per square meter
  • 📍 Capture city, postal code, district, and agency information
  • 🖼️ Save listing image and floor-plan URLs
  • 🔁 Run the same searches regularly to monitor inventory changes

Who is it for?

This scraper is useful for teams that need French property market data without manually browsing SeLoger.

Typical users include:

  • Real-estate analysts tracking local asking prices
  • Proptech teams building market dashboards
  • Brokerages monitoring competitor inventory
  • Investors watching rental supply and sale listings
  • Data teams enriching internal property databases
  • Journalists and researchers studying French housing markets

Why use this actor?

SeLoger pages contain rich listing data, but copying it manually is slow and error-prone.

This actor gives you:

  • Clean JSON/CSV/Excel-ready rows
  • Stable field names for downstream pipelines
  • Configurable result limits
  • Multiple start URLs in one run
  • Optional Apify Proxy support if your run environment needs it
  • Pay-per-event pricing so small tests stay inexpensive

How it works

The actor uses an HTTP-first Cheerio approach.

Public SeLoger result pages include embedded search-result JSON in the page HTML. The actor fetches each start URL, parses the embedded __UFRN_FETCHER__ data, maps listing IDs to normalized records, and stores those records in the default Apify dataset.

Supported pages

Use public SeLoger search or category URLs such as:

  • https://www.seloger.com/immobilier/locations/immo-paris-75/
  • https://www.seloger.com/immobilier/locations/immo-lyon-69/
  • https://www.seloger.com/immobilier/locations/immo-marseille-13/
  • Other public SeLoger search result pages that expose listing data in the initial HTML

Input

The actor accepts a small set of practical controls.

FieldTypeDescription
startUrlsarraySeLoger search/category URLs to scrape
maxItemsintegerMaximum listing rows to save across all URLs
includeSuggestedListingsbooleanInclude suggested/promoted listings when present
maxImagesintegerMaximum image URLs saved per listing
useApifyProxybooleanEnable Apify Proxy if direct access is blocked
proxyCountryCodestringOptional proxy country code, for example FR

Example input

{
"startUrls": [
{ "url": "https://www.seloger.com/immobilier/locations/immo-paris-75/" },
{ "url": "https://www.seloger.com/immobilier/locations/immo-lyon-69/" }
],
"maxItems": 60,
"includeSuggestedListings": true,
"maxImages": 5,
"useApifyProxy": false
}

Output

Each dataset item represents one SeLoger property listing.

FieldDescription
listingIdSeLoger listing identifier
legacyIdLegacy SeLoger listing ID when available
titleListing title
enrichedTitleSeLoger enriched title/category
transactionTypeRent/sale distribution type from SeLoger data
propertyTypeProperty type label
priceNumeric asking price
priceTextFormatted price text
pricePeriodPrice period such as /mois
pricePerSqmCalculated price per square meter
areaSqmLiving area in square meters
roomsNumber of rooms
bedroomsNumber of bedrooms
floorFloor text when present
keyFactsSeLoger listing key facts
cityCity or arrondissement
zipCodePostal code
districtDistrict/neighborhood
addressAgency address when available
agencyNameAgency or intermediary name
agencyTypeAgency/private owner type
agencyProfileUrlSeLoger agency profile URL
phoneNumbersVisible phone numbers when exposed in page data
listingUrlCanonical listing URL
imagesListing image URLs
floorPlansFloor-plan image URLs
descriptionListing description snippet
energyClassEnergy class
isNewWhether SeLoger marks the listing as new
isExclusiveWhether SeLoger marks the listing as exclusive
has3DVisitWhether a 3D visit is available
createdAtSeLoger creation timestamp
updatedAtSeLoger update timestamp
sourceUrlSearch URL where the listing was found
scrapedAtActor scrape timestamp

Example output

{
"listingId": "267XBCWFAQSS",
"legacyId": "274524709",
"title": "Appartement à louer",
"transactionType": "RENT",
"propertyType": "Appartement",
"price": 1235.79,
"priceText": "1 236 €/mois",
"areaSqm": 35.22,
"rooms": 2,
"bedrooms": 1,
"city": "Paris 20ème arrondissement",
"zipCode": "75020",
"agencyName": "OQORO",
"listingUrl": "https://www.seloger.com/annonces/...",
"sourceUrl": "https://www.seloger.com/immobilier/locations/immo-paris-75/",
"scrapedAt": "2026-07-10T04:34:34.587Z"
}

How much does it cost to scrape SeLoger property listings?

The actor uses pay-per-event pricing.

  • Start event: $0.005 per run
  • Item event: tiered per saved property listing (BRONZE $0.000028429; FREE $0.000032693; SILVER $0.000022175; GOLD $0.000017057; PLATINUM $0.000011372; DIAMOND $0.00001)

Keep maxItems low for test runs and increase it when you are satisfied with the output.

Tips for best results

  • Start with one or two city search URLs.
  • Use maxItems around 20-60 for validation runs.
  • Add more start URLs to collect more than one SeLoger result page worth of data.
  • Keep maxImages modest if you only need analytics fields.
  • Enable Apify Proxy only if direct access is blocked in your environment.

Common workflows

Track Paris rental inventory

Run a Paris rental URL every day and compare listingId, price, and updatedAt across datasets.

Compare city markets

Provide several city URLs, such as Paris, Lyon, Marseille, Toulouse, and Bordeaux, then group output by city and zipCode.

Monitor agency listings

Filter results by agencyName or agencyProfileUrl in your downstream database.

Build price dashboards

Use price, areaSqm, pricePerSqm, rooms, bedrooms, and district to build market snapshots.

Integrations

Export results to:

  • Google Sheets for manual review
  • BigQuery or Snowflake for analytics
  • Airtable for editorial workflows
  • Webhooks for listing-change alerts
  • A CRM or internal brokerage database

API usage

You can run the actor from the Apify API.

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/seloger-property-listings-scraper').call({
startUrls: [{ url: 'https://www.seloger.com/immobilier/locations/immo-paris-75/' }],
maxItems: 50,
});
console.log(`Dataset: https://api.apify.com/v2/datasets/${run.defaultDatasetId}/items`);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/seloger-property-listings-scraper').call(run_input={
'startUrls': [{'url': 'https://www.seloger.com/immobilier/locations/immo-paris-75/'}],
'maxItems': 50,
})
print(run['defaultDatasetId'])

cURL

curl -X POST "https://api.apify.com/v2/acts/automation-lab~seloger-property-listings-scraper/runs?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"startUrls":[{"url":"https://www.seloger.com/immobilier/locations/immo-paris-75/"}],"maxItems":50}'

MCP integration

Use the actor from MCP-compatible tools through Apify MCP.

Claude Code CLI setup:

$claude mcp add apify https://mcp.apify.com/?tools=automation-lab/seloger-property-listings-scraper

Claude Desktop JSON configuration:

{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com/?tools=automation-lab/seloger-property-listings-scraper"
}
}
}

Direct MCP tool URL:

https://mcp.apify.com/?tools=automation-lab/seloger-property-listings-scraper

Example prompts:

  • "Scrape 50 SeLoger rental listings in Paris and summarize median price per sqm."
  • "Collect SeLoger listings from Paris and Lyon and compare bedroom counts."
  • "Export SeLoger listing URLs and agency names for this search."

Data quality notes

The actor extracts fields exposed in SeLoger's public search-page data. Some fields are optional and depend on the listing, agency, and SeLoger page variant.

Examples:

  • Some listings have no visible phone number.
  • Some listings have no floor plan.
  • Descriptions may be snippets rather than full detail-page descriptions.
  • Search pages usually expose one page of listing cards; use multiple URLs for larger collections.

Troubleshooting

I got no results

Check that your startUrls are public SeLoger search result pages. Detail pages or unsupported URLs may not include the embedded result dataset.

I see blocked or error pages

Try again with fewer URLs. If your run environment is blocked, enable useApifyProxy and set proxyCountryCode to FR.

I need more than one page of results

Add multiple SeLoger category, city, arrondissement, or neighborhood URLs. This MVP extracts the result data present in the initial HTML for each supplied URL.

Legality

This actor extracts publicly available information from SeLoger pages. You are responsible for ensuring your use of the data complies with applicable laws, SeLoger's terms, and privacy requirements. Avoid collecting or using personal data in ways that are not legally permitted.

You may also find these automation-lab actors useful:

Limitations

  • The actor does not log into SeLoger.
  • It does not bypass CAPTCHAs.
  • It extracts public search-page data, not every field from detail pages.
  • It depends on SeLoger's current embedded HTML data structure.

Changelog

See .actor/CHANGELOG.md for release notes.