leboncoin API

France's largest classifieds as JSON: marketplace, real estate and vehicles

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.

no credit card1,000 free credits · instant API key · pay by card or crypto
Missing a leboncoin endpoint, or need a source we don't have yet?Contact us real people · same-day reply.
L
/leboncoin/v1

5 active endpoints, on 1 and 2 credit tiers.

  • POST/leboncoin/v1/search
  • POST/leboncoin/v1/real_estate/search
  • POST/leboncoin/v1/cars/search
  • POST/leboncoin/v1/listing
  • POST/leboncoin/v1/categories

What leboncoin endpoints does ReefAPI ship?

5 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.

5 endpoints

search

2 cr

Search leboncoin, France's largest classifieds site, by keyword and/or category.

required
optional
query, titles_only, category, condition, shippable, free_only, urgent_only, ad_type, price_min, price_max, city, zipcode, department, region, latitude, longitude, radius_km, seller_type, seller_id, sort, page, page_token, limit, include_sponsored, include_pii, max_rotations

real_estate/search

2 cr

Search leboncoin real estate.

required
transaction
optional
query, property_type, sell_type, price_min, price_max, surface_min, surface_max, land_surface_min, land_surface_max, rooms_min, rooms_max, bedrooms_min, bedrooms_max, energy_class, furnished, city, zipcode, department, region, latitude, longitude, radius_km, seller_type, seller_id, sort, page, page_token, limit, include_sponsored, include_pii, max_rotations

cars/search

2 cr

Search leboncoin vehicles.

required
optional
vehicle_type, query, make, model, year_min, year_max, mileage_min, mileage_max, fuel, gearbox, body_type, cubic_capacity_min, cubic_capacity_max, price_min, price_max, city, zipcode, department, region, latitude, longitude, radius_km, seller_type, seller_id, sort, page, page_token, limit, include_sponsored, include_pii, max_rotations

listing

1 cr

The full leboncoin ad by id or URL, in any category.

required
ad_id
optional
include_pii, max_rotations

categories

2 cr

leboncoin's category tree (ids, names, parents, and which shortcut categories map to another)…

required
optional
max_rotations

Every parameter, every allowed value →

leboncoin API

4 of 5 endpoints, ready to run

View docs ↗

leboncoin ads for a keyword or category: price or free, placeholder and price-drop flags, town, postcode and department, pro or private, condition, shipping, urgent flag, dates, images and description.

