SeLoger Scraper - France Property Listings & Agencies
Pricing
from $2.20 / 1,000 listings
SeLoger Scraper - France Property Listings & Agencies
Extract French SeLoger sale and rental listings, property details, and agency profiles by location or URL. Get prices, rooms, surface area, DPE grades, photos, and available contacts. Pay per delivered row plus a start fee.
Pricing
from $2.20 / 1,000 listings
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
0
Monthly active users
6 hours ago
Last modified
Categories
Security
Limited permissionsShare
SeLoger Scraper
Extract French property listings and agency profiles from SeLoger into rows you can export or read through the API.
- Sale and rental listings by location or search URL.
- Prices, rooms, surface area, DPE grades, photos, and available agency contacts.
- Listing detail pages and agency profile URLs as direct inputs.
- JSON, CSV, Excel, and other dataset exports.
- On the Free plan, $3.00 per 1,000 rows plus a small start fee.
What does SeLoger Scraper do?
SeLoger Scraper collects public property data from SeLoger.com in France. Each dataset row represents one listing or one agency profile, not an entire search page. Use the rows for price comparisons, property research, agency directories, or scheduled snapshots.
- Location search: fill
location, then choosechannelandpropertyType. - Search URL: put a SeLoger search page in
startUrlsto use that search. - Listing URL: put a property page in
startUrlsto extract that listing. - Agency URL: put a professional profile in
startUrlsto extract one agency row. - Detail enrichment:
scrapeDetailsis on by default. It adds available detail fields to the same listing row, rather than creating a separately billed detail row.
What data can you extract from SeLoger?
Property listing rows
sourceLayer is srp for search results, ldp for direct detail pages, or srp+ldp for an enriched search row. Field availability depends on the page. Examples below illustrate the format, not a verified current property.
| Field | Description | Example |
|---|---|---|
id | Listing identifier | EXAMPLE-LISTING |
url | Property page | https://www.seloger.com/annonces/achat/appartement/paris-10eme/275134013.htm |
sourceLayer | Source page type | srp+ldp |
sourceSearchUrl | Search page that supplied the listing | A SeLoger search URL |
title | Listing title | Appartement à vendre |
channel | Sale or rental | BUY |
searchPropertyType | Category requested in the search | appartement |
propertyType | Category supplied by the listing | appartement |
priceAmount | Numeric advertised price | 299000 |
priceFormatted | Price as displayed | 299 000 € |
pricePerSqm | Price per square metre, when present | 9645 |
rooms | Room count | 2 |
bedrooms | Bedroom count | 1 |
surface | Surface area in square metres | 31 |
energyClass | DPE energy grade | D |
city | City or arrondissement | Paris |
zipCode | Postal code | 75010 |
description | Available listing description | Example property description |
features | Available property features | An object, or null |
coOwnership | Co-ownership information | An object, or null |
deposit | Rental deposit from the detail page | 1200 |
provider | Agency summary | {"name":"Example Agency"} |
phones | Available phone numbers and types | [{"value":"+1 555 0100","type":null}] |
emails | Empty on listing rows | [] |
org | Agency name and identifier | {"name":"Example Agency","id":"EXAMPLE"} |
geo | Coordinates, when available | {"lat":48.85,"lng":2.35} |
images | Available image URLs | An array of URLs |
imageCount | Number of image URLs | 4 |
detailError | Reason detail enrichment failed, if applicable | missing_classified |
scrapedAt | Collection timestamp | 2026-10-24T08:00:00+00:00 |
Agency profile rows
Agency rows have sourceLayer: "agency". They describe the agency, not its entire property inventory, and do not contain property prices or room counts.
| Field | Description | Example |
|---|---|---|
id | Agency profile identifier | EXAMPLE-AGENCY |
url | Professional profile URL | https://www.seloger.com/professionnels-immobilier/EXAMPLE-AGENCY |
sourceLayer | Row type | agency |
title | Agency display name | Example Agency |
phones | Published agency telephone numbers | [{"value":"+1 555 0100","type":null}] |
emails | Published agency email addresses | [{"value":"name@example.com","type":"agency"}] |
address | Agency address, when present | {"locality":"Paris","postalCode":"75010"} |
geo | Agency coordinates | null |
org | Company name and identifier | {"name":"Example Agency","id":"EXAMPLE"} |
web | Website and social links | {"website":"https://example.com","socials":[]} |
leadAbsences | Reasons contact fields are missing | An object |
scrapedAt | Collection timestamp | 2026-10-24T08:00:00+00:00 |
How to scrape SeLoger
- Open SeLoger Scraper in Apify Console.
- Fill
locationorstartUrls. Clear the example URL before using a location alone. - Set
maxItemsto 3 for your first run. - Click Start and wait for completion.
- Open the dataset and download the rows, or retrieve them through the API.
An empty input uses the form's Nantes house-rental example and returns at most 3 rows. Normal start and row charges apply. A target field is enough to choose the appropriate collection path; there is no mode setting. When both targets are supplied, startUrls takes priority over location.
Location search
Use a French place such as nantes, paris, or ile-de-france/paris-75000. The defaults are channel: "RENT" and propertyType: "maison". Set channel: "BUY" for sale listings.
Search URLs
Paste the search URL from SeLoger into startUrls. Prefer a complete /immobilier/... search URL. Its filters define the search; the location-based settings do not rebuild it. You can supply several URLs.
Listing URLs
Supply a property URL to retrieve that listing directly. The examples use URL forms accepted by the Actor; replace the example with a current listing before running it.
Agency profiles
Supply a /professionnels-immobilier/... profile URL. The Actor returns the agency's available public information as one row, billed at the same rate as a listing row.
What to fill in
| Field | What to enter | Default |
|---|---|---|
startUrls | Search, listing, or agency URLs; strings or objects containing url | No target default; form shows a Nantes example |
location | French city or area when no URLs are supplied | No target default; form shows nantes |
channel | BUY or RENT, for a location search | RENT |
propertyType | Main-site category, listed below | maison |
maxItems | Maximum rows per URL or fallback location; 1–500 | 70; form example 3 |
maxPages | Maximum search pages; 1–50 | 1 |
scrapeDetails | Add available detail fields to search rows | true |
onlySeloger | Skip search cards linking outside SeLoger | true |
requestDelayMillis | Delay between page requests; 0–20000 milliseconds | 1500 |
Location search:
{"location": "paris","channel": "BUY","propertyType": "appartement","maxItems": 3}
Search URL:
{"startUrls": [{"url": "https://www.seloger.com/immobilier/locations/immo-nantes-44/bien-maison/"}],"maxItems": 3,"scrapeDetails": false}
Direct listing:
{"startUrls": ["https://www.seloger.com/annonces/achat/appartement/paris-10eme/275134013.htm"],"maxItems": 1}
Agency profile:
{"startUrls": ["https://www.seloger.com/professionnels-immobilier/UUMNJERk7p5E65SfR7HpLD"],"maxItems": 1}
Supported propertyType values are appartement, maison, terrain, immeuble, parking, local-commercial, bureaux, loft, boutique, batiment, chalet, ferme, chateau, hotel-particulier, and all. The last removes the category filter. English aliases include house, apartment, garage, commercial, and offices. An unknown category falls back to appartement, with a note in INPUT_ECHO.
maxResults,limit, andmax_resultsare aliases formaxItems.- Close field-name misspellings can be corrected. Other unknown fields are ignored and recorded, rather than failing the run.
- Invalid
channelvalues are ignored in favour of the default; lowercasebuybecomesBUY. - Invalid targets stop before row delivery with
INVALID_INPUT: <field> — <how to fix>. No rows are charged; the start fee can still apply. INPUT_REPORTin the default key-value store records how the input was understood.INPUT_ECHOshows the parsed settings.
Output example
Illustrative listing row; contact details are placeholders:
{"id": "EXAMPLE-LISTING","url": "https://www.seloger.com/annonces/achat/appartement/paris-10eme/275134013.htm","source": "seloger","sourceLayer": "srp+ldp","channel": "BUY","searchPropertyType": "appartement","propertyType": "appartement","title": "Appartement à vendre","priceAmount": 299000,"priceFormatted": "299 000 €","rooms": 2,"surface": 31,"energyClass": "D","city": "Paris","zipCode": "75010","phones": [{"value": "+1 555 0100", "type": null}],"emails": [],"scrapedAt": "2026-10-24T08:00:00+00:00"}
Export the dataset as JSON, CSV, Excel, XML, RSS, or an HTML table. OUTPUT and RUN_SUMMARY contain counts and warnings. ERROR_SUMMARY records a failed run's reason when available.
Why use this SeLoger scraper?
- Row-based billing: the result fee applies to delivered rows, plus the start fee.
- Partial delivery: partial results returned to the Actor are saved. Rows already written remain available if the run stops; stopping before delivery can leave no rows.
- Explicit missing values: unavailable fields stay empty rather than being invented.
- Several inputs: collect separate searches or URLs in one run, with a limit for each input.
- Less setup: you do not need to set up proxies.
- Repeatable exports: schedule snapshots for your own comparisons; the Actor does not calculate historical price changes for you.
How much does it cost to scrape SeLoger?
The Actor uses pay-per-event pricing. The start event costs $0.005 per GB of allocated memory, with a minimum of one event. At the default 512 MB, one start costs $0.005. Platform usage is included in these prices.
| Apify plan | Start at 512 MB | Price per row | Price per 1,000 rows |
|---|---|---|---|
| Free | $0.005 | $0.003 | $3.00 |
| Starter | $0.005 | $0.003 | $3.00 |
| Scale | $0.005 | $0.0026 | $2.60 |
| Business | $0.005 | $0.0022 | $2.20 |
maxItems applies to each input, with a default of 70 and a maximum of 500. Larger requests can be collected in parts. maxPages and available listings can reduce the number returned. The whole run is also bounded by Maximum cost per run (maxTotalChargeUsd in the API), not just the per-input row limit.
The Free Apify plan is limited to 200 rows per run and 10 runs of this Actor. These are developer-set limits. Paid plans remove the 10-run restriction, not the input limits.
Example: three search URLs returning 3 rows each deliver 9 rows. On the Free plan, one start at 512 MB costs $0.005 and 9 rows cost $0.027: $0.032 total. Fewer delivered rows mean a smaller row charge.
What happens when the run timeout is too short
A short timeout can cause a temporary pause rather than a failed search. The run can show ABORTED with this status message: "Queued on the collection backend; this run will resume automatically when results are ready (about Ns)." Here, N is the estimated wait in seconds.
When results are ready, the same run resumes, writes to the same dataset, and can finish as SUCCEEDED. A resumed-delivery message may read "Resumed: delivering N rows." Rows already present are skipped, so they are not delivered or charged again. You do not need to launch a replacement run for this pause.
- The pause policy permits at most 3 pauses per run. Keep the default timeout of 3600 seconds to reduce the chance of a pause.
- Synchronous endpoints (
run-sync,run-sync-get-dataset-items) wait at most 300 seconds and can return an empty dataset while the run is paused. - For longer searches, start asynchronously and read the dataset after
SUCCEEDED, or use a succeeded-event webhook. An unrelated failure or manual abort does not carry this automatic-resume promise.
Use with AI agents and the API
Apify MCP server
Use this remote MCP URL with Claude, ChatGPT, Cursor, VS Code, or another compatible client:
https://mcp.apify.com?tools=lentic_clockss/seloger-property-scraper
Sign in with Apify through OAuth when prompted, or use Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns its run and dataset IDs; the agent reads rows with get-dataset-items.
Clients without remote support can use npx @apify/actors-mcp-server --tools lentic_clockss/seloger-property-scraper with APIFY_TOKEN set.
Example prompt: "Find up to 3 houses for rent in Nantes using SeLoger. Return price, surface area, DPE grade, and listing URL."
Apify API
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/seloger-property-scraper").call(run_input={"location": "nantes", "maxItems": 3})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row)
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/seloger-property-scraper').call({ location: 'nantes', maxItems: 3 });const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
For asynchronous HTTP access, send the input JSON to POST https://api.apify.com/v2/acts/lentic_clockss~seloger-property-scraper/runs with the same authorization header. Read the completed dataset through GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json.
Integrations
Use the Actor's Integrations tab for Google Sheets, Make, Zapier, n8n, Slack, Airtable, or webhooks. Use Apify Schedules for recurring runs.
En français
Cet Actor extrait les annonces de vente et de location sur SeLoger, ainsi que les profils d'agences. Renseignez location avec une ville française, ou collez vos liens dans startUrls. Pour une recherche par ville, choisissez BUY ou RENT dans channel, puis le type de bien dans propertyType. Réglez maxItems pour limiter les lignes par recherche ou par URL. Les résultats peuvent contenir le prix, la surface, le DPE et les coordonnées publiées. Les informations absentes restent vides. Chaque ligne livrée est facturée, avec des frais de démarrage distincts. Commencez par trois lignes, puis exportez le jeu de données en CSV, Excel ou JSON.
FAQ
Is it legal to scrape SeLoger?
Use public data only. You are responsible for checking SeLoger's terms and applicable data-protection law. Publicly visible personal data still needs a lawful basis for collection and use; public access is not permission for every use.
Why did my run end as ABORTED?
Check the status message. The automatic-resume message above indicates a temporary pause. Other aborts may be manual or have a different cause; do not assume every aborted run will resume.
How many results can I get?
Request 1–500 rows per URL or location with maxItems. The page limit, available inventory, Free-plan cap, and maximum run cost can reduce delivery. The default one-page limit may return fewer than 70 rows.
Why are some fields empty?
Listings do not all publish the same information. DPE, bedrooms, coordinates, and contacts may be absent. If detail enrichment fails, a search row can still be returned with detailError.
Can I collect both sale and rental listings?
Yes. Use separate location runs with BUY and RENT, or provide both types of search URLs in startUrls.
Can I get email addresses?
Listing rows leave emails empty. Agency profiles can provide published email addresses, but availability is not guaranteed. The Actor does not submit contact forms.
What happens after 10 Free-plan runs?
The Actor reports its Free-plan run limit and stops collecting. A paid Apify plan removes this developer-set run restriction.
Are sister-brand URLs supported?
The input accepts bellesdemeures.com, selogerneuf.com, seloger-bureaux-commerces.com, and seloger-construire.com URLs when onlySeloger is false. Acceptance does not guarantee complete extraction from those sites; prefer main-site SeLoger URLs.
Limitations
- Coverage is French SeLoger data, not a worldwide property search.
maxItemsis a ceiling, not a promise of that many available rows.- Search results and details can change or disappear between requests.
- Agency rows describe a profile, not every property that agency advertises.
- Listing email addresses and individual staff profiles are not supplied.
- Sister-brand extraction and contact-field completeness are not guaranteed.
- Historical changes require your own stored snapshots and comparisons.
Related scrapers
More real estate and property data scrapers from the same publisher:
- Zumper Scraper
- Booli Scraper
- Craigslist Scraper
- PropertyGuru Scraper
- OpenSooq Scraper
- Apartments.com Rental Scraper
- Dot Property Scraper
- FINN.no Scraper
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Report a problem or request a field through the Issues tab of this Actor's page. Include the run ID and the input you used.