Leboncoin FR $1πŸ’° URL | Filters | Deep Search Scraper avatar

Leboncoin FR $1πŸ’° URL | Filters | Deep Search Scraper

Pricing

from $0.80 / 1,000 results

Go to Apify Store
Leboncoin FR $1πŸ’° URL | Filters | Deep Search Scraper

Leboncoin FR $1πŸ’° URL | Filters | Deep Search Scraper

Pull public leboncoin.fr listings across cars, property, jobs, electronics, furniture, and 35+ categories. Returns 60–78 fields, including price, GPS, seller info, attributes, and images. Search by filters or URL with pagination and listing ID dedupe.

Pricing

from $0.80 / 1,000 results

Rating

5.0

(1)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

1

Bookmarked

9

Total users

0

Monthly active users

3 days ago

Last modified

Share

Leboncoin Scraper: Cars, Property, Jobs & 39 More Categories

Leboncoin Scraper turns leboncoin.fr classified listings into clean structured data. Search by filters or paste a Leboncoin search URL, and get 60 to 80 flat fields per listing: price, GPS coordinates, seller info, category attributes such as mileage, fuel type, year, rooms and surface area, plus the full image gallery. Optionally enrich every listing with the full description, seller ratings and a seller's other active ads. Export to JSON, CSV or Excel, or pull results straight into your app through the API.

Why This Scraper?

  • Two ways to search. Build a search from filters (category, location, price, and more), or paste one or more Leboncoin search URLs and let the actor walk them forward.
  • 60 to 80 flat fields per listing. Price, location down to GPS coordinates, full seller info, and every category-specific attribute the site returns (mileage, fuel, rooms, surface area, and more), not a hard-coded subset.
  • Multi-location and multi-category in one run. Search several cities or paste several search URLs, and get a fair share of listings from each.
  • Optional detail-page enrichment. Turn on a single input to also fetch the full description text and the complete image gallery for each listing.
  • Optional seller enrichment. Pull a seller's star rating and written reviews, or their other active listings, useful for mapping professional sellers' catalogues.
  • Per-search budget. Max listings is shared fairly across every location or URL in the run, so a multi-city search returns a sample from every city instead of exhausting the budget on the first one.
  • Built for schedules. Turn on Incremental mode to get only new and changed listings on repeat runs of the same search, or use Resume to continue one interrupted crawl.

Use Cases

  • Car and vehicle market research: track prices, mileage and listing volume for specific makes, models or regions.
  • Property market monitoring: collect listings by city, price band, surface area and room count for rental or sale market analysis.
  • Lead generation for pro sellers: filter by seller type and category to find active listings worth reaching out about.
  • Price tracking and alerts: run the same search on a schedule with Incremental mode to catch new listings and price changes as they happen.
  • Marketplace and competitor analysis: map a professional seller's full catalogue with the seller-other-listings enrichment.

Data You Get

Sample shape: values are illustrative placeholders, not from a live listing.

FieldExample
id"1234567890"
list_id1234567890
subject"Sample Listing Title"
body"Full seller description text appears here when fetchDetails=true."
url"https://www.leboncoin.fr/ad/voitures/1234567890"
category_name"Voitures"
ad_type"offer"
status"active"
price0
publication_date"2026-01-01 00:00:00"
expiration_date"2026-04-01 00:00:00"
has_phonetrue
is_boostedfalse
city"Paris"
zipcode"75001"
department"Paris"
latitude / longitude48.8566 / 2.3522
owner_type"private"
owner_name"Sample Seller"
image_count5
image_urls["https://img.leboncoin.fr/...jpg", "..."]
attr_year"2020"
attr_mileage"50000"
attr_fuel"Diesel"
attr_rooms"3 pièces"

Category attributes (attr_*) vary by category: cars carry mileage, fuel and gearbox, property carries rooms, surface area and energy rating. The full set the site returns for a listing is preserved in a raw_attributes array (each entry has key, value and value_label) alongside the flattened attr_* fields. When fetchSellerReviews or fetchSellerOtherListings is on, each listing also carries seller_rating_avg, seller_review_count and a seller_reviews array, or seller_other_listings_count and a seller_other_listings array of that seller's other active ads, with empty results for sellers with no reviews or no other listings.

How to Use

  1. Pick a mode: Search by filters, or Direct URLs (paste one or more Leboncoin search URLs).
  2. In search mode, set a category, locations and any value filters (price, rooms, mileage, fuel, seller type).
  3. Switch on detail-page or seller enrichment if you need the full description, image gallery, or seller ratings.
  4. Set Max total listings to control run size and cost, then click Start.

Search cars in Paris under 15,000 EUR:

{
"mode": "search",
"category": "voitures",
"locations": ["Paris"],
"maxPrice": 15000,
"maxMileage": 50000,
"fuel": "diesel",
"sortBy": "price_asc",
"maxListings": 100
}

