Leboncoin Scraper [$1/1K💰] | French Real Estate · Prices & DPE avatar

Leboncoin Scraper [$1/1K💰] | French Real Estate · Prices & DPE

Pricing

from $0.70 / 1,000 annonces

Go to Apify Store
Leboncoin Scraper [$1/1K💰] | French Real Estate · Prices & DPE

Leboncoin Scraper [$1/1K💰] | French Real Estate · Prices & DPE

Scrape Leboncoin.fr — France's largest classifieds platform — for structured French real estate data. Extract prices in EUR, price per m², surface, rooms, DPE/GES energy ratings, GPS, photos, and seller info with SIRET. DataDome bypass via Chrome TLS impersonation plus French residential proxy.

Pricing

from $0.70 / 1,000 annonces

Rating

0.0

(0)

Developer

Ahmed Jasarevic

Ahmed Jasarevic

Maintained by Community

Actor stats

0

Bookmarked

4

Total users

1

Monthly active users

20 days ago

Last modified

Categories

Features

Limited permissions

Share

Leboncoin Scraper — toutes les catégories

Scrapez n'importe quelle rubrique de leboncoin.fr — immobilier, voitures, emploi, électronique, animaux, services, matériel pro, maison, mode, loisirs… — et récupérez des JSON propres et typés : titre, prix, catégorie, marque/modèle, état, surface/pièces/DPE-GES, GPS, photos, description, fiche vendeur et date de publication.

Français (ci-dessous) · English summary at the end.

Ce que fait cet Actor

  • Toutes les rubriques : les 98 catégories de l'arbre leboncoin (0 = toutes, 9 = ventes immo, 2 = voitures, 15 = ordinateurs, 75 = animaux…), plus les sous-types immobiliers.
  • Recherche par URL : collez une URL https://www.leboncoin.fr/recherche?... et tous ses filtres (catégorie, prix, localisation, mots-clés, tri) sont repris automatiquement.
  • Annonces individuelles : collez des URLs https://www.leboncoin.fr/ad/... pour ne récupérer que celles-là, sans lancer de recherche.
  • Filtres : prix, surface, pièces, mots-clés (inclus/exclus, titre seul), type de vendeur (particulier/pro), urgence, don, livraison, rayon, tri par date/prix/pertinence.
  • Fiche vendeur : ancienneté, nombre d'annonces, note, temps de réponse, badges (includeSeller).
  • Anti-blocage : curl-impersonate avec l'empreinte TLS exacte de Chrome, cookie DataDome obtenu par warm-up HTTP (et, si besoin, par un onglet Chromium headless), rotation d'IP, puis repli sur la page /recherche (__NEXT_DATA__, puis cheerio).
  • Cache : rejouez une recherche identique sans re-scraping (cacheResults + TTL).

How It Works

Leboncoin Scraper workflow: from search URLs and categories to typed French classifieds with prices, DPE and location data

Looking for a Leboncoin scraper or a practical Leboncoin data alternative? Paste a search URL or choose from 98 categories, from property and cars to electronics, pets and services. Each ad includes title, price, category, property or vehicle attributes, surface, rooms, DPE, GES, location, GPS, photos, seller details and publication date.

Use the dataset for French real estate research, vehicle market analysis, price monitoring, mapping and lead generation. Export as JSON, CSV or Excel, or pull results through the Apify API. Pay from $1.50 per 1,000 ads.

Comment ça marche

Leboncoin n'a pas d'API publique. Cet Actor parle à la même API interne finder/search qu'utilise un vrai navigateur, avec une empreinte TLS Chrome grâce à curl-impersonate. Comme le site est protégé par DataDome, une proxie résidentielle française est fortement recommandée. Si l'API est bloquée, l'Actor lit la page /recherche (couche __NEXT_DATA__, puis parseur cheerio). Pour les détails d'une annonce, il interroge finder/classified/{id}, puis la page publique, puis les balises og:.

