Leboncoin Scraper — Listings, Prices, Sellers & SIREN avatar

Leboncoin Scraper — Listings, Prices, Sellers & SIREN

Pricing

from $1.75 / 1,000 results

Go to Apify Store
Leboncoin Scraper — Listings, Prices, Sellers & SIREN

Leboncoin Scraper — Listings, Prices, Sellers & SIREN

Scrape Leboncoin.fr listings by keyword or URL: price, location (city, ZIP, region, GPS), category, attributes, photos and seller type — private vs professional with store name and SIREN for B2B lead generation. Cars, real estate, electronics and more. Export to JSON, CSV, Excel.

Pricing

from $1.75 / 1,000 results

Rating

0.0

(0)

Developer

Haketa

Haketa

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

18 hours ago

Last modified

Features

Limited permissions

Share

Leboncoin Scraper — Listings, Prices, Sellers, SIREN & Geocoding

Apify Actor Maintenance Data Format

Extract classifieds listings from Leboncoin.fr — France's #1 marketplace — at scale, with no login, no cookies, and no coding required. This Leboncoin scraper lets you scrape Leboncoin by search keyword or by pasting full category/search URLs, returning structured, clean records: prices, geographic locations (city, postal code, department, region, precise GPS coordinates), seller types (private individuals vs. registered professionals), store names, SIREN numbers, categories, product attributes, and high-resolution photo galleries.

Export everything to JSON, CSV, Excel, XML, or API.

Built for B2B lead generation teams, automotive traders, real-estate analysts, e-commerce arbitrage resellers, and competitive price researchers tracking the French domestic consumer and business market.


⚡ At a glance

FeatureDescription
Data SourceLeboncoin.fr — France's undisputed #1 classifieds and resale platform
Search ModesKeyword search (searchTerms), direct filtered category URLs (startUrls), seller type filters (sellerType), and price bands
Output FormatsJSON, CSV, Excel (XLSX), XML, HTML table
Key Data FieldsTitle, price (EUR), city, ZIP/postal code, department, GPS coordinates (lat/lng), seller type (pro/private), seller name, SIREN number, category, structured attributes, image galleries
Speed & ScaleHTTP-native Next.js SSR extraction with French residential proxy rotation; extracts 35 listings per page, scaling to 1,000+ items
B2B IntelligenceExtracts official French company registration numbers (SIREN) and store IDs for verified B2B merchant prospecting

🔎 Why scrape Leboncoin?

Leboncoin.fr is the central digital hub for commerce in France, hosting tens of millions of active listings spanning used vehicles, real estate rentals and purchases, consumer electronics, industrial equipment, home furnishings, and professional services. Both private individuals and commercial entities transact through Leboncoin, making it the single richest real-time mirror of the French consumer economy.

Because Leboncoin deploys strict DataDome anti-bot protection and does not provide an open public API, manual data collection is impractical. This Leboncoin scraper automates extraction using automated residential proxy rotation across France, returning clean, de-duplicated rows ready for your database, CRM, or pricing model.

Common use cases for Leboncoin scraping:

  • 🎯 B2B Lead Generation: Extract directories of professional merchants and contractors, complete with business name, SIREN registry ID, department, and telephone availability.
  • 🚗 Used Automotive Intelligence: Track vehicle depreciation, price bands, mileage, fuel types, and gearbox specifications across French automotive dealerships.
  • 🏠 Real Estate Market Monitoring: Analyze property listings by price per square meter, room counts, postal codes, and regional GPS coordinates.
  • 📱 Electronics & Arbitrage Resale: Monitor second-hand prices for smartphones, gaming consoles, computing hardware, and luxury goods to spot undervalued deals.
  • 📊 Competitive Retail Intelligence: Track inventory depth, promotional pricing, and category assortment across French small-and-medium businesses.