Search across multiple cities, professional sellers only:

{
"mode": "search",
"category": "ventes_immobilieres",
"locations": ["Paris", "Lyon", "Marseille", "Bordeaux"],
"minSquare": 40,
"maxSquare": 120,
"rooms": ["2", "3", "4"],
"ownerType": "pro",
"maxListings": 200
}

Paste Leboncoin search URLs, with detail enrichment:

{
"mode": "url",
"urls": [
"https://www.leboncoin.fr/recherche?category=2&locations=Paris",
"https://www.leboncoin.fr/recherche?category=9&locations=Lyon"
],
"fetchDetails": true,
"maxListings": 200
}

Free-text query with seller enrichment:

{
"mode": "search",
"text": "iphone 14 pro",
"category": "telephonie",
"locations": ["Paris", "Lyon"],
"fetchSellerReviews": true,
"maxListings": 50
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/leboncoin-fr-scraper").call(run_input={
"mode": "search", "category": "voitures", "locations": ["Paris"], "maxListings": 50
})
for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
print(listing["subject"], listing["price"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/leboncoin-fr-scraper').call({
mode: 'search', category: 'voitures', locations: ['Paris'], maxListings: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Resume and recurring updates

  • Resume (resumeFromRunId) continues one specific interrupted or previous large crawl: paste a run or dataset ID and this run skips listings already collected there, returning only the new ones.
  • Incremental mode (incrementalMode) is for running the same search again and again, for example daily. The actor remembers the previous run of the same search itself, so you never paste a run ID. The first run returns everything as NEW. Later runs return only NEW and UPDATED listings by default (duplicates and unchanged listings are suppressed, never pushed, never billed). REAPPEARED is produced only for a listing that was previously marked EXPIRED and then shows up again, so it only appears in monitoring campaigns that also use emitExpired. Turn on emitUnchanged or emitExpired only when you also want those rows returned and billed. State is kept separately per search/filter setup automatically; set stateKey to name or deliberately share a monitoring campaign.
  • EXPIRED rows (listings from a previous run no longer found) are produced only once a run has fully scanned the tracked search, not when Max listings capped it and not on a Resume run, and only with emitExpired on.
  • A handful of fields (view_count, favorite_count, index_date, and the seller_* fields) are excluded from change detection because they describe engagement or the seller rather than the listing itself; they are still returned in full on every row.

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each listing, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text. The complete record always stays in the Apify dataset.

  1. Authorize a connector once under Apify > Settings > Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. If the picker is empty, you have not authorized a connector yet.
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip.

Input Parameters

ParameterTypeDefaultDescription
modestring"search""search" builds the URL from filters, "url" takes raw Leboncoin search URLs.
textstringnoneFree-text keyword query. Search mode only.
categorystring"all"Top-level category (cars, property, electronics, jobs, and more). Search mode only.
locationsarraynone (prefill: ["Paris"])City names, postcodes, or metropolitan department codes ("75" or "69_d"). Corsica and the overseas departments are not accepted as department codes, use a city name there. Search mode only.
minSquareintegernoneMinimum surface area in mΒ² (property categories). Search mode only.
maxSquareintegernoneMaximum surface area in mΒ² (property categories). Search mode only.
minMileageintegernoneMinimum mileage in km (vehicle categories). Search mode only.
maxMileageintegernoneMaximum mileage in km (vehicle categories). Search mode only.
urlsarraynone (prefill: one sample search URL)Leboncoin search URLs to scrape. URL mode only, multi-URL supported.
ownerTypestring"all"Filter by seller type: "all", "private", "pro". Applies in both modes.
minPriceintegernoneMinimum price in EUR. Applies in both modes.
maxPriceintegernoneMaximum price in EUR. Applies in both modes.
roomsarraynoneNumber of rooms (property categories). Applies in both modes.
fuelstring"all""all", "petrol", "diesel", "hybrid", "electric", "gpl", "other". Applies in both modes; a ?fuel= segment inside a pasted URL is ignored, set this input instead.
sortBystring"relevance""relevance", "date_desc", "date_asc", "price_asc", "price_desc". Applies in both modes; in URL mode it overrides the pasted URL's own sort.
maxPagesinteger200Max pages per search (about 100 listings per page). Actual page count is bounded by maxListings.
maxListingsinteger20Total listings cap across all searches. 0 = unlimited.
fetchDetailsbooleanfalseVisit each listing's detail page for the full description, image gallery and extra attributes. Adds about 1 second per listing.
fetchSellerReviewsbooleanfalseFetch the seller's star rating and written reviews per listing. Adds about 0.5 seconds per item.
fetchSellerOtherListingsbooleanfalseFetch the seller's other active ads per listing. Adds about 0.5 seconds per item.
resumeFromRunIdstringnoneContinue one specific previous run or dataset: listings already collected there are skipped.
incrementalModebooleanfalseReturn only new and changed listings on repeat runs of the same search.
stateKeystringnoneName a monitoring campaign, or leave empty to derive one automatically from the search settings.
emitUnchangedbooleanfalseAlso return (and bill) listings unchanged since the last run.
emitExpiredbooleanfalseAlso return (and bill) listings from a previous run no longer found, once a run has fully scanned the search.
proxyobjectnone (prefill: Apify Proxy, residential, country AT)Connection settings. A residential connection is required.
mcpConnectorsarraynoneOptional: send a summary of each listing to apps you authorized under Integrations.
notionParentPageUrlstringnoneNotion connector only: page under which listing pages are created.
maxNotifyListingsinteger50Cap on items written to each connector per run.

Output Example

Sample shape: values are illustrative placeholders, not from a live listing.

{
"id": "1234567890",
"list_id": 1234567890,
"subject": "Sample Listing Title",
"body": "Full seller description text appears here when fetchDetails=true.",
"url": "https://www.leboncoin.fr/ad/voitures/1234567890",
"category_id": "2",
"category_name": "Voitures",
"ad_type": "offer",
"status": "active",
"price": 0,
"publication_date": "2026-01-01 00:00:00",
"has_phone": true,
"is_boosted": false,
"city": "Paris",
"zipcode": "75001",
"department": "Paris",
"region": "Ile-de-France",
"latitude": 48.8566,
"longitude": 2.3522,
"owner_type": "private",
"owner_name": "Sample Seller",
"image_count": 5,
"image_urls": ["https://img.leboncoin.fr/api/v1/lbcpb1/images/00/00/00/000000.jpg?rule=ad-image"],
"attr_year": "2020",
"attr_mileage": "50000",
"attr_fuel": "Diesel",
"raw_attributes": [],
"seller_rating_avg": 4.8,
"seller_review_count": 42,
"seller_reviews": [
{
"rating": 5,
"text": "Vendeur serieux, transaction rapide.",
"author_name": "Sample Buyer",
"date": "2026-03-15T12:00:00Z"
}
]
}

Plan Requirement

Leboncoin.fr requires a residential connection. Without one, a run returns 0 listings. The prefilled proxy setting (Apify Proxy, residential, country AT) is recommended, and the actor automatically retries with a different connection when one is refused. Keep this setting when calling the actor via the API, since it has no schema default and is otherwise left unset. Upgrade your plan if you need more residential bandwidth.

FAQ

How much does it cost?

You pay per listing returned, with optional detail-page and seller enrichment adding a small amount of time per listing but no extra per-listing charge. The Pricing tab shows the current rates. Use Max total listings to cap the cost of any run.

This actor collects only publicly available classifieds data. You are responsible for how you use it: follow Leboncoin's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Seller-supplied text, photos and contact details may be subject to third-party rights, handle personal data carefully.

Can I get only new or changed listings on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new and updated listings, and unchanged ones are not billed. EXPIRED and REAPPEARED rows require also turning on emitExpired, and only appear once a run has fully scanned the tracked search.

Why did my run return 0 listings?

The most common cause is a non-residential or non-EU connection. Leboncoin's site rejects non-residential traffic outright, so keep the connection type set to residential. If the default country returns 0 items on your account, try a different EU country in the proxy settings.

Why did my run fail instead of returning an empty dataset?

If every connection attempt is refused during startup, the run stops with a clear message so "no listings match this search" is never confused with "the site could not be reached at all." Run it again in a few minutes. A search that genuinely has no matches still returns a normal empty result rather than failing.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.

πŸ”— Want more classifieds data?

Pair this actor with these related scrapers from the same team:

🏷️ Mudah.my Cars, Property, Jobs & Marketplace Scraper
Scrape Mudah.my listings across every category: cars, motorcycles, property, mobiles...
🏷️ Kijiji.ca Scraper
Scrape Kijiji.ca listings across property, vehicles, jobs, electronics, furniture...
🏷️ Subito.it Scraper
Scrape Subito.it listings across cars, real estate, marketplace, jobs, and more. Search...
πŸš— Willhaben.at Scraper
From $1/1K. Scrape Willhaben.at listings into clean JSON with 40+ structured fields...
🏷️ Tutti.ch Scraper
Scrape listings from tutti.ch across all 23 categories, including vehicles, property...
πŸš— Craigslist Scraper
Scrape Craigslist postings in any of 700+ cities worldwide: price, title, posting text...

πŸ‘‰ Browse all abotapi scrapers

πŸ’¬ Support

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • πŸ› οΈ Need another site, extra fields or a private build? Email contact@abotapi.com.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.