2 credits0 required · 4 optional
POST/leboncoin/v1/search
ok1841 ms · 35 records · sample
{
  "ok": true,
  "meta": {
    "api": "leboncoin",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": 1840.7,
    "record_count": 35,
    "cache_hit": false
  },
  "data": {
    "listings": [
      {
        "ad_id": "3252978126",
        "title": "Vélo woodsun",
        "url": "https://www.leboncoin.fr/ad/velos/3252978126",
        "category_id": "55",
        "category": "Vélos",
        "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-08-19T17:30:16+02:00",
        "republished_at": "2026-09-16T08:01:47+02:00",
        "expires_at": null,
        "location": {
          "city": "Chaponnay",
          "zipcode": "69970",
          "district": null,
          "department_id": "69",
          "department": "Rhône",
          "region_id": "22",
          "region": "Rhône-Alpes",
          "country": "FR",
          "latitude": 45.6331,
          "longitude": 4.93682,
          "coordinates_precision": "address",
          "coordinates_withheld": false
        },
        "brand": null,
        "condition": "tresbonetat",
        "condition_label": "Très bon état",
        "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/dd/f3/60/ddf360895bef958cda361e51711e9a9bfb1548be.jpg?rule=ad-small",
        "image_count": 1,
        "images": [
          "https://img.leboncoin.fr/api/v1/lbcpb1/images/dd/f3/60/ddf360895bef958cda361e51711e9a9bfb1548be.jpg?rule=ad-large"
        ],
        "description": "Je vends ce vélo enfant Woodsun, idéal pour les premières aventures à deux roues.\n- Type de vélo : Vélo enfant\n- Univers : Femme\n- Marque : Woodsun\n- Taille du cadre : M\n- Taille des roues : 20 pouces\n- Couleur : Blanc\nTrès bon état\nPrêt à accompagner votre enfant sur ses balades :)"
      },
      {
        "ad_id": "3262750083",
        "title": "Vélo Rockrider 26 pouces",
        "url": "https://www.leboncoin.fr/ad/velos/3262750083",
        "category_id": "55",
        "category": "Vélos",
        "ad_type": "offer",
        "status": "active",
        "price": 110,
        "currency": "EUR",
        "is_free": false,
        "price_not_published": false,
        "price_looks_placeholder": false,
        "price_before_reduction": null,
        "discount_pct": null,
        "published_at": "2026-09-04T15:39:13+02:00",
        "republished_at": "2026-09-15T23:20:56+02:00",
        "expires_at": null,
        "location": {
          "city": "Neuville-sur-Saône",
          "zipcode": "69250",
          "district": null,
          "department_id": "69",
          "department": "Rhône",
          "region_id": "22",
          "region": "Rhône-Alpes",
          "country": "FR",
          "latitude": 45.87687,
          "longitude": 4.83904,
          "coordinates_precision": "city",
          "coordinates_withheld": false
        },
        "brand": "Rockrider",
        "condition": "tresbonetat",
        "condition_label": "Très bon état",
        "shippable": false,
        "shipping_type": "face_to_face",
        "parcel_size": "L",
        "is_urgent": false,
        "is_boosted": true,
        "paid_options": [
          "sub_toplist"
        ],
        "thumbnail": "https://img.leboncoin.fr/api/v1/lbcpb1/images/48/63/80/486380ccd6666aa8724fbdc52894a376fd93b3c3.jpg?rule=ad-small",
        "image_count": 10,
        "images": [
          "https://img.leboncoin.fr/api/v1/lbcpb1/images/48/63/80/486380ccd6666aa8724fbdc52894a376fd93b3c3.jpg?rule=ad-large",
          "https://img.leboncoin.fr/api/v1/lbcpb1/images/16/4b/0e/164b0e5b5a9f299111ddf650d6a35fa18ef15678.jpg?rule=ad-large",
          "https://img.leboncoin.fr/api/v1/lbcpb1/images/9a/85/a3/9a85a3dfe46fbba9fe8de641d462a1692abda5e6.jpg?rule=ad-large"
        ],
        "description": "Je vends ce vélo mixte 26 pouces\nTaille cadre S ( taille 150 – 165cm )\nFourche avant avec amortisseurs.\nEcrou blocage/déblocage rapide de roue AV.\nEquipement: Béquille, sonnette, Selle Royal (haut de gamme)\nTrès bon état, révisé, rien à prévoir.\nPrix : 110€\nSi l’annonce est présente c’est qu’il est disponible"
      },
      {
        "ad_id": "3266548781",
        "title": "Vélo d'appartement",
        "url": "https://www.leboncoin.fr/ad/sport_plein_air/3266548781",
        "category_id": "29",
        "category": "Sport & Plein air",
        "ad_type": "offer",
        "status": "active",
        "price": 50,
        "currency": "EUR",
        "is_free": false,
        "price_not_published": false,
        "price_looks_placeholder": false,
        "price_before_reduction": 85,
        "discount_pct": 41.2,
        "published_at": "2026-09-09T18:08:25+02:00",
        "republished_at": "2026-09-15T18:08:25+02:00",
        "expires_at": null,
        "location": {
          "city": "Saint-Genis-les-Ollières",
          "zipcode": "69290",
          "district": null,
          "department_id": "69",
          "department": "Rhône",
          "region_id": "22",
          "region": "Rhône-Alpes",
          "country": "FR",
          "latitude": 45.75626,
          "longitude": 4.71704,
          "coordinates_precision": "address",
          "coordinates_withheld": false
        },
        "brand": "Autre",
        "condition": "tresbonetat",
        "condition_label": "Très 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/d8/8f/fe/d88ffef4d6c1b3712653ab953397e0a26f74b35e.jpg?rule=ad-small",
        "image_count": 4,
        "images": [
          "https://img.leboncoin.fr/api/v1/lbcpb1/images/d8/8f/fe/d88ffef4d6c1b3712653ab953397e0a26f74b35e.jpg?rule=ad-large",
          "https://img.leboncoin.fr/api/v1/lbcpb1/images/c3/b4/6f/c3b46f1bc4bfa745184070e01080489223eb4fd2.jpg?rule=ad-large",
          "https://img.leboncoin.fr/api/v1/lbcpb1/images/86/5b/0d/865b0d8eb47818b60f8e1da4bc7faa349218593c.jpg?rule=ad-large"
        ],
        "description": "Je vends ce vélo d'appartement blanc et vert, idéal pour l'entraînement cardio à domicile.\n- Type de produit : Vélo d'appartement\n- Activité/Sport : Fitness, cardio-training\n- Couleur : Blanc et vert\n- Confort : Selle réglable et dossier ergonomique\n- Fonctionnalités : Pédales avec cale-pieds, Console de contrôle\n- Structure : Cadre robuste et stable\nTrès bon état\nN'hésitez pas à me contacter pour plus d'informations ou de photos supplémentaires !"
      }
    ],
    "count": 35,
    "total": 13277,
    "total_pro": 46,
    "total_private": 13231,
    "dropped_outside_price_range": 0,
    "sponsored_available": 0,
    "page": 1,
    "limit": 35,
    "sort_applied": "relevance",
    "has_more": true,
    "next_page_token": "{\"ids_to_display\":[\"3252978126\",\"3262750083\",\"3266548781\",\"3263918174\",\"3233617386\",\"3256041730\",\"3257280529\",\"3266317332\",\"3254839256\",\"3181088643\",\"3264028314\",\"3189518805\",\"3268658300\",\"3256483682\",\"2800845002\",\"2951235889\",\"3203993912\",\"3259871697\",\"3184975201\",\"3261372322\",\"3269614396\",\"3259348194\",\"3258747849\",\"3270804731\",\"3265929506\",\"3268412642\",\"3267579386\",\"3262720708\",\"3270274143\",\"3262718818\",\"3268598568\",\"3241491188\",\"3269594109\",\"3267852746\",\"3270173945\",\"3267585324\",\"3259750596\",\"3256745595\",\"3265450770\",\"3269076101\",\"3155714815\",\"3264894867\",\"3269547290\",\"3258930576\",\"3268310514\",\"3259160326\",\"3263286644\",\"3270308182\",\"3268457015\",\"3270731191\",\"3257083321\",\"3261956572\",\"3266771462\",\"3267595094\",\"3269828959\",\"3268144061\",\"3270448500\",\"3260501588\",\"3267336918\",\"3270573581\",\"3260064918\",\"3263802173\",\"3265212781\",\"3267859573\",\"3269022005\",\"3268257788\",\"3263084416\",\"3264165457\",\"3269817187\",\"3269672607\",\"3257824937\",\"3262622509\",\"3269033918\",\"3267138723\",\"3270381208\",\"3270331017\",\"3269243459\",\"3268169135\",\"3263591108\",\"3269374420\",\"3270122539\",\"3270646149\",\"3268309245\",\"3262096461\",\"3258708580\",\"3267141237\",\"3259384069\",\"3264655290\",\"3267925120\",\"3268707409\",\"3270230530\",\"3268690617\",\"3270231962\",\"3268374902\",\"3266616280\",\"3267403951\",\"3254657293\",\"3269988577\",\"3269153640\",\"3263034179\",\"3262674898\",\"3261188872\",\"3262704335\",\"3269283710\",\"3261680995\",\"3268853445\",\"3270764245\",\"3261000515\",\"3265138389\",\"3259538532\",\"3246841110\",\"3266225020\",\"3238423949\",\"3259117759\",\"3262524000\",\"3265897302\",\"3247204176\",\"3245524740\",\"3267649316\",\"3261927982\",\"3261402227\",\"3269202606\",\"3269796995\",\"3264387363\",\"3264867673\",\"3268416529\",\"3267722538\",\"3270235318\",\"3099990900\",\"3267224395\",\"3268062453\",\"3238979917\",\"3257736657\",\"3259997248\",\"3264171963\",\"3269861754\",\"3264439406\",\"3269603736\",\"3268657738\",\"3267382234\",\"3257946306\",\"3268872238\",\"3266968250\",\"3260792010\",\"3267166062\",\"3267451436\",\"3262888974\",\"3269030831\",\"3270759992\",\"3270698651\",\"3270288828\",\"3262978119\",\"3269240614\",\"3261334797\",\"3263283829\",\"3264654320\",\"3259638327\",\"3268740161\",\"3266537808\",\"3269851982\",\"3266378146\",\"3269047230\",\"3264921846\",\"3260276556\",\"3237542797\",\"3258152812\",\"3262655244\",\"3269562352\",\"3267623954\",\"3266335043\",\"3267269424\",\"3266368779\",\"3248003633\",\"3268931397\",\"3266821285\",\"3270719522\",\"3269432973\",\"3257408147\",\"3262349950\",\"3262185348\",\"3259670067\",\"3267076609\",\"3268494251\",\"3260803604\",\"3264123262\",\"3264288009\",\"3239146038\",\"3256777264\",\"3270159847\",\"3256927744\",\"3255181190\",\"3267121523\",\"3258486425\",\"3264894501\",\"3270256801\",\"3268813276\",\"3270249981\",\"3266675701\",\"3270495325\",\"3265302747\",\"3266949840\",\"3258522806\",\"3266046808\",\"3259482574\",\"3268887164\",\"3263306246\",\"3255917015\",\"3260464442\",\"3263584980\",\"3266359475\",\"3265273672\",\"3269010501\",\"3258001669\",\"3260016679\",\"3264599420\",\"3266337261\",\"3264891956\",\"3259473577\",\"3262349393\",\"3270388119\",\"3264311972\",\"3263581856\",\"3254681587\",\"3260413737\",\"3267558968\",\"3257440097\",\"3268032801\",\"3267067941\",\"3268021974\",\"3268927346\",\"3269081738\",\"3255642320\",\"3256724722\",\"3264348054\",\"3270287180\",\"3266253133\",\"3253045843\",\"3265761140\",\"3257992274\",\"3267427606\",\"3264347119\",\"3264785391\",\"3269416500\",\"3266185257\",\"3269162486\",\"3269013839\",\"3262532089\",\"3263333524\",\"3270439239\",\"3267508072\",\"3257408920\",\"3265791658\",\"3262652698\",\"3258218179\",\"3247649507\",\"3263339884\",\"3268373857\",\"3269739265\",\"3265512590\",\"3261946189\",\"3269147587\",\"3264282380\",\"3269185719\",\"3269152022\",\"3269405901\",\"3269232994\",\"3266288715\",\"3268492852\",\"3261403604\",\"3261785764\",\"3268781330\",\"3257856945\",\"3259938953\",\"3262139199\",\"3265134337\",\"3269320587\",\"3260044320\",\"3258887431\",\"3268611504\",\"3259802697\",\"3267209760\",\"3268798086\",\"3264653191\",\"3262051582\",\"3262544183\",\"3263325459\",\"3261334443\",\"3267417437\",\"3270000108\",\"3268952321\",\"3259977579\",\"3256750077\",\"3234132244\",\"3269141712\",\"3268515638\",\"3269485431\",\"3267682833\",\"3262653608\",\"3268417070\",\"3259280276\",\"3268831104\",\"3262302591\",\"3261359590\",\"3258650538\",\"3267718299\",\"3265878982\",\"3269218026\",\"3270764509\",\"3269229738\",\"3264732208\",\"3259772621\",\"3266251147\",\"3264873403\",\"3264337980\",\"3256607340\",\"3262521798\",\"3261345996\",\"3270701451\",\"3264895758\",\"3269847361\",\"3256403151\",\"3255210222\",\"3256285301\",\"3265286433\",\"3262815258\",\"3266023346\",\"3264575852\",\"3261646224\",\"3262835674\",\"3268733703\",\"3268721526\",\"3268700178\",\"3263310607\",\"3265158364\",\"3259590659\",\"3268754626\",\"3267069915\",\"3260662115\",\"3267030819\",\"3257979021\",\"3265354453\",\"3258306219\",\"3269181671\",\"3269816088\",\"3256828878\",\"3262554813\",\"3268629425\",\"3267993851\",\"3266489962\",\"3270767713\",\"3268146763\",\"3256622676\",\"3263761603\",\"3265469029\",\"3262237044\",\"3269969205\",\"3264173632\",\"3269688971\",\"3269031838\",\"3262163846\",\"3265170162\",\"3263998607\",\"3270274601\",\"3270607853\",\"3268630703\",\"3264518923\",\"3269694593\",\"3256738154\",\"3264777811\",\"3270702664\",\"3256825670\",\"3268221153\",\"3265381653\",\"3270761505\",\"3270237164\",\"3264246954\",\"3264015485\",\"3268151111\",\"3270094894\",\"3261205365\",\"3264552302\",\"3264334290\",\"3264286326\",\"3264232616\",\"3267669390\",\"3265933405\",\"3264557212\",\"3268545636\",\"3264378060\",\"3269393383\",\"3257645886\",\"3257984813\",\"3221439880\",\"3268928982\",\"3256244225\",\"3268949484\",\"3267097821\",\"3270457524\",\"3269081450\",\"3264807823\",\"3269516534\",\"3269555501\",\"3267914423\",\"3264389160\",\"3270290160\",\"3265807287\",\"3267926551\",\"3268896333\",\"3263917835\",\"3269287911\",\"3267217717\",\"3268544718\",\"3267172141\",\"3268461787\",\"3268728490\",\"3265407017\",\"3268915495\",\"3263782246\",\"3266626219\",\"3265718039\"],\"es_pivot\":\"5.4156365|1788694312000|3264347119\",\"reranker_offset\":35,\"total\":13277,\"page_number\":1}"
  }
}
Real response, fetched from the live endpoint with the parameters on the left — trimmed to the first few rows, with seller names left out. Press Try it for the untrimmed response.