Chaîne d'enrichissement par annonce :

  1. finder/search (résultats de recherche)
  2. finder/classified/{id} (descriptions complètes, prix, attributs)
  3. page publique de l'annonce (__NEXT_DATA__ / og:) en dernier recours
  4. fiche vendeur si includeSeller: true

Entrées

ChampTypeDéfautDescription
categoryenum (98 ids)9Rubrique leboncoin (0 = toutes)
categoryIdstring–Saisie brute d'un ID, écrase category
searchUrlstring–URL /recherche complète : ses filtres remplacent les champs ci-dessus
searchQuerystring–Mots-clés
excludeKeywordsstring–Mots-clés à exclure (séparés par des virgules)
searchInTitleOnlybooleanfalseExiger les mots-clés dans le titre
locationsarray[]Région (12), 12|Île de France, 75__75000, ou texte libre (Paris)
radiusinteger–Rayon en km — nécessite searchUrl
sellerTypeall/pro/privateallType de vendeur
minPrice / maxPriceinteger–Fourchette de prix (€)
realEstateTypeenumallType de bien (catégories immo uniquement)
minSquare / maxSquareinteger–Surface (m²), immo uniquement
minRoomsinteger–Pièces minimum, immo uniquement
shippablebooleanfalseAnnonces avec livraison (ignoré si locations est renseigné)
urgentbooleanfalseAnnonces urgentes uniquement
donationbooleanfalseAnnonces à prix 0 uniquement
sorttime/price/relevancetimeTri (repli automatique sur le tri par défaut)
orderasc/descdescSens du tri
maxItemsinteger100Nombre max d'annonces (plafond 50 pour les comptes gratuits)
includePhotosbooleantrueExtraire les URLs de photos
includeSellerbooleanfalseRécupérer la fiche vendeur (1 requête de plus par annonce)
adDetailUrlsarray[]URLs d'annonces à récupérer directement (mode recherche ignoré)
cookieBootstrapbooleanfalseObtenir le cookie DataDome via Chromium headless si le warm-up échoue
cacheResultsbooleanfalseServir les résultats depuis le cache
cacheTtlMinutesinteger60TTL du cache
proxyConfigurationobjectApify RESIDENTIAL / FRProxy Apify
proxyUrlstring–Proxy unique personnalisé (prioritaire)

Les filtres excludeKeywords, searchInTitleOnly, urgent et donation sont appliqués côté client, après récupération, car leur forme exacte dans le payload interne n'est pas documentée. radius n'existe que dans le paramètre q de l'URL /recherche.

Sorties (dataset)

Chaque ligne du dataset par défaut :

