← All guides
Guide · DataDome

How to scrape LeBonCoin in 2026 (complete guide)

Updated 09/11/2026 · 7 min · by WyndPath
Scrape Leboncoin

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.

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.

Do not force 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.

Key takeaways · Leboncoin = DataDome, immediate 403 for an HTTP client. WyndPath solves once in a browser (10 credits, ~7 s) then replays each page for 1 credit in under a second, 35 listings as JSON per page. One 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 →
Another guide
Scrape Google Maps →
Another guide
Scrape Vinted →
Another guide
Scrape CardMarket →