Leboncoin Real Estate Scraper avatar

Leboncoin Real Estate Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Leboncoin Real Estate Scraper

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

Alexandre Manguis

Maintained by Community

Actor stats

3

Bookmarked

216

Total users

39

Monthly active users

7.7 hours

Issues response

7 days ago

Last modified

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.

ParameterTypeRequiredDefaultDescription
keywordsstringmaisonSearch keywords: maison, appartement, villa, T3, etc.
citystringFranceCity or postcode: Paris 15, 75015, Lyon 3, Bordeaux
radiusinteger10000Search radius in metres around the city (500–100000)
priceMinintegerMinimum price (€)
priceMaxintegerMaximum price (€)
surfaceMinintegerMinimum surface (m²)
surfaceMaxintegerMaximum surface (m²)
roomsMinintegerMinimum number of rooms
maxAdsinteger100Maximum 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.
delayfloat2.0Seconds between page requests (0.5–30)
forceDescriptionbooleanfalseForce-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:

FieldTypeDescription
idintegerLeboncoin listing ID
urlstringDirect URL to the ad
titlestringAd title
descriptionstringFull ad description — empty "" unless forceDescription: true (leboncoin's search results never include it)
price_eurintegerPrice in euros
price_per_sqmintegerPrice per m² (when available)
notary_fees_estintegerEstimated notary fees (€)
total_project_estintegerTotal project cost estimate (€)
property_typestringmaison, appartement, terrain, etc.
surface_m2integerLiving area (m²)
land_surface_m2integerLand area (m²)
roomsintegerNumber of rooms
bedroomsintegerNumber of bedrooms
bathroomsintegerNumber of bathrooms
floorsintegerNumber of floors
building_yearintegerConstruction year
conditionstringProperty condition
heating_modestringHeating type
energy_classstringDPE energy class (A–G)
ges_classstringGES class (A–G)
energy_budget_minintegerMin estimated annual energy cost (€)
energy_budget_maxintegerMax estimated annual energy cost (€)
location_city, location_zipcode, location_district, location_department, location_dept_id, location_region, location_lat, location_lngstring/numberCity, zipcode, department, region, GPS lat/lng
seller_name, seller_type, seller_user_id, seller_has_phonestring/booleanName, type (private/pro), user ID, phone available
images_count, images_thumbnail, images_urlsinteger/string/arrayPhoto count, thumbnail URL, all photo URLs
published_atstringFirst publication date (ISO 8601)
updated_atstringLast update date (ISO 8601)
is_boostedbooleanAd is boosted/promoted
is_urgentbooleanAd marked as urgent
rankintegerPosition 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=N parameter, up to max_pages returned by the API
  • Data source: extracts __NEXT_DATA__ JSON embedded in page HTML — no extra requests per ad by default
  • Rate limiting: configurable delay between search-result pages (default 2s). Detail-page fetches (forceDescription) run concurrently instead (25 at a time) rather than using delay — 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_id across pages
  • City resolver: uses api-adresse.data.gouv.fr to convert city names/postcodes to leboncoin location format
  • description field: 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. Set forceDescription: true to have the actor visit each ad's page (25 pages fetched concurrently) and fill in description — 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_pages in its own response), 35 ads/page — so ~3500 ads is the hard ceiling per search regardless of maxAds.

Supported Cities

Any French city or postcode. Examples:

  • Paris, Paris 15, Paris 15ème, 75015
  • Lyon, Lyon 3, 69003
  • Marseille, Marseille 8, 13008
  • Bordeaux, 33000
  • Toulouse, Nantes, Nice, Strasbourg, Montpellier

Note on description: leboncoin's search results never include the ad's full description — description is "" by default, on every ad, regardless of filters. Enable forceDescription in 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