ChampTypeDescription
id, url, titlestringIdentifiant, URL et titre de l'annonce
pricenumber|nullPrix en euros
priceCentsnumber|nullPrix en centimes (valeur brute de l'API)
pricePerSquareMeternumber|null€/m² calculé
categoryId, categoryNamestringRubrique et libellé FR
propertyType, surface, rooms, bedrooms–Caractéristiques du bien
dpe, gesstringDiagnostics énergie / climat
condition, brand, modelstringÉtat, marque, modèle
isShippable, isUrgent, hasPhonebooleanDrapeaux
locationobject{city, zipcode, department, region, latitude, longitude}
photos, photoCountarray/numberURLs des photos et nombre
sellerobject{id, name, type, isPro, siret, storeId, profileUrl}
sellerProfileobject|nullFiche enrichie si includeSeller
publicationDatestringDate de publication
descriptionstringDescription complète (si détails récupérés)
attributesobjectAttributs bruts (marque, état, couleur…)
searchQuerystringMots-clés de la recherche
dataSourcestringsearch, search+detail ou ad-detail
scrapedAtstringHorodatage ISO de l'extraction

Deux vues de dataset sont fournies : Leboncoin Listings et Pricing & Location.

Tarification

Actor en pay-per-event — vous ne payez que ce que vous récupérez :

Ce qui est facturéÉvénementPrix
Annonce — une annonce livrée dans le dataset (événement principal)apify-default-dataset-item0,80 $ / 1 000 annonces (dès 0,60 $ au meilleur tier)
Annonce détaillée — description complète, attributs et photos récupérés depuis la page de l'annoncescraped-ad-detail1,50 $ / 1 000 (optionnel)
Profil vendeur — fiche publique du vendeur attachée au résultat (includeSeller)seller-profile2,50 $ / 1 000 (optionnel)
Démarrage du runapify-actor-start0,00005 $ par run
  • Annonce détaillée n'est facturée que si l'enrichissement a réellement réussi ; Profil vendeur seulement si la fiche est présente dans le résultat. Une annonce bloquée ou une fiche introuvable, c'est zéro coût pour vous.
  • Les deux options se déclarent dans Console → Actor → Publishing → Monetization → Actor pricing ; tant qu'elles ne le sont pas, elles apparaissent dans les logs sans être facturées — chaque annonce reste facturée par l'événement principal.
  • Les comptes gratuits sont plafonnés à 50 annonces par run.

Exemples

Recherche par URL (le plus fiable)

{
"searchUrl": "https://www.leboncoin.fr/recherche?category=2&locations=t1&price=min-15000",
"maxItems": 200,
"sort": "time"
}

Voitures particulières, marque exclue

{
"category": "2",
"sellerType": "private",
"minPrice": 5000,
"maxPrice": 20000,
"excludeKeywords": "occasion, cassé",
"searchQuery": "break diesel",
"maxItems": 100
}

URLs d'annonces directes

{
"adDetailUrls": [
"https://www.leboncoin.fr/ad/voitures/1234567890",
"https://www.leboncoin.fr/ad/ventes-immobilieres/9876543210"
],
"includeSeller": true
}

Appel API

curl -X POST "https://api.apify.com/v2/acts/ahmed_jasarevic~leboncoin-scraper/runs?token=APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"category":"10","minPrice":600,"maxPrice":1200,"locations":["Paris"],"maxItems":50}'

Limites assumées

  • Pas de monitoring, pas de webhook, pas de Telegram — c'est un scraper de données, pas une plateforme d'alertes. Branchez vos propres webhooks Apify sur le dataset.
  • Les filtres client-side dépendent du nombre d'annonces parcourues : avec urgent, donation ou excludeKeywords, il faut parfois aller au-delà de la première page.
  • radius et shippable ont des interactions surprenantes côté leboncoin : shippable est ignoré dès qu'une localisation est fournie.
  • Aucune vérification en direct a pu être faite depuis cet environnement (DataDome bloque les IP de datacenter) : testez avec une proxy résidentielle FR sur le plateau Apify.

English summary

Scrape any leboncoin.fr category — real estate, cars, jobs, electronics, pets, services, pro material — into clean typed JSON: title, price, category, brand/model, condition, surface/rooms/ DPE-GES, GPS, photos, description, seller profile and publication date.

  • Paste a /recherche URL to reuse its filters, or paste individual /ad/... URLs.
  • Filters: price, surface, rooms, include/exclude keywords, title-only, seller type, urgency, donation, shipping, radius, sort by date/price/relevance.
  • DataDome bypass: curl-impersonate with Chrome's exact TLS fingerprint + DataDome cookie warm-up
    • IP rotation, then /recherche HTML fallback (__NEXT_DATA__, then cheerio).
  • Enrichment chain: finder/search → finder/classified/{id} → public ad page → optional seller profile.
  • Pay-per-event, billed only for what you actually get:
    • Annonce (primary result event) — every ad written to the dataset: $0.80 / 1,000 ads (from $0.60 on the best tier)
    • Annonce détaillée — full description, attributes and photos fetched from the ad page: $1.50 / 1,000 (opt-in, billed only when the fetch succeeded)
    • Profil vendeur — the seller's public profile attached to the result (includeSeller): $2.50 / 1,000 (opt-in, billed only when a profile is attached)
    • actor start: $0.00005 per run
  • Declare the two opt-ins in Console → Publishing → Monetization → Actor pricing; until then they are logged but never billed, and every ad still goes through the primary event. Free accounts are capped at 50 ads per run.
  • No monitoring, no webhooks, no Telegram — wire your own Apify webhooks to the dataset.