How the leboncoin API works

leboncoin is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.

01
Authenticate
x-api-key header

No OAuth app, no request signing, no per-site account. One key covers all 252 engines.

02
Call
POST /leboncoin/v1/…

Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.

03
Pay
1 or 2 credits per call

Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.

04
Read
{ ok, data, meta, error }

One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.

Two-to-three-room flats for sale in Lyon, then everything their agency lists

real_estate/search narrows the market, listing opens one ad in full, and seller_id turns that ad's agency into a list of everything it advertises.

01search
POST/leboncoin/v1/real_estate/search
{"transaction": "sale", "city": "Lyon", "property_type": ["apartment"], "rooms_min": 2, "rooms_max": 3}

Price, price per m², surface, rooms, energy class and agency or private owner on every row. Take listings[].ad_id, and next_page_token for page 2.

02listing
POST/leboncoin/v1/listing
{"ad_id": "<ad_id from step 1>"}

The full record: charges, notary fees estimate, heating, building year, every attribute, all images, and seller.seller_id with the agency's name and SIREN.

03search
POST/leboncoin/v1/real_estate/search
{"transaction": "sale", "seller_id": "<seller_id from step 2>"}

Every property that agency has for sale on leboncoin.

A filtered view of Lyon's flat market and the agencies supplying it, with each price labelled for what it is.

