leboncoin logo

Marketplaces · Coming soon

Leboncoin Scraper: France Classifieds and Prices

Get public Leboncoin listings in France by keyword, category, place and price. Each row has the price, city, photos, condition and seller type. You can also get only new listings each day.

Built and tested. Prices will be shown after release.

Coming soon to the Apify StoreFollow us on Apify

What you get, for example

listingId3302515620
urlhttps://www.leboncoin.fr/ad/velos/3302515620
titleVélo électrique GIANT

How it will work: 3 steps

  1. Follow us on ApifyThe tool is built and waits in the queue for the Apify Store. Apify is the cloud platform where our tools run.
  2. Paste your input and press StartNo code needed: you fill in a form (the input). It already has a working example. For example: vélo électrique in Search keyword. Each start is one run.
  3. Download the resultsWhen the run ends, the results are in a table (the dataset). Open Output, press Export and pick Excel or CSV. JSON and the API are there too.

This tool is an Apify Actor: a small program that runs on Apify. You can also run it on a schedule, for example every Monday. New to it? Read how it works, step by step and the 8 words you need first.

What it does

Leboncoin Scraper collects public listings from Leboncoin in France by keyword, category, place and price, and returns one row per listing with price, city, photos, condition and seller type. No login or API key is needed.

Good for

  • A reseller who wants underpriced items in one category or region.
  • A market analyst who wants price levels for cars, bikes, phones or flats in France.
  • A buyer who wants a daily list of new listings for one search.
  • A shop that wants to see what professional sellers ask for similar items.

Who uses it

Resellers

Find underpriced items in one category or region.

Market analysts

See price levels for cars, bikes, phones or flats in France.

Shops

See what professional sellers ask for similar items.

Price

Prices will be shown after release.

Questions

Do I need a Leboncoin account or an API key?

No. The Actor reads public listings without a login.

Can I get the seller's phone number or name?

No. For professional sellers you get the business name when the listing shows it.

Why is a value empty?

The seller did not give it, or the category does not have it. For example, condition is empty in many categories.

Why does the price differ for listing links?

Each listing link goes through a slower route, and this costs more to run. Search rows have the same fields, so a search is the better choice for many listings.

How do I get only new listings every day?

Turn on onlyNew, add a stateName and create a schedule. The first run saves the newest listings, up to maxItems. Later runs save and charge only the ones that appeared since.

How fresh is the data?

Each row shows the site at the time of the run. The scrapedAt field gives this time. A listing can change or end after that.

Details

Step by step on Apify
  1. Open the Input tab. Keep vélo électrique in Search keyword or type your own (box 1 in the picture).
  2. Keep Max listings per search at 20 for a first test (box 2). This is the value the form suggests. If you leave the field out in the API, the limit is 100.
  3. Click Start.
  4. Open the Listings table in the Output tab. Check Title and Price (€) (box 4 in the picture).
Use cases
TaskInputYou getKey fieldsNext step
Track prices of one product in Francequery, category, maxItemsListingprice, oldPrice, postedAt, cityExport to a sheet on a schedule
Spot resale deals below your pricequery, maxPrice, sortBy, excludeTermsListingtitle, price, condition, urlSend a summary to Slack
Monitor new listings for one searchsearchUrls, onlyNew, stateNameNew listinglistingId, title, price, urlSchedule and webhook
Compare professional sellerscategory, sellerType, includeSellerStatsListing with seller detailssellerName, sellerSiren, price, sellerStatsExport to CSV
Study real estate or car prices in one areacategory, location, minRooms, minSurface or a search linkListingprice, attributes, zipcode, departmentExport to your analysis tool
Tips for better results
  • One search shows at most 3,500 listings. Search without a place to go deeper.
  • A keyword also matches the description. Use titleOnly or a category.
  • Turn on onlyNew, add a stateName and set a schedule to get only new listings.
Limits and good to know
  • One search shows at most 3,500 listings. This is a limit of the site. A search with no place and a maxItems above 3,500 is split by department to go deeper. A search with a place stops at 3,500 and says so
  • The maximum is 20,000 listings per search, 21 keyword searches and 20 search links per run, and 100 listing links per run
  • Time. On our runs, 500 listings took about 1 minute, 3,500 listings took about 3 to 5 minutes and 20,000 listings took 14 to 28 minutes. Listing links are slower: 100 links took about 7 to 14 minutes. A run can take longer when the site slows down requests. The default run timeout is 60 minutes, and a run works for at most 60 minutes even with a higher timeout. Start several deep searches as separate runs. A run that reaches the time limit keeps its rows and says so
  • Monitoring memory. onlyNew remembers the last 50,000 listings for each search and the newest date it reached. If more new listings appear than maxItems, the rest arrive with the next run. A listing the source indexes more than 2 hours late, or that sits behind a full page of listings you already got, counts as old. With narrow filters on a very busy search, a run can stop after 1,000 listings with no match and end as partial. New matches above that point are saved, but a match further down may not arrive
  • Filter stop. If none of the last 1,000 listings pass your filters, the search stops and says so. This protects you from a long scan with no results
  • Newest first follows the date of the last republish. Paid or republished listings can have an older postedAt
  • A keyword also matches the description. A search for vélo électrique can return flats and cars that mention one. Use titleOnly or category
  • No private data. The Actor does not collect phone numbers or private sellers' names. Phone numbers and emails are masked in listing text. It does not read messages or accounts

