leboncoin API & Scraper
The leboncoin API returns France's largest classifieds site as clean JSON in five actions: search for the marketplace in any category, real_estate/search for property for sale, rent, flat-shares and commercial property, cars/search for cars, motorcycles, vans and campervans, listing for the full record of any ad, and categories for leboncoin's category ids, regions and departments.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
Every row carries the price, whether the item is a free give-away, a flag when the price is a placeholder such as 1 € or 99,999,999 €, the earlier price when the seller dropped it, town, postcode, department and region, pro or private seller, condition, whether the seller ships, urgent and paid-promotion flags, publication and re-publication dates in Paris time, images and the description. Real-estate rows add surface, rooms, bedrooms, floor, energy class, heating, charges and deposit, agency fees and who pays them, and new-build programmes with their units; vehicle rows add make, model, version, model year, first registration, mileage, fuel, gearbox, body type, horsepower, engine size, Crit'Air, equipment and leboncoin's own market price estimate. Every filter was checked live to narrow the result and every returned row to match it: condition, shipping, free only, urgent, price, category, town and postcode, department, region, radius around a point, pro or private, a seller's other ads, property type, surface, rooms, energy class, furnished, make, model, year, mileage, fuel, gearbox and body type. Paid 'À la une' placements are kept apart from the organic results. On 10 ads in 6 categories, the title, the visible price, the postcode, the seller type and the photo count matched each ad's own page. No leboncoin account, no browser - one ReefAPI key and the standard { ok, data, meta, error } envelope.
Five leboncoin prices that are not simply a price
A leboncoin ad can be a free give-away with no price, show a placeholder number, carry an earlier price, list only the cheapest lot of a new-build programme, or sit in a price-sorted page where it does not belong. Each looks like an ordinary number or an ordinary null. This engine labels every one.
| Ad (category) | price | flag | the catch |
|---|---|---|---|
| Three-seat sofa, Ameublement ('Don') | 0 | is_free: true | leboncoin publishes no price at all for a give-away; 0 is returned only here - any other missing price is null with price_not_published |
| Bike listings sorted by highest price, Vélos | 99999999 | price_looks_placeholder: true | The top of the price-descending sort is placeholder numbers; 1 € is used the same way for swaps and 'contact me' ads |
| Refurbished smartphone from a pro seller, Téléphones | 230 | price_before_reduction: 270 | The seller dropped the price; discount_pct 14.8. A give-away's old price is never treated as a discount |
| New-build programme near Bordeaux, Ventes immobilières | 257519 | price_is_from: true | One lot's price; the programme's other lots come as property.units[] with surface and price |
| 'velo' between 100 and 500 € sorted by price, marketplace | - | dropped_outside_price_range: 19 | leboncoin mixes holiday rentals at 1 €, 890 € and 985 € into that sort; rows outside the range you asked for are removed and counted |
Measured on 2026-09-15. 3,830 bike ads were priced at 1 € that day; in one price-sorted page of 35, 19 rows fell outside the requested range. Classified ads come and go - the rows above are dated.
Real request and response JSON
Captured from the indexed primary action, search, on .
{
"method": "POST",
"url": "https://api.reefapi.com/leboncoin/v1/search",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"query": "velo"
}
}{
"ok": true,
"meta": {
"api": "leboncoin",
"endpoint": "search",
"mode": "live",
"latency_ms": 1125,
"record_count": 35,
"bytes": 201506,
"cache_hit": false,
"stop_reason": "limit_reached"
},
"data": {
"listings": [
{
"ad_id": "3266471918",
"title": "Velo",
"url": "https://www.leboncoin.fr/ad/sport_plein_air/3266471918",
"category_id": "29",
"category": "Sport & Plein air",
"ad_type": "offer",
"status": "active",
"price": 40,
"currency": "EUR",
"is_free": false,
"price_not_published": false,
"price_looks_placeholder": false,
"price_before_reduction": null,
"discount_pct": null,
"published_at": "2026-09-09T16:27:08+02:00",
"republished_at": "2026-09-15T16:27:08+02:00",
"expires_at": null,
"location": {
"city": "Mécleuves",
"zipcode": "57245",
"district": null,
"department_id": "57",
"department": "Moselle",
"region_id": "15",
"region": "Lorraine",
"country": "FR",
"latitude": 49.04235,
"longitude": 6.26787,
"coordinates_precision": "city",
"coordinates_withheld": false
},
"seller": {
"type": "private",
"seller_id": "4cc1a8e5-c681-483e-93ca-bb88d5d1421b",
"store_id": "22630292",
"name": "ISABELLE",
"name_withheld": false,
"siren": null,
"shop_name": null,
"shop_logo": null,
"online_store_id": null,
"profile_picture": "https://img.leboncoin.fr/api/v1/tenants/9a6387a1-6259-4f2c-a887-7e67f23dd4cb/domains/20bda58f-d650-462e-a72a-a5a7ecf2bf88/buckets/21d2b0bc-e54c-4b64-a30b-89127b18b785/images/profile/pictures/default/87d78b4a-ad01-502b-9dab-da001c62717b?rule=pp-small",
"refuses_canvassing": true,
"has_phone": false,
"rating_score": null,
"rating_scale": null,
"rating_count": null
},
"brand": null,
"condition": "bonetat",
"condition_label": "Bon état",
"shippable": false,
"shipping_type": "face_to_face",
"parcel_size": "M",
"is_urgent": false,
"is_boosted": true,
"paid_options": [
"sub_toplist"
],
"thumbnail": "https://img.leboncoin.fr/api/v1/lbcpb1/images/3c/d2/43/3cd2434378b3ace8434c8d2ed18d86b64b7a4531.jpg?rule=ad-small",
"image_count": 7,
"images": [
"https://img.leboncoin.fr/api/v1/lbcpb1/images/3c/d2/43/3cd2434378b3ace8434c8d2ed18d86b64b7a4531.jpg?rule=ad-large",
"https://img.leboncoin.fr/api/v1/lbcpb1/images/05/4c/ea/054cea718762cb7ca61f0aad46917b109bb32d8c.jpg?rule=ad-large",
"https://img.leboncoin.fr/api/v1/lbcpb1/images/31/44/6e/31446e260ee1b9b1b88efdf2ed91af34f40d37e0.jpg?rule=ad-large"
],
"description": "Je vends ce vélo enfant de couleur rouge et bleu, parfait pour les balades et l'apprentissage du cyclisme.\n- Type de produit : Vélo enfant\n- Couleur : Rouge et bleu\n- Cadre : Acier\n- Roues : Pneus noirs\n- Selle : Selle noire réglable\n- Guidon : Guidon noir avec poignées\n- Accessoires inclus : Porte-téléphone, Réflecteurs orange\n- Fonctionnalités : Dérailleur, Freins\n- Activité/Sport : Loisir, Déplacements urbains\nBon état\nN'hésitez pas à me contacter pour plus d'informations ou de photos supplémentaires !"
},
{
"ad_id": "3268644710",
"title": "Velo",
"url": "https://www.leboncoin.fr/ad/sport_plein_air/3268644710",
"category_id": "29",
"category": "Sport & Plein air",
"ad_type": "offer",
"status": "active",
"price": 70,
"currency": "EUR",
"is_free": false,
"price_not_published": false,
"price_looks_placeholder": false,
"price_before_reduction": null,
"discount_pct": null,
"published_at": "2026-09-13T10:52:59+02:00",
"republished_at": "2026-09-16T10:52:59+02:00",
"expires_at": null,
"location": {
"city": "Bordeaux",
"zipcode": "33100",
"district": "La Bastide",
"department_id": "33",
"department": "Gironde",
"region_id": "2",
"region": "Aquitaine",
"country": "FR",
"latitude": 44.84272,
"longitude": -0.54612,
"coordinates_precision": "address",
"coordinates_withheld": false
},
"seller": {
"type": "private",
"seller_id": "ec176fc9-f1d2-4964-863d-dbd6c6fec742",
"store_id": "41434180",
"name": "collo21",
"name_withheld": false,
"siren": null,
"shop_name": null,
"shop_logo": null,
"online_store_id": null,
"profile_picture": "https://img.leboncoin.fr/api/v1/tenants/9a6387a1-6259-4f2c-a887-7e67f23dd4cb/domains/20bda58f-d650-462e-a72a-a5a7ecf2bf88/buckets/21d2b0bc-e54c-4b64-a30b-89127b18b785/images/profile/pictures/default/5fda3f2f-b0c0-5aac-89dd-1944a2c7318d?rule=pp-small",
"refuses_canvassing": true,
"has_phone": false,
"rating_score": 1,
"rating_scale": 1,
"rating_count": 8
},
"brand": "Autre",
"condition": "bonetat",
"condition_label": "Bon état",
"shippable": true,
"shipping_type": "mondial_relay",
"parcel_size": "M",
"is_urgent": false,
"is_boosted": true,
"paid_options": [
"sub_toplist"
],
"thumbnail": "https://img.leboncoin.fr/api/v1/lbcpb1/images/34/dd/08/34dd08f1afd101afbd880f11da4d6879830ea060.jpg?rule=ad-small",
"image_count": 4,
"images": [
"https://img.leboncoin.fr/api/v1/lbcpb1/images/34/dd/08/34dd08f1afd101afbd880f11da4d6879830ea060.jpg?rule=ad-large",
"https://img.leboncoin.fr/api/v1/lbcpb1/images/3f/2b/e5/3f2be53c29c2b4fbd759805bba38deed1641c1dc.jpg?rule=ad-large",
"https://img.leboncoin.fr/api/v1/lbcpb1/images/c5/ea/6c/c5ea6cb848307b45bb4d4210ce5cea49c82b363c.jpg?rule=ad-large"
],
"description": "Je vends ce vélo de ville turquoise, pratique pour les déplacements urbains et les balades.\n- Type de produit : Vélo de ville\n- Couleur : Turquoise\n- Matière : Acier\n- Accessoires inclus : Panier avant, Porte-bagages arrière, Béquille\nBon état\nN'hésitez pas à me contacter pour plus d'informations ou de photos !"
},
{
"ad_id": "3266206251",
"title": "Velo",
"url": "https://www.leboncoin.fr/ad/sport_plein_air/3266206251",
"category_id": "29",
"category": "Sport & Plein air",
"ad_type": "offer",
"status": "active",
"price": 130,
"currency": "EUR",
"is_free": false,
"price_not_published": false,
"price_looks_placeholder": false,
"price_before_reduction": null,
"discount_pct": null,
"published_at": "2026-09-09T09:32:45+02:00",
"republished_at": "2026-09-16T09:32:46+02:00",
"expires_at": null,
"location": {
"city": "Mulhouse",
"zipcode": "68100",
"district": null,
"department_id": "68",
"department": "Haut-Rhin",
"region_id": "1",
"region": "Alsace",
"country": "FR",
"latitude": 47.7517,
"longitude": 7.34367,
"coordinates_precision": "city",
"coordinates_withheld": false
},
"seller": {
"type": "private",
"seller_id": "b133f4c2-b618-4a1e-ae28-6e2787b2f578",
"store_id": "65901420",
"name": "Wahib birdouz",
"name_withheld": false,
"siren": null,
"shop_name": null,
"shop_logo": null,
"online_store_id": null,
"profile_picture": "https://img.leboncoin.fr/api/v1/tenants/9a6387a1-6259-4f2c-a887-7e67f23dd4cb/domains/20bda58f-d650-462e-a72a-a5a7ecf2bf88/buckets/21d2b0bc-e54c-4b64-a30b-89127b18b785/images/profile/pictures/default/b2e81031-b0ec-5c0b-bde7-a4c6e4f6e63b?rule=pp-small",
"refuses_canvassing": true,
"has_phone": false,
"rating_score": 1,
"rating_scale": 1,
"rating_count": 1
},
"brand": null,
"condition": null,
"condition_label": null,
"shippable": false,
"shipping_type": "face_to_face",
"parcel_size": "M",
"is_urgent": false,
"is_boosted": true,
"paid_options": [],
"thumbnail": "https://img.leboncoin.fr/api/v1/lbcpb1/images/f8/8a/01/f88a017008c96dfe2616ad7512b18bf70b84e04e.jpg?rule=ad-small",
"image_count": 1,
"images": [
"https://img.leboncoin.fr/api/v1/lbcpb1/images/f8/8a/01/f88a017008c96dfe2616ad7512b18bf70b84e04e.jpg?rule=ad-large"
],
"description": "Je vends ce vélo elliptique de fitness, parfait pour l'entraînement cardio à domicile.\n- Type de produit : Vélo elliptique\n- Activité/Sport : Fitness, cardio-training\n- Marque : Domyos\n- Couleur : Noir et jaune\n- Fonctionnalités : Pédales réglables, Guidon mobile, Structure stable\n- Accessoires inclus : Capteurs de fréquence cardiaque\nN'hésitez pas à me contacter pour plus d'informations ou de photos supplémentaires !"
}
],
"count": 35,
"total": 1387968,
"total_pro": 56858,
"total_private": 1331110,
"dropped_outside_price_range": 0,
"sponsored_available": 0,
"page": 1,
"limit": 35,
"sort_applied": "relevance",
"has_more": true,
"next_page_token": "[redacted-secret]"
}
}What the leboncoin API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| search | Search leboncoin, France's largest classifieds site, by keyword and/or category: price (free 'Don' items and placeholder prices labelled, price drops with the earlier price), town, postcode, department and region, pro or private seller, condition, shipping available, urgent and paid options, publication and re-publication dates, images and description. Filter by price, category, location or radius, condition, shipping, free only, urgent only, seller type or seller; sort by relevance, newest, oldest or price. | Price-intelligence teams call search to search leboncoin, France's largest classifieds site, by keyword and/or category. | query, titles_only, category, condition, shippable, ... |
| real_estate/search | Search leboncoin real estate — sales, rentals, flat-shares and commercial property: price or rent, price per m², surface, land surface, rooms, bedrooms, floor, energy and climate class, heating, building year, furnished, charges and deposit, agency fees and who pays them, new-build programmes with their units, town, postcode, district and department, agency or private owner, images. Filter by transaction, property type, price, surface, rooms, bedrooms, energy class, sale type, furnished and location or radius; sort by relevance, newest or price. | Classifieds aggregators call real_estate/search to search leboncoin real estate. | transaction, query, property_type, sell_type, price_min, ... |
| cars/search | Search leboncoin vehicles — cars, motorcycles, vans and campervans: price and price drops, make, model, version, trim, model year, first registration, mileage, fuel, gearbox, body type, doors, seats, fiscal and DIN horsepower, engine size, colour, condition, Crit'Air, inspection, battery health, equipment, leboncoin's market price estimate, dealer or private seller, town and department. Filter by vehicle type, make, model, year, mileage, fuel, gearbox, body type, engine size, price, seller type and location; sort by relevance, newest or price. | Resale and arbitrage tools call cars/search to search leboncoin vehicles. | vehicle_type, query, make, model, year_min, ... |
| listing | The full leboncoin ad by id or URL, in any category: title, price (free, placeholder and price-drop labelled), description, all images, status, condition, shipping, every published attribute with its French label, publication, re-publication and expiry dates, location, vehicle or property details, paid options, and the seller — a pro's company, SIREN and shop; a private seller's name withheld. | Lead-generation teams call listing to get the full leboncoin ad by id or URL, in any category. | ad_id, include_pii, max_rotations |
| categories | leboncoin's category tree (ids, names, parents, and which shortcut categories map to another) and its regions with their departments — the ids the search actions accept. | Price-intelligence teams call categories to get leboncoin's category tree (ids, names, parents, and which shortcut categories map to another)…. | max_rotations |
Call search from your stack
curl -X POST https://api.reefapi.com/leboncoin/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"query":"velo"}'import requests
r = requests.post(
"https://api.reefapi.com/leboncoin/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"query": "velo"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/leboncoin/v1/search", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"query": "velo"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.leboncoin.search with {"query":"velo"}.Who uses this API and why
- Property analysts track asking prices, price per m², rents, charges and energy classes by department and town with real_estate/search, including new-build programmes and their lots.
- Car dealers and valuation tools watch used-car prices, price drops and leboncoin's own market estimate by make, model, year and mileage with cars/search.
- Resale and pricing tools compare second-hand prices by condition and shipping, keeping give-aways and placeholder prices out of the averages.
- Lead-generation and market-mapping teams list every ad of a pro seller with seller_id, with the SIREN number, without collecting private sellers' personal data.
Questions developers ask before integrating
Which parts of leboncoin does the API cover?
The whole site in three search actions. search covers every marketplace category (bikes, furniture, phones, clothes, games and so on) with leboncoin's own category ids. real_estate/search covers property for sale, for rent, flat-shares and offices and shops - 10,319 properties for sale in Paris on 2026-09-15. cars/search covers cars, motorcycles, vans and campervans - 64,355 Volkswagen cars that day. listing returns the full ad from any category, and categories lists leboncoin's 114 categories and its regions and departments. leboncoin is French only; prices are in EUR.
Is a private seller's name or phone number included?
No. A private seller's display name and profile picture are left out, and when leboncoin placed the ad at a street address the exact coordinates are left out too - the town, postcode and department stay. Phone numbers and e-mail addresses typed into a description are masked, including French formats such as 06 12 34 56 78. leboncoin does not show phone numbers to visitors, so the API only says whether the seller has one. For pro sellers the company name, SIREN number and shop name are returned.
How do I tell a free item, a placeholder price and a missing price apart?
By the flags on every row. A give-away ('Don') has price 0 and is_free true. An ad that publishes no price has price null and price_not_published true. A number that is used as a placeholder - 1 €, 99,999,999 € and similar - keeps its value and has price_looks_placeholder true, so you can exclude it from averages. A price the seller lowered carries price_before_reduction and discount_pct.
Are sponsored and promoted ads marked?
Paid 'À la une' placements are not mixed into the results; ask for include_sponsored and they come back apart under sponsored[]. Organic ads that bought options carry them in paid_options (for example urgent or top list), plus is_urgent and is_boosted. Nothing organic is removed.
Do the filters really narrow the results?
Each one was checked live on 2026-09-15: the filtered total had to be smaller than the unfiltered one, and every returned row had to match. For 'velo' (1,387,977 ads): new condition 192,876, shipped by the seller 568,399, pro sellers 56,888, Bouches-du-Rhône 33,761, a 5 km radius around Lyon 17,278. For Volkswagen cars (64,355): Golf 19,561, diesel 27,554, automatic 33,289, 2018 to 2020 9,996. For Paris sales (10,319): apartments 8,647, 50 to 80 m² 2,302, energy class A or B 140.
Why is there a page_token, and do I need it?
leboncoin re-ranks its relevance order on every request, so asking for page 2 on its own repeated 6 of the 35 ads of page 1 in our test. Every search returns next_page_token; pass it as page_token with page 2 and the pages do not overlap - checked live. Sorting by newest or oldest does not need the token. leboncoin shows the first 3,500 results of any search; narrow the search to go further.
Can I look up an ad by its URL, and how do I get all of a seller's ads?
listing accepts the ad id or the full leboncoin ad URL. Every row carries seller.seller_id and seller.store_id; pass either back as seller_id on any search action to list that seller's ads - checked live. An ad that has been removed returns NOT_FOUND.
What does leboncoin not publish?
Phone numbers, which leboncoin keeps behind its messaging. Private sellers' real names. Ratings for many sellers - where a rating exists it is a score from 0 to 1 with the number of reviews. A sold status: removed ads simply disappear and return NOT_FOUND. Shipping prices before checkout, view counts, stock and barcodes.
What is the leboncoin API?
leboncoin API is a ReefAPI endpoint group for france's largest classifieds: marketplace, real estate and vehicles as json. It returns live JSON through POST requests under /leboncoin/v1.
Is the leboncoin API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. leboncoin calls use the same shared credit balance as every other ReefAPI engine.
Do I need a leboncoin login or account?
No login to leboncoin is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the leboncoin data?
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the leboncoin API use?
leboncoin actions currently cost 1-2 credits per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call leboncoin from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call leboncoin actions with the same key, credit pool and JSON envelope used by normal REST requests.