App Logo
leboncoin.fr

Search Leboncoin ads

TL;DR

Automatically search Leboncoin ads on leboncoin.fr. Up to 35 ads per call, each with price, city, zipcode, seller type, publication date and link.

About

Each call reads one leboncoin results page for a keyword, a list of cities, or both, and returns its ads with price_eur, zipcode, seller_type (private or pro) and published_at. Say you are after a used road bike in Lyon or Villeurbanne. Search "vélo route" with both cities in locations (there is no radius setting, so you name the towns yourself) and read pages 1 to 3, one call each. Keep category_name "Vélos", since a bike keyword also pulls in Sport & Plein air listings, then drop pro sellers and anything above 600 euros. Cards carry no description, so send the dozen url values left to get_ad for descriptions and frame sizes, and pass its seller_profile_url to get_seller_profile to see how long each seller has been on the site. If leboncoin serves a consent wall or a bot check instead of results, the run stops with an error saying so, not an empty list you could mistake for zero matches.

Input

page optional

Page index, 35 ads per page (capped at max_pages=100). A page past the last one fails with the page count.

Default: 1
sort optional

Result order. newest orders on listed_at. Promoted ads are placed among the results whatever the order.

Default: "relevance"
text optional

Free-text query, e.g. 'iphone 13' or 'table en chêne'. The aliases query, keyword and keywords are accepted for the same thing; pass whichever you have.

query optional

Alias for text.

keyword optional

Alias for text.

category optional

Leboncoin category id, as category_id in the results (e.g. '55' for bikes, '17' for phones). Omit to search every category.

keywords optional

Alias for text.

locations optional

City name, a comma-separated list of cities, or an array of city names, e.g. 'Paris', 'Paris,Lyon' or ['Paris','Lyon']. An empty array counts as no location filter.

price_max optional

Highest price in euros, inclusive.

price_min optional

Lowest price in euros, inclusive.

owner_type optional

Only ads from private sellers, or only from professional sellers. Omit for both.

Output

ads required
count required
total required

Number of ads Leboncoin reports for this search.

max_pages required

Example output

Shape only: placeholder values generated from the output schema, not a real run.

{ "ads": [ { "id": "abc123", "url": "https://example.com/item/123", "city": "…", "title": "Example", "zipcode": "…", "currency": "…", "promoted": true, "listed_at": "2026-01-15T09:30:00Z", "price_eur": 3.5, "thumb_url": "https://example.com/item/123", "category_id": "abc123", "image_count": 3, "seller_type": "…", "published_at": "2026-01-15T09:30:00Z", "category_name": "…" } ], "count": 3, "total": 3, "max_pages": 3 }

FAQ

Search Leboncoin classifieds by keyword, location, category, price range and seller type, sorted by relevance, newest or price. Returns total, max_pages, count and one page of 35 ads (id, url, title, price, city, zipcode, category, seller type, publication and listing dates, thumbnail, photo count, and whether the ad is promoted). Leboncoin places promoted ads among the results whatever the sort. A search with no match returns an empty list; a page past the last one fails with the page count.
Ask an AI agent connected to Reduck to run reduck/leboncoin.fr/search, or run it from a terminal with the Reduck CLI: npx @reduck-ai/cli@latest run --script reduck/leboncoin.fr/search
You do not need one. "Search Leboncoin ads" drives the real leboncoin.fr pages in a browser, so it works whether or not leboncoin.fr offers an API for this.
Optional: page, sort, text, query, keyword, category, keywords, locations, price_max, price_min, owner_type.
It returns ads, count, total, max_pages.
No. It only uses pages of leboncoin.fr that are reachable without signing in.
It only reads. It looks things up on leboncoin.fr and changes nothing there.
Ask an AI agent connected to Reduck to run reduck/leboncoin.fr/search, or run it from a terminal with the Reduck CLI: npx @reduck-ai/cli@latest run --script reduck/leboncoin.fr/search
It is part of Reduck's official curated catalogue.
The leboncoin search script returns one page of up to 35 ads per call, and leboncoin stops at page 100, so one keyword and city combination tops out at 3,500 ads. A broad search like "vélo" reported 1,380,641 matches in a September 2026 run, so most of them are out of reach. Ask for a page past the end and the error tells you how many pages the search really has.
The leboncoin search script has no price, category, radius or sort input, and passing one (or a limit) fails with a validation error instead of being quietly ignored. Results come back in leboncoin's default relevance order, so a 2024 ad can sit on page 1 next to one posted the evening before. Filter on price_eur and category_name in your own code, but sorting by published_at only gives a true newest-first list when max_pages comes back under 100 and you fetch every page.
Leboncoin lets a signed-in account save up to 50 searches and sends an email or app notification when a new matching ad is published. If all you want is a ping when a cheap bike turns up, use those. The leboncoin search script is for when you want the ads as rows with ids you can store and compare between runs, which only catches every new ad when the search is small enough to fetch in full.
For leboncoin's Offres d'emploi category, the search_jobs script is the better fit: it returns salary, contract type, sector and experience level when the poster filled them in, and the general search script never reads those fields. It also checks the city you give against leboncoin's own city list and stops with an error on a name it cannot match.

Start building not clicking