✨ Key scraper capabilities

  • 🔎 Free-Text Keyword Search: Search multiple queries (iphone, renault clio, canapé, appartement paris) across all marketplace rubrics simultaneously.
  • 🔗 Direct URL Support: Paste complex Leboncoin search URLs with custom on-site filters (radius, price limits, brand filters, specific postcodes) directly into startUrls.
  • 🔁 Unlocked Deep Pagination (1,000+ items): Automatically walks sequential result pages (page=1, page=2, …). Setting maxPagesPerSearch: 0 enables continuous pagination bounded only by your requested maxItems.
  • 🏢 Professional Seller Enrichment: Differentiates private sellers from verified companies, capturing French SIREN registry numbers and registered store identities.
  • 📍 Granular Geographic Data: Extracts city name, postal code, French department, region, and exact latitude/longitude coordinates on every listing.
  • 🖼️ Full Photo Galleries: Collects primary thumbnail URLs along with complete arrays of high-resolution images.
  • 📝 Optional Full Description Fetch: Toggle fetchDetails: true to visit individual listing pages and extract complete ad body descriptions.
  • 🛡️ Built-in DataDome Resilience: Employs browser-grade TLS fingerprints and French residential proxy rotation to ensure smooth runs without challenge interruptions.

📥 Input parameters

FieldTypeDefaultDescription
searchTermsArray["iphone"]Keywords to search (e.g. ["iphone", "renault clio", "macbook"]).
startUrlsArray[]Optional direct Leboncoin search or category URLs. Preserves all native website filters.
sellerTypeString""Filter by seller type: "" (any seller), "private" (private sellers), or "pro" (registered professionals).
priceMinIntegernullMinimum price filter in Euros (€).
priceMaxIntegernullMaximum price filter in Euros (€).
maxItemsInteger0Overall limit on listings to collect across all searches. 0 = unlimited.
maxPagesPerSearchInteger0Pages to crawl per term/URL (~35 listings/page). 0 = auto/unlimited (governed by maxItems).
fetchDetailsBooleanfalseWhen true, fetches each listing's full body description text.
proxyConfigurationObjectResidential FRFrench Residential proxy is pre-configured and required for reliable access.

Example input — B2B contractor lead generation

{
"searchTerms": ["pompe à chaleur", "climatisation"],
"sellerType": "pro",
"maxItems": 500,
"maxPagesPerSearch": 0,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": ["RESIDENTIAL"],
"apifyProxyCountry": "FR"
}
}

Example input — filtered automotive search URL

{
"startUrls": [
"https://www.leboncoin.fr/recherche?category=2&text=clio&price=5000-12000"
],
"maxItems": 350,
"maxPagesPerSearch": 0
}

📊 Extracted fields

Every scraped listing yields structured fields across 5 core categories:

🏷️ Ad identity & taxonomy

FieldTypeCoverageDescription
idString🟢 HighUnique numeric Leboncoin listing identifier (de-duplication key)
urlString🟢 HighDirect canonical link to the live listing
titleString🟢 HighSubject / title of the advertisement
priceNumber🟢 HighPrice in Euros (€)
currencyString🟢 HighCurrency code (always EUR)
categoryString🟢 HighPrimary category name (e.g. Voitures, Immobilier, Téléphones)
categoryIdNumber🟢 HighNumeric internal Leboncoin category code
adTypeString🟢 HighListing classification (offer or demand)

🏢 Seller intelligence & B2B data

FieldTypeCoverageDescription
sellerTypeString🟢 HighMerchant type (pro for registered business, private for individual)
sellerNameString🟢 HighDisplay name of the seller or professional shop
sellerSirenString🟡 ConditionalOfficial 9-digit French company identification number (SIREN)
storeIdString🟡 ConditionalInternal professional store identifier
userIdString🟢 HighUnique seller user profile ID
hasPhoneBoolean🟢 HighWhether the seller has a published contact telephone number

📍 Location & coordinates