For developers

Sample result

One result from a real test run, in JSON. Real values change from run to run. In Excel or CSV each field is a column.

one result · JSON
{
  "listingId": "3302515620",
  "url": "https://www.leboncoin.fr/ad/velos/3302515620",
  "title": "Vélo électrique GIANT",
  "price": 80,
  "oldPrice": null,
  "currency": "EUR",
  "buyerFee": 1.99,
  "category": "Vélos",
  "categoryId": "55",
  "location": "Périgueux 24000",
  "city": "Périgueux",
  "zipcode": "24000",
  "department": "Dordogne",
  "region": "Aquitaine",
  "postedAt": "2026-11-05T00:54:35.000Z",
  "imageCount": 5,
  "attributes": {
    "bicycle_type": "Vélo électrique",
    "bicycle_brand": "Giant"
  },
  "condition": null,
  "adType": "offer",
  "status": "active",
  "sellerType": "private",
  "sellerName": null,
  "sellerStats": null,
  "searchQuery": "vélo électrique",
  "searchUrl": null
}
Data fields (40)
FieldTypeMeaning
listingIdstringLeboncoin listing id (the number at the end of the listing URL).
urlstringPublic listing page on www.leboncoin.fr.
titlestringListing title. Phone numbers and e-mail addresses are masked.
descriptionstringFull listing text. Phone numbers and e-mail addresses are masked.
pricenumberPrice in euros, with cents when the seller set them.
oldPricenumberEarlier price when the seller lowered it.
currencystringEUR when the listing has a price.
buyerFeenumberProtection fee Leboncoin adds for the buyer, in euros.
shippingFeesarrayDelivery options with their price in euros.
categorystringCategory name as Leboncoin shows it.
categoryIdstringLeboncoin category id, the same value as the Category input.
locationstringCity and postcode as one line.
citystringCity.
zipcodestringPostcode.
departmentstringDepartment name.
departmentIdstringDepartment number.
regionstringRegion name, in the pre-2016 regions Leboncoin uses.
regionIdstringLeboncoin region id.
latitudenumberApproximate latitude of the listing.
longitudenumberApproximate longitude of the listing.
postedAtstringFirst publication date in UTC (ISO 8601).
indexedAtstringLast time the listing was republished or updated, in UTC (ISO 8601).
expiresAtstringWhen the listing expires, in UTC (ISO 8601).
imagesarrayPhoto URLs in the largest size available.
imageCountintegerNumber of photos.
attributesobjectCategory details as labels, e.g. mileage, surface, energy class, bike type.
conditionstringItem condition as Leboncoin shows it.
adTypestringoffer, or demand for wanted listings.
statusstringListing status at the source.
urgentbooleanThe seller marked the listing as urgent.
boostedbooleanThe seller paid to show the listing higher.
shippablebooleanThe listing offers delivery.
hasPhonebooleanThe seller has a phone number on the listing. The number itself is never collected.
sellerTypestringpro or private.
sellerNamestringBusiness name of a professional seller. Always empty for private sellers.
sellerSirenstringFrench company number (SIREN) of a professional seller. Always empty for private sellers.
sellerStoreIdstringLeboncoin store id of a professional seller. Always empty for private sellers.
sellerStatsobjectWith "Add seller statistics": registration date, number of ads, reply rate, reply time, badges and rating.
searchQuerystringKeyword of the search that found this listing.
searchUrlstringSearch link that found this listing.
Input settings (25)

The main fields of the input form. With the API you send them as JSON.

SettingName in the APITypeExample value
Search keywordquerystring"vélo électrique"
Categorycategorystring""
Placelocationstring
Minimum price (€)minPriceinteger
Maximum price (€)maxPriceinteger
Max listings per searchmaxItemsinteger20
Search linkssearchUrlsarray
Listing links or idsadUrlsarray
More search keywordsmoreQueriesarray
Radius around the place (km)radiusKminteger
Seller typesellerTypestring"all"
Sort bysortBystring"newest"
Maximum listing age (days)maxAgeDaysinteger
Minimum roomsminRoomsinteger
Maximum roomsmaxRoomsinteger
Minimum surface (m²)minSurfaceinteger
Maximum surface (m²)maxSurfaceinteger
Listing typeadTypestring"offer"
Search in titles onlytitleOnlybooleanfalse
Urgent listings onlyurgentOnlybooleanfalse
Free items onlyfreeOnlybooleanfalse
Shippable items onlyshippableOnlybooleanfalse
Exclude words in titlesexcludeTermsarray
Add seller statisticsincludeSellerStatsbooleanfalse
Only new listings since last runonlyNewbooleanfalse

Start on Apify

Make a free Apify account: you get $5 of free usage every month. Missing a tool? Suggest it. We read every idea, but we do not promise to build it.

Apify links on this page are affiliate links. We may earn a commission. You pay the same price. Affiliate disclosure