# Leboncoin Scraper - All Categories, Cars, Real Estate (`joyouscam35875/leboncoin-scraper`) Actor

Ads from any Leboncoin category or search URL: cars (brand, model, year, mileage, fuel), real estate, furniture, electronics, jobs and more. Price, place, photos, seller type, all item details. Only-new mode for alerts. No login.

- **URL**: https://apify.com/joyouscam35875/leboncoin-scraper.md
- **Developed by:** [Ken Digital](https://apify.com/joyouscam35875) (community)
- **Categories:** E-commerce, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 ads

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Leboncoin Scraper - All Categories, Cars, Real Estate

Ads from **any Leboncoin category** as clean rows: title, full description, price, place with coordinates, photos, publication date, seller type, and every item detail the site shows. For **cars and motorbikes**, brand, model, year, mileage, fuel and gearbox get their own columns. Paste a search URL from leboncoin.fr with your filters, or build a search from keywords, category, place and price. Turn on **Only new ads** and schedule it for alerts that never repeat an ad.

*Annonces Leboncoin de toutes les catégories (voitures, immobilier, meubles, high-tech, emploi...) : prix, lieu, photos, vendeur, caractéristiques. Collez une URL de recherche ou choisissez mots-clés, catégorie et lieu. Mode « nouvelles annonces uniquement » pour des alertes.*

- **Every category:** Voitures, Motos, Immobilier, Ameublement, Téléphones, Vélos, Consoles, Vêtements, Offres d'emploi and 45 more.
- **Your exact search:** a leboncoin.fr search URL keeps its category, place, price, year, mileage and other filters.
- **All item details** in an `attributes` object (condition, size, color, energy class, rooms, horsepower, Argus price positioning...).
- **Only new ads** remembers what earlier runs delivered, per search, so scheduled runs return and bill only fresh ads.
- **No login, no account, no proxy setup.**

### Quick start

```json
{
  "searchUrls": ["https://www.leboncoin.fr/recherche?category=2&text=golf&price=min-15000&regdate=2015-max"],
  "maxItems": 300
}
```

Or without a URL:

```json
{
  "keywords": "vélo électrique",
  "category": "55",
  "location": "Lyon",
  "maxPrice": 1500,
  "ownerType": "private",
  "onlyNewAds": true
}
```

**Daily alert:** turn on `onlyNewAds`, save as a task, schedule it, and connect Slack, email or Google Sheets from the task's Integrations tab.

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `searchUrls` | array | | Searches copied from leboncoin.fr. |
| `keywords` | string | | One search per line. |
| `category` | string | all | Category id, picked from the list (`2` Voitures, `9` Ventes immobilières, `55` Vélos...). |
| `location` | string | all of France | City, postcode or département: `Lyon`, `75011`, `33`, `Gironde`. |
| `minPrice` / `maxPrice` | integer | | Price range in euros. |
| `ownerType` | string | `all` | `all`, `private`, `pro`. |
| `titleOnly` | boolean | false | Match keywords in titles only. |
| `sort` | string | `newest` | `newest`, `priceAsc`, `priceDesc`, `relevance`. |
| `maxItems` | integer | 200 | Per search. `0` = everything Leboncoin returns (up to about 3,500). |
| `onlyNewAds` | boolean | false | Return only ads not delivered by earlier runs of the same search. |

### Output

```json
{
  "adId": "3071234567",
  "url": "https://www.leboncoin.fr/ad/voitures/3071234567",
  "title": "Golf 6 gti dsg6 ct ok très bon état",
  "description": "...",
  "price": 13990,
  "category": "Voitures",
  "city": "Guyancourt",
  "zipcode": "78280",
  "departmentCode": "78",
  "latitude": 48.77,
  "longitude": 2.07,
  "publishedAt": "2026-10-07T09:12:31",
  "images": ["https://img.leboncoin.fr/..."],
  "sellerType": "private",
  "sellerName": null,
  "brand": "Volkswagen",
  "model": "Golf",
  "year": 2011,
  "mileageKm": 132000,
  "fuel": "Essence",
  "gearbox": "Automatique",
  "attributes": {"vehicle_type": "Berline", "horse_power_din": "210 Ch", "vehicule_color": "Noir", "car_price_positioning": "Légèrement supérieur"},
  "searchInput": "https://www.leboncoin.fr/recherche?category=2&text=golf",
  "scrapedAt": "2026-10-07T10:00:00+00:00"
}
```

`sellerName` is filled for professional sellers only: private sellers' names are never exported. For real estate with surfaces, DPE and a comparison with real sale prices across five sites, see the [SeLoger, Leboncoin, Bien'ici, PAP & Logic-Immo Scraper](https://apify.com/joyouscam35875/france-real-estate-scraper).

### Pricing

Pay per event: one `ad` event per ad row, plus a tiny actor-start fee. With **Only new ads** on, a run with nothing new costs only the start fee.

### Use cases

- **Deal alerts:** new cars, bikes, consoles or furniture under your price, every morning
- **Car dealers and resellers:** sourcing private-seller vehicles with year, mileage and Argus positioning
- **Price research:** asking prices by model, condition and region
- **Real estate and agencies:** new private listings in your area

### Integrations

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("joyouscam35875/leboncoin-scraper").call(run_input={
    "keywords": "iphone 15",
    "category": "17",
    "maxPrice": 600,
    "onlyNewAds": True,
})
for ad in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(ad["price"], ad["city"], ad["title"], ad["url"])
```

Works with Make, Zapier, n8n, Google Sheets, schedules and webhooks, and as an MCP tool for AI agents.

### FAQ

**Why do some runs get fewer ads than expected?** Leboncoin protects its site against automated traffic. The actor retries with fresh connections; if Leboncoin still refuses a search, the run succeeds with what it has and the status message says so. Re-running usually works.

**How many ads can one search return?** Leboncoin pages stop at about 3,500 ads per search. Split broad searches by place or price.

**What if my run has a short timeout?** The actor stops shortly before it, keeps every ad already saved, and ends successfully with a message saying so.

**Is it legal?** The actor reads publicly visible ads and never exports private sellers' names or contact details. You are responsible for how you use the data and for complying with Leboncoin's terms and the GDPR.

### Feedback

Missing a field? Open an issue on the actor's **Issues** tab. If this scraper saved you time, a short review on the Store page helps other people find it.

### Related actors by the same developer

| Actor | What it does |
|---|---|
| [SeLoger, Leboncoin, Bien'ici, PAP & Logic-Immo Scraper](https://apify.com/joyouscam35875/france-real-estate-scraper) | French property listings from five sites with real sale prices |
| [Welcome to the Jungle, France Travail & Hellowork Scraper](https://apify.com/joyouscam35875/france-job-scraper) | French job offers from three sites |
| [Indeed Jobs Scraper](https://apify.com/joyouscam35875/indeed-jobs-scraper) | Indeed jobs with full descriptions in 23 countries |

# Actor input Schema

## `searchUrls` (type: `array`):

Paste searches from leboncoin.fr with your filters (category, place, price, year, mileage...). Leave empty to use the fields below.

## `keywords` (type: `string`):

One search per line, e.g. 'golf gti', 'vélo électrique', 'canapé cuir'.

## `category` (type: `string`):

Leave empty for all categories.

## `location` (type: `string`):

City, postcode or département: 'Lyon', '75011', '33', 'Gironde'. Empty = all of France.

## `minPrice` (type: `integer`):

Minimum price.

## `maxPrice` (type: `integer`):

Maximum price.

## `ownerType` (type: `string`):

Private or professional sellers.

## `titleOnly` (type: `boolean`):

Match keywords in ad titles only, not descriptions.

## `sort` (type: `string`):

Order of results.

## `maxItems` (type: `integer`):

0 = everything Leboncoin returns (up to about 3,500).

## `onlyNewAds` (type: `boolean`):

Remember the ads delivered by earlier runs of the same search and return only ads not delivered before. You only pay for new ads.

## Actor input object example

```json
{
  "searchUrls": [
    "https://www.leboncoin.fr/recherche?category=2&text=golf&price=min-15000"
  ],
  "ownerType": "all",
  "titleOnly": false,
  "sort": "newest",
  "maxItems": 200,
  "onlyNewAds": false
}
```

# Actor output Schema

## `ads` (type: `string`):

One row per ad.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchUrls": [
        "https://www.leboncoin.fr/recherche?category=2&text=golf&price=min-15000"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("joyouscam35875/leboncoin-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "searchUrls": ["https://www.leboncoin.fr/recherche?category=2&text=golf&price=min-15000"] }

# Run the Actor and wait for it to finish
run = client.actor("joyouscam35875/leboncoin-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchUrls": [
    "https://www.leboncoin.fr/recherche?category=2&text=golf&price=min-15000"
  ]
}' |
apify call joyouscam35875/leboncoin-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,joyouscam35875/leboncoin-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/Zth6pjHr7gdyCeIbQ/builds/a4ABKE24wNqfzfjru/openapi.json
