How to scrape LeBonCoin in 2026 (complete guide)

Leboncoin is France's leading classifieds site: real estate, cars, jobs, second-hand goods, millions of listings refreshed every day. It is the reference source for price monitoring, local market analysis or spotting unusual listings. The site is protected by DataDome, and a naive scraper gets cut off on the very first page. Here is what really blocks, and the method measured over more than a hundred searches.
What data you can collect on Leboncoin
A results page holds 35 listings, and all their data is already structured inside the page, in the __NEXT_DATA__ JSON block: no HTML to pick apart.
- Listing: id, title, category, first publication date, photos.
- Price: asking amount, and for vehicles the year, mileage, fuel and gearbox.
- Location: city, postal code, department, region, coordinates.
- Seller: private or professional, shop name when relevant.
Real example, taken from the search clio in the cars category:
Renault CLIO IV Génération 7 990 € Antibes 2019 96 500 km
Renault Clio V TCe 100 Business 10 490 € Gainneville 2019 95 000 km
Clio 4 6 100 € Bron 2013 138 000 km
Clio 5 10 900 € Le Lamentin 2021 61 636 km
Clio 5 8 700 € Argenton-sur-Creuse 2022 58 000 km
Clio 2 3 500 € Surgères 2005 189 000 km
What blocks a naive scraper
Leboncoin uses DataDome. A request sent with a plain HTTP client gets an immediate 403, before any CAPTCHA, as soon as the IP is recognised as a server's. And a clean IP is not enough: DataDome also checks the browser fingerprint (TLS, JavaScript, header consistency) and sets a datadome cookie bound to that IP and that browser.
The classic trap: launching a full browser for every page. It works, but it is slow (6 to 9 seconds per page) and it does not hold up under load.
The details of DataDome's layers are in our article on how anti-bot systems work.
How to get the data cleanly
The right method fits in one sentence: solve DataDome once with a real browser, then replay the following pages over plain HTTP with the cookie obtained, the same User-Agent and the same IP. WyndPath does exactly that on this target, with nothing to configure: you send the results page URL, it returns the content.
curl -G "https://api.wyndpath.com/v1/" \
--data-urlencode "api_key=YOUR_KEY" \
--data-urlencode "session=clio-paris" \
--data-urlencode "url=https://www.leboncoin.fr/recherche?category=2&text=clio&locations=Paris_75000"
The session parameter is the key: every request carrying the same value shares the same IP and the same DataDome session. The first page is rendered in a browser, the following ones are replayed in under a second. To run several searches in parallel, give them different session values: each gets its own IP and its own session.
render_js. On Leboncoin, WyndPath decides by itself when the browser is needed. Forcing JavaScript rendering would bill every page at the browser rate, for no gain.What it really costs
Ten consecutive searches within one session, different cities and products, no tuning at all:
clio, Bordeaux 7.3 s 35 listings 10 credits (browser)
table basse, Toulouse 0.8 s 35 listings 1 credit (replay)
nintendo switch, Rennes 0.7 s 35 listings 1 credit
poussette, Marseille 0.8 s 35 listings 1 credit
macbook air, Strasbourg 0.8 s 35 listings 1 credit
tondeuse, Montpellier 0.8 s 35 listings 1 credit
One browser solve for 10 credits, then each page for 1 credit and under a second, as long as the session stays valid (it is renewed automatically when DataDome challenges it again). Over a hundred pages in one session, count about ten credits for the first and one credit per page afterwards. Billing stays per success: a block costs nothing.
Space your requests reasonably within a session: DataDome also watches the pace per IP, and a burst triggers a new challenge, hence a new solve at the browser rate.
The legal framework
Leboncoin listings are public, but collecting them is regulated. GDPR applies as soon as personal data is involved (a private seller's name, a phone number), and French case law has recalled that a listings database can be protected by the sui generis right: a massive, substantial extraction can be sanctioned. Take only what you need, do not extract private individuals' contact details, and read our article on web scraping and GDPR in France before a large-scale project.
session value per crawl, several sessions to parallelise.
Collect Leboncoin data without getting blocked
WyndPath handles proxies, JavaScript rendering and anti-bot bypass in a single API call. Pay-per-success, within the rules published by the sites.
Start for free →