request
curl -X POST https://api.reefapi.com/leboncoin/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"velo"}'
response envelope
{
  "ok": true,
  "data": { … },
  "meta": {
    "api": "leboncoin",
    "endpoint": "search",
    "mode": "live",
    "latency_ms": …,
    "record_count": …
  },
  "error": null
}

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)priceflagthe catch
Three-seat sofa, Ameublement ('Don')0is_free: trueleboncoin 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élos99999999price_looks_placeholder: trueThe 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éphones230price_before_reduction: 270The 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ères257519price_is_from: trueOne 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: 19leboncoin 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.

What was checked, and what leboncoin leaves out

Measured on 2026-09-15: 80 live calls across the four main actions with no failure, 86 controlled checks including every filter, and 10 ads compared with their own pages. Four of these lines go against us.

The whole site, three search actions

Every marketplace category, property for sale, rent, flat-shares and commercial, and cars, motorcycles, vans and campervans. France only, prices in EUR.

Every filter narrows, every row matches

Each filter was run against its unfiltered total in the same minute and every returned row checked: for 'velo', 1,387,977 ads became 192,876 in new condition and 568,399 shipped by the seller; Paris sales, 10,319, became 2,302 between 50 and 80 m².

Checked against the ad page

On 10 ads across bikes, furniture, phones, cars, property for sale and rentals, the title, the visible price, the postcode, the seller type and the photo count matched each ad's own page.

