Leboncoin Scraper — France Classifieds Listings | $3/1K
Pricing
from $2.91 / 1,000 listings
Leboncoin Scraper — France Classifieds Listings | $3/1K
Extract public Leboncoin listings with prices, locations, seller details, images, and category attributes. Run with searchText or a search URL; use Apify Residential proxy in FR for reliable access. Pricing: $0.003 per dataset item on the Free plan.
Pricing
from $2.91 / 1,000 listings
Rating
0.0
(0)
Developer
Vitalii Bondarev
Maintained by CommunityActor stats
0
Bookmarked
24
Total users
5
Monthly active users
5 days ago
Last modified
Categories
Features
Share
Leboncoin Listings Scraper for France
Extract structured public listings from Leboncoin.fr, including prices, locations, seller details, images, and category-specific attributes for French market, real-estate, and vehicle research. Search by keyword or a Leboncoin search URL and export the dataset as JSON or CSV.
- Compare real-estate listings using surface, rooms, DPE, GES, and GPS fields.
- Analyze vehicle pricing with brand, model, mileage, fuel, gearbox, and registration year.
- Filter private or professional sellers and capture seller details, SIREN, store IDs, and phone availability.
- Research markets and competitors with category, location, price, and seller filters.
- Export structured records through the Apify dataset; the Actor needs the Apify Residential proxy (FR), which is the default setting.
What you get
The Actor supports keyword searches with filters or a Leboncoin search URL. It reads Leboncoin’s __NEXT_DATA__ and /_next/data routes and normalizes records, including parse_confidence and warnings. When the source does not provide a value, the corresponding field is null; list fields can be empty.
| Field family | Fields | Type | What it contains |
|---|---|---|---|
| Listing identity | ad_id, title, description, ad_type, url | string | Identifier, title, body, type, and source URL; description can be null |
| Pricing | price, price_cents, price_currency, old_price, price_dropped, monthly_price | number, string, boolean | EUR price fields; old_price and monthly_price can be null |
| Taxonomy | category, category_id, subcategory | string | Category information; subcategory can be null |
| Location | location_city, location_region, location_region_id, location_department, location_department_id, location_zipcode, location_lat, location_lng | string, number | Location hierarchy and coordinates; source-dependent location values can be null |
| Dates | published_date, index_date, expiration_date | ISO 8601 string | Listing lifecycle dates; expiration_date can be null |
| Seller | owner_type, owner_name, owner_store_id, owner_user_id, owner_siren, has_phone | string, boolean | Seller type, identity, store details, SIREN, and phone availability; source-dependent seller values can be null |
| Media | images, image_count, thumbnail | array of strings, integer, string | Image URLs and counts; images can be empty and thumbnail can be null |
| Attributes | attributes, attributes_map | array of objects, object | Full attributes and flat key-value map; attributes can be empty |
| Real estate | real_estate_type, surface_m2, rooms, bedrooms, energy_rate, ges | string, number, integer | Property type, size, rooms, DPE, and GES; these fields can be null |
| Vehicles | vehicle_brand, vehicle_model, mileage, fuel, gearbox, registration_year | string, integer | Vehicle specifications; these fields can be null |
| Status and provenance | urgency_level, is_boosted, status, parse_confidence, warnings, source, scraped_at | integer, boolean, string, number, array of strings, ISO 8601 string | Flags, extraction quality, source path, and scrape time; warnings can be empty |
fuel and gearbox are raw Leboncoin codes (for example "2"); the readable labels (for example "Diesel", "Automatique") are in attributes[].value_label. vehicle_model can carry suffixes such as model_all (for example Q2, model_all).
The dataset includes three preset views: Listings Overview, Real Estate, and Vehicles.
Sample output
The sample below is shortened by omitting nonessential fields. The values shown are copied from one real dataset record.
{"ad_id": "3289883176","title": "AUDI Q2 Q2 30 TDI 116 S tronic 7 Sport Entretien Complet","description": null,"price": 15990,"price_currency": "EUR","price_cents": 1599000,"category": "Voitures","location_city": "Sarlat-la-Canéda","owner_type": "pro","owner_name": "TRANSAKAUTO SARLAT","has_phone": true,"vehicle_brand": "Audi","vehicle_model": "Q2, model_all","mileage": 127000,"registration_year": 2019,"parse_confidence": 1,"warnings": [],"source": "searchData.ads"}
Pricing
The current billing model charges per event.
apify-actor-start is charged once per GB of run memory, with a minimum of one event. apify-default-dataset-item represents one scraped listing with all fields.
You pay only for the events listed below. This Actor does not use the Pay per event + usage option, so the platform usage of your runs (compute, proxy traffic and storage) is not billed to you separately. The run also records a listing-item event per row; it has no price and costs nothing.
| Apify plan | apify-actor-start | apify-default-dataset-item |
|---|---|---|
| Free plan | $0.00005 | $0.003 |
| Silver plan | $0.000049 | $0.00294 |
| Gold plan | $0.0000485 | $0.00291 |
| Platinum plan | $0.000048 | $0.00288 |
| Diamond plan | $0.0000475 | $0.00285 |
| Bronze plan | $0.0000495 | $0.00297 |
Worked examples at the Free-plan rate, before the start event:
| Volume on the Free plan | Dataset item fee |
|---|---|
| 100 listings | 100 × $0.003 = $0.30 |
| 1,000 listings | 1,000 × $0.003 = $3.00 |
| 10,000 listings | 10,000 × $0.003 = $30.00 |
The Apify Free plan includes $5 of monthly platform usage credit, which covers about 1,666 results (1,666 × $0.003 = $4.998) after one start event. Free accounts are limited to 10 listings per run, so that volume is reachable only across several runs.
How to use
- Choose
searchTextwith optional filters or a Leboncoin search URL; when accepted, the URL overrides the keyword and individual filters. - Add a location slug, category ID, price range, seller type, or sort order in keyword mode.
- Configure Apify Residential proxy with country
FR. - Set
maxItemsto control the number of listings across pages. Non-paying accounts are capped at 10 listings per run; for paying accounts,0means no item limit, and very large result sets stop at 400 pages (about 14,000 listings at 35 per page). - Run the Actor and inspect
parse_confidence,warnings, andsource. - Repeat the run through Apify Schedules.
{"searchUrl": "leboncoin.fr/recherche?text=velo&category=2","maxItems": 3,"proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "FR"}}
ownerType and sort apply only in keyword mode; they are ignored when searchUrl is used.
Export the dataset as JSON or CSV, or read it through the Apify dataset API.
Input parameters
| Parameter | What it does | Default |
|---|---|---|
searchText | Keyword search when searchUrl is not supplied. Empty search inputs end without listings. | Not set |
searchUrl | Leboncoin search URL; when recognized, it overrides the other search filters. | Not set |
locations | City or region slug in keyword mode; URL location takes precedence in URL mode. | Not set |
category | Numeric Leboncoin category ID in keyword mode. | Not set |
priceMin | Keeps listings at or above the supplied EUR amount. | Not set |
priceMax | Keeps listings at or below the supplied EUR amount. | Not set |
ownerType | Accepts all, private, or pro; only the latter two filter sellers. | all |
sort | Accepts relevance, time-desc, time-asc, price-asc, or price-desc. | relevance |
maxItems | Maximum listings across pages. Non-paying accounts are capped at 10 per run; 0 means no item limit for paying accounts, up to the 400-page ceiling. | 100 |
proxyConfiguration | Passes the proxy configuration to Apify; the default uses Apify Residential with country FR. | Apify Residential, FR |
disableUsageStats | Set to true to turn off the run summary described in Usage statistics. | false |
Limits and edge cases
Records reach the dataset after each page's batch is successfully processed and pushed. If a later page fails after earlier pages were pushed, those earlier records remain and pagination stops.
| Condition | What you see | What to do |
|---|---|---|
Non-paying account sets maxItems above 10 (or 0) | The run is limited to 10 listings and logs the reduction. | Use a paying account for larger runs. |
| A search matches more than about 14,000 listings | Pagination stops at the 400-page ceiling (35 listings per page). | Narrow the search with filters or split it into several runs. |
Both searchText and searchUrl are empty | The run reports that there is nothing to search and returns no listings. | Set searchText or a Leboncoin search URL. |
searchUrl is not recognized | It is ignored and the Actor falls back to searchText and filters. | Use a Leboncoin search URL or provide searchText. |
| No listings match | The Actor reports that Leboncoin has no listings for the search. | Widen the keyword, location, category, or price filters. |
| Leboncoin blocks page one after retries | The run reports a block and returns no listings. | Check the proxy configuration and run again. |
| Page one has no usable search data after retries | The run reports no readable search data; this is not confirmed as empty. | Use Apify Residential with country FR and run again later. |
A later JSON page fails or buildId changes | The Actor tries HTML, refreshes the build ID when available, and can use an HTML-card fallback. Records may have lower parse_confidence and more warnings. | Review source, parse_confidence, and warnings. |
| A later page cannot be fetched after fallbacks | Earlier records remain; pagination stops at the failed page. | Review saved records and retry with proxy configured. |
FAQ
How much does it cost to scrape Leboncoin listings?
Each saved listing is one dataset-item event; see Pricing for the rates by plan, the separate start event and worked examples.
What happens if my search returns an empty result?
If Leboncoin confirms no matching listings, the Actor reports that the search has no listings. Widen the keyword or filters, or check the searchUrl in a browser.
Why is the run not working?
Try Apify Residential with country FR, then run again. For later-page issues, inspect parse_confidence, warnings, and source.
Is it legal to extract Leboncoin listing data?
The Actor extracts public listing data from Leboncoin.fr. Whether collection and use are allowed depends on Leboncoin’s source terms and applicable law for your use case; review those requirements for your intended use.
Related actors
- Depop Scraper — Fashion Resale & Sold Items — related fashion-resale marketplace data.
- eBay Scraper — Search & Item Details — related marketplace search and item-detail extraction.
- Facebook Marketplace Scraper — No Login | GPS, Photos — related classifieds data with GPS and photo fields.
Usage statistics
This Actor creates a small, content-free summary at the end of each run, used only to monitor reliability and improve this Actor. No input values, credentials or scraped data are sent.
A copy of the exact record for your run is saved as USAGE_STATS in your own Apify key-value store.
To opt out, set disableUsageStats to true in the input. Nothing is sent then.