FieldTypeCoverageDescription
cityString🟢 HighCity name (often includes postal arrondissement, e.g. Paris 75011)
zipcodeString🟢 High5-digit French postal code
departmentString🟡 ConditionalFrench department name (e.g. Paris, Bouches-du-Rhône)
regionString🟢 HighAdministrative region (e.g. Île-de-France, Provence-Alpes-Côte d'Azur)
latNumber🟢 HighExact geographic latitude coordinate
lngNumber🟢 HighExact geographic longitude coordinate

🧩 Attributes, description & status

FieldTypeCoverageDescription
descriptionString🟡 ConditionalFull ad description text (populated when fetchDetails: true)
attributesObject🟢 HighDynamic dictionary of category attributes (brand, model, mileage, fuel, m², etc.)
publishedDateString🟢 HighTimestamp when the ad was first published
isBoostedBoolean🟢 HighWhether the seller purchased promoted placement

🖼️ Photos & media

FieldTypeCoverageDescription
imageUrlString🟢 HighPrimary thumbnail photo URL
imagesArray🟢 HighArray of all available high-resolution photo URLs
nbImagesNumber🟢 HighTotal image count in listing gallery
scrapedAtString🟢 HighISO 8601 execution timestamp

💻 Sample output record

{
"id": "3128057396",
"url": "https://www.leboncoin.fr/ad/telephones_objets_connectes/3128057396",
"title": "IPhone 12 - Non reconditionné Original 100%",
"description": null,
"price": 100,
"currency": "EUR",
"category": "Téléphones & Objets connectés",
"categoryId": 17,
"adType": "offer",
"sellerType": "pro",
"sellerName": "FUTURX",
"sellerSiren": "983689290",
"storeId": "81199770",
"userId": "be2ed4b7-2448-409b-8747-953cb5ea1a25",
"hasPhone": true,
"city": "Paris 75011 Popincourt",
"zipcode": "75011",
"department": "Paris",
"region": "Ile-de-France",
"lat": 48.859,
"lng": 2.378,
"publishedDate": "2026-09-15 12:06:25",
"isBoosted": false,
"imageUrl": "https://img.leboncoin.fr/api/v1/lbcpb1/images/16/0f/f0/160ff00b123.jpg?rule=ad-thumb",
"images": [
"https://img.leboncoin.fr/api/v1/lbcpb1/images/16/0f/f0/160ff00b123.jpg?rule=ad-image",
"https://img.leboncoin.fr/api/v1/lbcpb1/images/8b/5c/ca/8b5cca28456.jpg?rule=ad-image"
],
"nbImages": 2,
"attributes": {
"condition": "Très bon état",
"phone_brand": "Apple",
"phone_model": "iPhone 12",
"phone_color": "Blanc",
"phone_memory": "64 Go",
"stock_quantity": "1"
},
"searchTerm": "iphone",
"scrapedAt": "2026-11-10T13:00:00.000Z"
}

🔁 Deep pagination & scale

Leboncoin displays approximately 35 listings per page.

  • Unlocked 1,000+ Deep Pagination: Setting maxPagesPerSearch: 0 removes depth caps. The scraper continues requesting consecutive pages until your maxItems target is reached or listings are exhausted.
  • De-Duplication by ID: Output datasets are automatically de-duplicated in-memory using each listing's unique id, so overlapping searches never produce duplicate items.
  • Per-Page Residential IP Rotation: To ensure reliable delivery against DataDome defenses, each request uses a fresh French residential proxy session.

⚙️ How to integrate via API

Trigger runs and consume French marketplace data directly in Python or Node.js:

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run_input = {
"searchTerms": ["renault megane"],
"sellerType": "pro",
"maxItems": 150,
"maxPagesPerSearch": 0
}
run = client.actor("haketa/leboncoin-scraper").call(run_input=run_input)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(f"{item['title']} - {item['price']} € | Seller: {item['sellerName']} (SIREN: {item.get('sellerSiren')})")
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('haketa/leboncoin-scraper').call({
searchTerms: ['appartement marseille'],
maxItems: 200,
maxPagesPerSearch: 0,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Successfully scraped ${items.length} listings from Leboncoin.`);

💡 Practical scraping tips

  • Precise Search Targeting: Filter by specific model generations (e.g. clio 4 phase 2) or exact neighborhood names for higher relevance.
  • SIREN Registry Lookup: Use the extracted 9-digit sellerSiren to cross-reference French official company registries (INPI / Société.com) for company revenue, employee counts, and corporate leadership.
  • Fast List Scraping: Leave fetchDetails: false unless you specifically require long-form description paragraphs. List-mode extraction is 5× faster and consumes significantly less bandwidth.

❓ Frequently Asked Questions

Do I need a Leboncoin account or cookie session? No. The scraper interacts with public storefront data and requires no user authentication, cookies, or merchant credentials.

Why is Residential (FR) proxy required? Leboncoin utilizes strict DataDome bot defenses that immediately block generic datacenter IPs. The scraper includes pre-configured French residential proxy routing out of the box.

Can I filter exclusively for professional merchants? Yes. Set sellerType: "pro". The scraper will ignore private peer-to-peer sellers, returning only registered companies with store profiles and SIREN numbers.

How do I extract listings from a specific city or region? Set up your location radius on Leboncoin.fr, copy the resulting search URL, and paste it into startUrls.

Can I filter real estate by square meters or room count? Yes. You can configure your search with surface area (m²) and room count directly on Leboncoin.fr, then copy that search URL into startUrls. All filtered properties will match your criteria.

Which automotive attributes are extracted for car listings? Automotive listings return structured fields inside attributes: brand (vehicle_brand), model (vehicle_model), registration year (regdate), mileage (mileage), fuel type (fuel), and transmission gearbox (gearbox).

Does this scraper support automated webhooks? Yes. Through the Apify platform, you can configure Webhook integrations that trigger immediately upon run completion, sending new listings to your endpoint, Zapier, Make, or custom API.

How do I export listings into an SQL database like PostgreSQL? You can use the Apify API client or Python SDK to stream dataset rows directly into your database:

import psycopg2
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
dataset_items = client.dataset("DATASET_ID").iterate_items()
# Insert into your database table


🗂️ Leboncoin category code reference

When using Start URLs or filtering output data, you can reference Leboncoin's primary numeric category codes:

Category CodeFrench Category NameEnglish EquivalentCommon Attributes Extracted
2VoituresCars & VehiclesBrand, model, year, mileage, fuel, gearbox, doors
9Ventes immobilièresReal Estate (Sales)Property type, surface (m²), rooms, energy class
10LocationsReal Estate (Rentals)Furnished/unfurnished, surface (m²), rooms, charges
15InformatiqueComputers & LaptopsDevice type, brand, memory, storage, processor
17Téléphones & Objets connectésSmartphones & TechBrand, model, color, internal memory, condition
19AmeublementFurniture & HomeMaterial, dimensions, style, condition
22BricolageTools & DIYTool type, brand, power source
71VêtementsFashion & ApparelClothing type, brand, size, color, condition

🏢 B2B lead generation workflow using SIREN

The French business registry assigns every commercial organization a unique 9-digit SIREN number. This scraper extracts the SIREN directly from verified merchant listings:

  1. Target Commercial Niches: Search terms for commercial trades (plomberie, rénovation, déménagement, garage auto).
  2. Filter by Professional Sellers: Set sellerType: "pro" in the input.
  3. Automate Pipeline Enrichment: In your ETL pipeline, match extracted sellerSiren against open French government API directories (such as recherche-entreprises.api.gouv.fr) to enrich leads with official corporate names, NAF activity codes, registered capital, and executive contacts.
import requests
def enrich_siren(siren):
url = f"https://recherche-entreprises.api.gouv.fr/search?q={siren}"
res = requests.get(url).json()
results = res.get("results", [])
if results:
company = results[0]
return {
"legal_name": company.get("nom_complet"),
"naf_code": company.get("activite_principale"),
"address": company.get("siege", {}).get("adresse"),
"city": company.get("siege", {}).get("commune")
}
return None

📋 Changelog

v1.2 — 2026-11

  • Unlocked 1,000+ Deep Pagination: Updated maxPagesPerSearch default to 0 (auto/unlimited), enabling deep pagination runs up to 1,000+ listings governed by maxItems.
  • Enhanced Residential Proxy Rotation: Optimized session cycling per page for maximum stability against DataDome challenges.
  • Improved Attribute Normalization: Standardized automotive and real estate attribute dictionaries.
  • Fast Prefill Performance: Fine-tuned connection pooling to complete standard prefill runs in under 60 seconds.

v1.1 — 2026-09

  • Initial public release supporting keyword and Start URL extraction.
  • Professional seller identification with automated SIREN French business ID extraction.
  • Optional concurrent detail fetch mode for full listing body text.
⌂ 换网址