Leboncoin Real Estate Scraper
Pricing
from $1.00 / 1,000 results
Leboncoin Real Estate Scraper
Scrape leboncoin.fr real estate listings with full filters: city, price, surface, rooms, DPE. Returns 40+ fields per ad — GPS, images, seller info, energy class. No proxy setup needed, works out of the box.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(1)
Developer
Alexandre Manguis
Maintained by CommunityActor stats
3
Bookmarked
216
Total users
39
Monthly active users
7.7 hours
Issues response
7 days ago
Last modified
Categories
Share
Scrape leboncoin.fr real estate listings (vente & location) with full search filters. Returns 40+ fields per ad including DPE energy class, GPS coordinates, images and seller info.
Proxies are already included — nothing to configure, works out of the box.
Input
Proxies are already provided — no proxy setup needed.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
keywords | string | — | maison | Search keywords: maison, appartement, villa, T3, etc. |
city | string | — | France | City or postcode: Paris 15, 75015, Lyon 3, Bordeaux |
radius | integer | — | 10000 | Search radius in metres around the city (500–100000) |
priceMin | integer | — | — | Minimum price (€) |
priceMax | integer | — | — | Maximum price (€) |
surfaceMin | integer | — | — | Minimum surface (m²) |
surfaceMax | integer | — | — | Maximum surface (m²) |
roomsMin | integer | — | — | Minimum number of rooms |
maxAds | integer | — | 100 | Maximum ads to collect (1–5000). Leboncoin itself caps pagination at 100 pages (35 ads/page) per search, so no single search can return more than ~3500 ads regardless of this value. |
delay | float | — | 2.0 | Seconds between page requests (0.5–30) |
forceDescription | boolean | — | false | Force-fetch each ad's page to fill description when not found for free (pricing below). |
Example Input
{"keywords": "maison","city": "Paris 15","priceMax": 900000,"surfaceMin": 80,"roomsMin": 4,"maxAds": 100,"delay": 2.0}
Pricing
Each ad returned is charged as 1 result. forceDescription: true fills in the description field (see below) — every ad for which a description is actually found is charged as 1 extra result on top of its normal charge, at the same per-result price you already pay. No separate fixed fee, and ads where no description could be fetched aren't charged extra.
Output
Each item in the dataset represents one ad. Fields:
| Field | Type | Description |
|---|---|---|
id | integer | Leboncoin listing ID |
url | string | Direct URL to the ad |
title | string | Ad title |
description | string | Full ad description — empty "" unless forceDescription: true (leboncoin's search results never include it) |
price_eur | integer | Price in euros |
price_per_sqm | integer | Price per m² (when available) |
notary_fees_est | integer | Estimated notary fees (€) |
total_project_est | integer | Total project cost estimate (€) |
property_type | string | maison, appartement, terrain, etc. |
surface_m2 | integer | Living area (m²) |
land_surface_m2 | integer | Land area (m²) |
rooms | integer | Number of rooms |
bedrooms | integer | Number of bedrooms |
bathrooms | integer | Number of bathrooms |
floors | integer | Number of floors |
building_year | integer | Construction year |
condition | string | Property condition |
heating_mode | string | Heating type |
energy_class | string | DPE energy class (A–G) |
ges_class | string | GES class (A–G) |
energy_budget_min | integer | Min estimated annual energy cost (€) |
energy_budget_max | integer | Max estimated annual energy cost (€) |
location_city, location_zipcode, location_district, location_department, location_dept_id, location_region, location_lat, location_lng | string/number | City, zipcode, department, region, GPS lat/lng |
seller_name, seller_type, seller_user_id, seller_has_phone | string/boolean | Name, type (private/pro), user ID, phone available |
images_count, images_thumbnail, images_urls | integer/string/array | Photo count, thumbnail URL, all photo URLs |
published_at | string | First publication date (ISO 8601) |
updated_at | string | Last update date (ISO 8601) |
is_boosted | boolean | Ad is boosted/promoted |
is_urgent | boolean | Ad marked as urgent |
rank | integer | Position in results (1 = first) |
Example Output Item
{"id": 2453786102,"url": "https://www.leboncoin.fr/ad/ventes_immobilieres/2453786102","title": "Maison 5 pièces 120 m²","description": "","price_eur": 680000,"price_per_sqm": 5666,"property_type": "Maison","surface_m2": 120,"land_surface_m2": 280,"rooms": 5,"bedrooms": 3,"energy_class": "C","ges_class": "B","energy_budget_min": 890,"energy_budget_max": 1260,"location_city": "Paris 15e Arrondissement","location_zipcode": "75015","location_department": "Paris","location_dept_id": "75","location_region": "Île-de-France","location_lat": 48.8411,"location_lng": 2.2956,"seller_name": "Agence Exemple","seller_type": "pro","seller_has_phone": true,"images_count": 8,"images_thumbnail": "https://img.leboncoin.fr/api/...","images_urls": ["https://img.leboncoin.fr/api/..."],"published_at": "2026-02-28T09:14:00+0100","is_boosted": false,"rank": 1}
description is shown empty here since that's the default — it's only filled when forceDescription: true is set and a description is found for that ad.
Proxy
Proxies are already included — nothing to configure.
Technical Notes
- Pagination: follows leboncoin's
?page=Nparameter, up tomax_pagesreturned by the API - Data source: extracts
__NEXT_DATA__JSON embedded in page HTML — no extra requests per ad by default - Rate limiting: configurable
delaybetween search-result pages (default 2s). Detail-page fetches (forceDescription) run concurrently instead (25 at a time) rather than usingdelay— Bright Data's Web Unlocker supports this. Individual detail pages can still take anywhere from ~10s to ~60s+ each (site-side anti-bot processing, outside the actor's control) — concurrency reduces total run time on larger batches but a small batch can still take as long as its single slowest page - Deduplication: ads are deduplicated by
list_idacross pages - City resolver: uses
api-adresse.data.gouv.frto convert city names/postcodes to leboncoin location format descriptionfield: leboncoin's search-results API always returns an empty body for every ad — the full text only exists on the ad's own detail page, and leboncoin has no bulk/batch endpoint for it, so there's no way around one extra request per ad. SetforceDescription: trueto have the actor visit each ad's page (25 pages fetched concurrently) and fill indescription— see Pricing above for billing. Off by default so runs stay fast and cheap unless you explicitly need the full text.- Pagination limit: leboncoin caps every search at 100 pages (
max_pagesin its own response), 35 ads/page — so ~3500 ads is the hard ceiling per search regardless ofmaxAds.
Supported Cities
Any French city or postcode. Examples:
Paris,Paris 15,Paris 15ème,75015Lyon,Lyon 3,69003Marseille,Marseille 8,13008Bordeaux,33000Toulouse,Nantes,Nice,Strasbourg,Montpellier…
Note on
description: leboncoin's search results never include the ad's full description —descriptionis""by default, on every ad, regardless of filters. EnableforceDescriptionin the Input section above to have the actor open each ad's page and fetch it (billed as 1 extra result per ad where it's found — see Pricing above).
Keywords
leboncoin scraper, leboncoin real estate scraper, leboncoin immobilier, scrape leboncoin.fr, leboncoin API, leboncoin data extraction, leboncoin ventes immobilières, French real estate scraper, immobilier France, annonces immobilières leboncoin, vente maison France, vente appartement France, prix immobilier France, DPE énergie leboncoin, classe énergétique DPE, GES leboncoin, real estate France API, French property data, French housing market data, property scraper France, scrape real estate listings France, Paris real estate data, Lyon immobilier, Marseille property listings, Bordeaux real estate, Toulouse immobilier, prix au m² France, terrain à vendre France, maison à vendre France, appartement à vendre France, leboncoin seller info, leboncoin photos annonces, GPS coordinates real estate France, notary fees estimate France, frais de notaire estimation, real estate lead generation France, PropTech data France, French property investors, leboncoin monitoring, real estate market monitoring France, scraping immobilier Python, Apify real estate actor, leboncoin ad description scraper, leboncoin annonce description
Hashtags
#leboncoin #immobilier #realestate #france #webscraping #proptech #dataextraction #propertydata #dpe #immobilierfrance #leadgeneration #realestatedata #apify #scraping