Prices that are not simply a price are labelled

Give-aways, missing prices, placeholder prices, price drops and new-build 'from' prices each have their own field or flag; price-sorted rows outside the range you asked for are removed and counted.

Speed

Median across 80 calls: a marketplace search 0.63 seconds, a real-estate search 0.46 seconds, a vehicle search 0.50 seconds, an ad 0.32 seconds. The slowest call measured took 4.1 seconds.

Against us: private sellers are not named

A private seller's display name, profile picture and street-level location are left out on purpose; phone numbers in descriptions are masked. Pro sellers are named with company and SIREN.

Against us: page 2 needs the token for relevance order

leboncoin re-ranks relevance on every request; without next_page_token, page 2 repeated 6 of 35 ads in our test. With the token the pages did not overlap. leboncoin shows the first 3,500 results of a search.

Against us: no phone numbers and no sold status

leboncoin keeps phone numbers behind its messaging, and removed ads simply disappear (NOT_FOUND) rather than showing as sold.

Against us: ratings are sparse and brand is often empty

Seller ratings existed on 4 of 11 checked ads; a product brand on 3 of 6 marketplace ads, because many sellers leave it blank.

What people build with leboncoin

The jobs this data is most often used for.

5

endpoints

1/2

credits per call

01

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.

02

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.

03

Resale and pricing tools compare second-hand prices by condition and shipping, keeping give-aways and placeholder prices out of the averages.

04

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.

What leboncoin data costs

The cheapest call here is 1 credit, so $15/mo (Pro) buys 10,000 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.

Full pricing →
$0.67–$1.50 / 1,000 credits
  • 1,000 free credits on signup, no card
  • One key, all 252 APIs, one credit pool
  • Failed and blocked calls are never charged
  • Credits roll over and never expire

Call it in two lines

Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.

curl
curl -X POST https://api.reefapi.com/leboncoin/v1/search \
  -H "x-api-key: $REEF_KEY" \
  -H "content-type: application/json" \
  -d '{"query":"velo"}'
python
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"])
FAQ

Have a question? We got answers.

The questions people actually ask before wiring up leboncoin.

Get a free key →
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.

16 Classifieds & Second-hand APIs on the same key

One key, one credit pool, one response envelope. If you are pulling leboncoin, you are one call away from the rest of the category — no second contract, no second integration.

Need something this API does not do?

Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.

0/4000

No account needed · we reply from [email protected]

Try it on your own data before you pay anything

The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 251 APIs, and the same envelope everywhere.

Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-09-15.