# Leboncoin Scraper (API) Pro 🇫🇷 - Annonces & Prix (`clearpath/leboncoin-api`) Actor

Leboncoin.fr Scraper API: Extract classified ads with prices, locations, seller info, and photos. Filter by category, price range, and area. For market research, price monitoring, and competitive analysis across France.

- **URL**: https://apify.com/clearpath/leboncoin-api.md
- **Developed by:** [ClearPath](https://apify.com/clearpath) (community)
- **Categories:** E-commerce, Automation, Real estate
- **Features:** Limited permissions
- **Stats:** 778 total users, 139 monthly users, 98.9% runs succeeded, 13 bookmarks
- **User rating**: 4.96 out of 5 stars

## Pricing

from $0.99 / 1,000 annonces

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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.fr 🇫🇷 Scraper | Fast French Classified Ads Data Extraction

[![The #1 Leboncoin scraper on Apify. 1,000 listings in under a minute. Seller profiles. Ratings. Phone numbers.](https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/leboncoin-api-readme-20260921-3d0017041c80.png)](https://console.apify.com/actors/nfWPDHJzRb80PsNo1/input)

Built by <strong>Clearpath</strong>, creators of the <strong>#1 Leboncoin scraper on Apify</strong> and a dedicated suite for <a href="https://apify.com/clearpath/leboncoin-immobilier">property listings</a>, <a href="https://apify.com/clearpath/leboncoin-phone-scraper">seller phone numbers</a> and <a href="https://apify.com/clearpath/leboncoin-acheteur">buyer messaging</a>.

### Why choose this Leboncoin listings scraper?

<strong>1,000 search listings in under a minute.</strong> Build your dataset from a keyword or paste a Leboncoin search URL to use its filters. Export listing descriptions, photos, locations and category-specific details to JSON, CSV or Excel.

<strong>Know the seller, not just the listing.</strong> Add seller ratings, review counts, response indicators, badges and professional business details. Enable phone collection to retrieve available seller phone numbers.

<strong>Choose how much to collect.</strong> Set your result count without a fixed 10,000-listing search cap. Monitor mode can also collect new matching ads and send them to Telegram or your webhook.

<a href="https://console.apify.com/actors/nfWPDHJzRb80PsNo1/input"><img src="https://api.apify.com/v2/key-value-stores/pJ7iaZsTFhR3k9tjV/records/leboncoin-api-readme-20260921-7431f80c5db1.svg" width="208" height="48" alt="Try your search"/></a>

### Try it with your keyword

Start with 20 listings and seller profiles to inspect the data.

```json
{
  "searchQuery": "iPhone 16 Plus",
  "adLimit": 20,
  "includeSeller": true
}
```

<a href="https://console.apify.com/actors/nfWPDHJzRb80PsNo1/input">Open actor input</a> to change the keyword or paste your search URL. Increase <code>adLimit</code> for a larger search; collection stops at your requested count, available results or run budget.

Seller profiles and phone lookups are optional paid extras and add processing time. Phone collection requires <code>includePhone: true</code> and your Leboncoin login, sometimes with a verification code. Enter credentials in the input form; numbers are returned where available.

<table>
<tr>
<td style="background:#FF6E14;color:#1C1917;padding:10px 14px;font-size:13px;font-weight:700;border-radius:4px 4px 0 0">Clearpath · Listings &amp; contacts</td>
</tr>
<tr>
<td style="padding:6px;border:1px solid #EDD2BD;border-top:none;border-radius:0 0 4px 4px;background:#FFF1E5">
<span style="display:inline-block;vertical-align:top;margin:3px;padding:8px 8px;border:1px solid #EDD2BD;border-radius:4px;background:#FFE1C9"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-nfWPDHJzRb80PsNo1-75H3RM9GEy-leboncoin-api-scraper.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/leboncoin-api" style="color:#202124;text-decoration:none;font-weight:700;font-size:13px">Listings</a></span><br><span style="color:#51443B;font-size:12px;white-space:nowrap">You are here</span></span><span style="display:inline-block;vertical-align:top;margin:3px;padding:8px 8px;border:1px solid #EDD2BD;border-radius:4px;background:#FFF1E5"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-JUFnhDjGAS8VM64Or-NK2uxNA7xa-leboncoin-api-scraper.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/leboncoin-voitures" style="color:#202124;text-decoration:none;font-weight:700;font-size:13px">Cars</a></span><br><span style="color:#51443B;font-size:12px;white-space:nowrap">Make, model, mileage</span></span><span style="display:inline-block;vertical-align:top;margin:3px;padding:8px 8px;border:1px solid #EDD2BD;border-radius:4px;background:#FFF1E5"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-JUFnhDjGAS8VM64Or-NK2uxNA7xa-leboncoin-api-scraper.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/leboncoin-immobilier" style="color:#202124;text-decoration:none;font-weight:700;font-size:13px">Property</a></span><br><span style="color:#51443B;font-size:12px;white-space:nowrap">Homes & apartments</span></span><span style="display:inline-block;vertical-align:top;margin:3px;padding:8px 8px;border:1px solid #EDD2BD;border-radius:4px;background:#FFF1E5"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-Ktt3U5wPXmawkW1IF-nCZRq8jHrG-leboncoin-api-scraper.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/leboncoin-phone-scraper" style="color:#202124;text-decoration:none;font-weight:700;font-size:13px">Phone Numbers</a></span><br><span style="color:#51443B;font-size:12px;white-space:nowrap">Seller contacts</span></span><span style="display:inline-block;vertical-align:top;margin:3px;padding:8px 8px;border:1px solid #EDD2BD;border-radius:4px;background:#FFF1E5"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-EoBhkQkutNdzHseHz-svR2iRzhCP-leboncoin-api-scraper.png" width="20" height="20" alt="" style="vertical-align:middle"/>&nbsp;&nbsp;<a href="https://apify.com/clearpath/leboncoin-acheteur" style="color:#202124;text-decoration:none;font-weight:700;font-size:13px">Buyer Tools</a></span><br><span style="color:#51443B;font-size:12px;white-space:nowrap">Messages & inbox</span></span>
<span style="display:inline-block;vertical-align:top;margin:3px;padding:8px 8px;border:1px solid #EDD2BD;border-radius:4px;background:#FFF1E5"><span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-ewqeUU7AXNvLl7zfn-MHCF0Re4xs-seloger-scraper-logo.png" width="20" height="20" alt="" style="vertical-align:middle">&nbsp;&nbsp;<a href="https://apify.com/clearpath/seloger-scraper" style="color:#202124;text-decoration:none;font-weight:700;font-size:13px">SeLoger</a></span><br><span style="color:#51443B;font-size:12px;white-space:nowrap">France: phones &amp; agency emails</span></span>
</td>
</tr>
</table>

#### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

```
clearpath/leboncoin-api on Apify. Call: ApifyClient("TOKEN").actor("clearpath/leboncoin-api").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: searchUrl (string), searchQuery (string), adLimit (integer), includePhone (boolean), email/password for phone lookup, twoFactorCode (optional string, secret; use on second run if leboncoin sends an SMS or email verification code). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/clearpath~leboncoin-api/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: pay-per-event. $1.49 per 1,000 ads scraped (tiered down to $0.99 on higher Apify plans), $4.99 per 1,000 ads fetched from a direct ad URL, $2.99 per 1,000 seller profiles, $9.99 per 1,000 phone numbers. No subscription. Get token: https://console.apify.com/account/integrations
```

### Pricing - Pay Only For What You Scrape

| What you are billed for | Price |
|---|---|
| Run started | $0.009 per run |
| Ad scraped | $1.49 / 1,000 ($1.29 Silver, $0.99 Gold and above) |
| Ad fetched from a direct ad URL | $4.99 / 1,000 |
| Seller profile | $2.99 / 1,000 profiles |
| Phone number | $9.99 / 1,000 numbers |

- ✅ No subscription, no monthly commitment
- ✅ Unlimited runs and unlimited ads per run
- ✅ All features included (monitor mode, Telegram notifications, filters)
- ✅ A seller profile is billed once per seller, however many ads they have

Perfect for businesses, researchers, and anyone who needs reliable, unrestricted access to French marketplace data.

### 🆓 Free Allowance

Every account gets **1,000 ads and 25 phone numbers free**, no credit card required, so you can
evaluate data quality and coverage before paying anything.

### How to scrape Leboncoin listings

#### Basic Search Configuration

```json
{
  "searchQuery": "iPhone 16 Plus",
  "excludeKeywords": "Pro, Max, coque",
  "category": "14", // Électronique (main category)
  "location": "Paris",
  "adLimit": 100,
  "price_min_filter": 500,
  "price_max_filter": 1200
}
```

#### Location-Based Market Research

```json
{
  "searchQuery": "vélo électrique",
  "location": "Lyon 69",
  "radius": 50,
  "adLimit": 500,
  "sortBy": "price"
}
```

#### Direct Ad URL Extraction

```json
{
  "adDetailUrls": [
    "https://www.leboncoin.fr/ad/telephonie/3009018573",
    "https://www.leboncoin.fr/ad/informatique/3009018574"
  ]
}
```

#### Phone Number Extraction

Fetch seller phone numbers alongside ad details, on a search or on specific ad URLs. Requires a free leboncoin.fr account.

```json
{
  "adDetailUrls": [
    "https://www.leboncoin.fr/ad/voitures/3133355114",
    "https://www.leboncoin.fr/ad/voitures/3121655546"
  ],
  "includePhone": true,
  "email": "your@email.com",
  "password": "your-password"
}
```

Each ad in the output will include a `phone` field (e.g., `"+33612345678"`) when available.

If leboncoin asks for a verification code, the run still returns scraped ads and skips phone lookup. Run the same input again with the latest SMS or email code in `twoFactorCode` to fetch phones.

### Input Parameters

| Parameter              | Type    | Description                                     | Default     |
| ---------------------- | ------- | ----------------------------------------------- | ----------- |
| `query`                | String  | Search keywords                                 | Optional    |
| `excludeKeywords`      | String  | Words to exclude from titles, comma-separated (e.g., `Pro, Max, coque`) | Optional    |
| `adDetailUrls`         | Array   | Specific ad URLs to scrape (max 100 per run)    | Optional    |
| `includePhone`         | Boolean | Fetch seller phone numbers, on a search or ad URLs (requires leboncoin account) | false |
| `email`                | String  | Leboncoin account email (for phone lookup)      | Optional    |
| `password`             | String  | Leboncoin account password (encrypted, never logged) | Optional |
| `twoFactorCode`        | String  | SMS/email verification code for phone lookup. Use only on the second run after leboncoin requested a code | Optional |
| `category`             | String  | Main category ID (see categories below)        | "0" (All)   |
| `category_id`          | String  | Specific subcategory ID (takes precedence over category) | Optional    |
| `location`             | String  | City, postal code, or region                    | All France  |
| `mode`                 | String  | Standard extracts current results. Monitor creates a billed, notification-silent bounded baseline, then delivers new ads on a best-effort basis. | "standard"  |
| `adLimit`              | Integer | Maximum ads to scrape (0 = unlimited)           | 20          |
| `sortBy`               | String  | Sort criteria (relevance/time/price)            | "relevance" |
| `radius`               | Integer | Search radius in km around location             | 5           |
| `price_min_filter`     | Integer | Minimum price in euros                          | Optional    |
| `price_max_filter`     | Integer | Maximum price in euros                          | Optional    |
| `search_in_title_only` | Boolean | Search only in ad titles                        | false       |
| `seller_type`          | String  | Filter by seller (all/pro/private)              | "all"       |
| `urgent`               | Boolean | Show only urgent ads                            | false       |
| `donation`             | Boolean | Show only donation (gratuit) ads                | false       |
| `shippable`            | Boolean | Include shippable items                         | true        |
| `telegramUserId`       | String  | Optional: Your Telegram user ID for notifications (only used in monitor mode). Get it from @userinfobot | Optional    |
| `telegramNotificationLimit` | Integer | Maximum number of Telegram notifications per run (prevents spam) | 10 |
| `webhookUrl`           | String  | Optional HTTPS URL that receives one JSON batch only when new ads are delivered (monitor mode only) | Optional |
| `webhookSecret`        | String  | Optional: shared secret. When set, each POST includes `X-Webhook-Signature: sha256=<hex>` (HMAC-SHA256 of the raw body) so the receiver can verify authenticity. | Optional |
| `webhookNotificationLimit` | Integer | Maximum number of ads embedded in the webhook payload. Above this, the array is truncated and `truncated: true` is set. | 100 |
| `proxyConfiguration`   | Object  | Proxy settings (French residential recommended) | Optional    |

#### Available Categories

```json
[
  {
    "id": "0",
    "label": "Toutes catégories"
  },
  {
    "id": "71",
    "label": "Emploi"
  },
  {
    "id": "33",
    "label": "Offres d'emploi"
  },
  {
    "id": "74",
    "label": "Formations professionnelles"
  },
  {
    "id": "1",
    "label": "Véhicules"
  },
  {
    "id": "2",
    "label": "Voitures"
  },
  {
    "id": "3",
    "label": "Motos"
  },
  {
    "id": "4",
    "label": "Caravaning"
  },
  {
    "id": "5",
    "label": "Utilitaires"
  },
  {
    "id": "300",
    "label": "Camions"
  },
  {
    "id": "7",
    "label": "Nautisme"
  },
  {
    "id": "55",
    "label": "Vélos"
  },
  {
    "id": "6",
    "label": "Équipement auto"
  },
  {
    "id": "44",
    "label": "Équipement moto"
  },
  {
    "id": "50",
    "label": "Équipement caravaning"
  },
  {
    "id": "51",
    "label": "Équipement nautisme"
  },
  {
    "id": "8",
    "label": "Immobilier"
  },
  {
    "id": "9",
    "label": "Ventes immobilières"
  },
  {
    "id": "10",
    "label": "Locations"
  },
  {
    "id": "11",
    "label": "Colocations"
  },
  {
    "id": "13",
    "label": "Bureaux & Commerces"
  },
  {
    "id": "66",
    "label": "Locations de vacances"
  },
  {
    "id": "12",
    "label": "Locations saisonnières"
  },
  {
    "id": "14",
    "label": "Électronique"
  },
  {
    "id": "15",
    "label": "Ordinateurs"
  },
  {
    "id": "83",
    "label": "Accessoires informatique"
  },
  {
    "id": "82",
    "label": "Tablettes & Liseuses"
  },
  {
    "id": "16",
    "label": "Photo, audio & vidéo"
  },
  {
    "id": "17",
    "label": "Téléphones & Objets connectés"
  },
  {
    "id": "81",
    "label": "Accessoires téléphone & Objets connectés"
  },
  {
    "id": "43",
    "label": "Consoles"
  },
  {
    "id": "84",
    "label": "Jeux vidéo"
  },
  {
    "id": "18",
    "label": "Maison & Jardin"
  },
  {
    "id": "19",
    "label": "Ameublement"
  },
  {
    "id": "96",
    "label": "Papeterie & Fournitures scolaires"
  },
  {
    "id": "20",
    "label": "Électroménager"
  },
  {
    "id": "45",
    "label": "Arts de la table"
  },
  {
    "id": "39",
    "label": "Décoration"
  },
  {
    "id": "46",
    "label": "Linge de maison"
  },
  {
    "id": "21",
    "label": "Bricolage"
  },
  {
    "id": "52",
    "label": "Jardin & Plantes"
  },
  {
    "id": "79",
    "label": "Famille"
  },
  {
    "id": "23",
    "label": "Équipement bébé"
  },
  {
    "id": "80",
    "label": "Mobilier enfant"
  },
  {
    "id": "54",
    "label": "Vêtements bébé"
  },
  {
    "id": "72",
    "label": "Mode"
  },
  {
    "id": "22",
    "label": "Vêtements"
  },
  {
    "id": "53",
    "label": "Chaussures"
  },
  {
    "id": "47",
    "label": "Accessoires & Bagagerie"
  },
  {
    "id": "42",
    "label": "Montres & Bijoux"
  },
  {
    "id": "24",
    "label": "Loisirs"
  },
  {
    "id": "89",
    "label": "Antiquités"
  },
  {
    "id": "40",
    "label": "Collection"
  },
  {
    "id": "26",
    "label": "CD - Musique"
  },
  {
    "id": "25",
    "label": "DVD - Films"
  },
  {
    "id": "30",
    "label": "Instruments de musique"
  },
  {
    "id": "27",
    "label": "Livres"
  },
  {
    "id": "86",
    "label": "Modélisme"
  },
  {
    "id": "48",
    "label": "Vins & Gastronomie"
  },
  {
    "id": "41",
    "label": "Jeux & Jouets"
  },
  {
    "id": "88",
    "label": "Loisirs créatifs"
  },
  {
    "id": "29",
    "label": "Sport & Plein air"
  },
  {
    "id": "85",
    "label": "Équipements vélos"
  },
  {
    "id": "75",
    "label": "Animaux"
  },
  {
    "id": "76",
    "label": "Accessoires animaux"
  },
  {
    "id": "77",
    "label": "Animaux perdus"
  },
  {
    "id": "56",
    "label": "Matériel professionnel"
  },
  {
    "id": "105",
    "label": "Tracteurs"
  },
  {
    "id": "57",
    "label": "Matériel agricole"
  },
  {
    "id": "59",
    "label": "BTP - Chantier gros-oeuvre"
  },
  {
    "id": "106",
    "label": "Poids lourds"
  },
  {
    "id": "58",
    "label": "Manutention - Levage"
  },
  {
    "id": "32",
    "label": "Équipements industriels"
  },
  {
    "id": "61",
    "label": "Équipements pour restaurants & hôtels"
  },
  {
    "id": "62",
    "label": "Équipements & Fournitures de bureau"
  },
  {
    "id": "63",
    "label": "Équipements pour commerces & marchés"
  },
  {
    "id": "64",
    "label": "Matériel médical"
  },
  {
    "id": "31",
    "label": "Services"
  },
  {
    "id": "101",
    "label": "Artistes & Musiciens"
  },
  {
    "id": "100",
    "label": "Baby-Sitting"
  },
  {
    "id": "35",
    "label": "Billetterie"
  },
  {
    "id": "65",
    "label": "Covoiturage"
  },
  {
    "id": "36",
    "label": "Cours particuliers"
  },
  {
    "id": "103",
    "label": "Entraide entre voisins"
  },
  {
    "id": "49",
    "label": "Évènements"
  },
  {
    "id": "99",
    "label": "Services à la personne"
  },
  {
    "id": "102",
    "label": "Services aux animaux"
  },
  {
    "id": "92",
    "label": "Services de déménagement"
  },
  {
    "id": "95",
    "label": "Services de réparations électroniques"
  },
  {
    "id": "93",
    "label": "Services de réparations mécaniques"
  },
  {
    "id": "97",
    "label": "Services de jardinerie & bricolage"
  },
  {
    "id": "98",
    "label": "Services évènementiels"
  },
  {
    "id": "34",
    "label": "Autres services"
  },
  {
    "id": "1000",
    "label": "Dons"
  },
  {
    "id": "37",
    "label": "Divers"
  },
  {
    "id": "38",
    "label": "Autres"
  }
]
```

### What data you get from Leboncoin

```json
{
  "list_id": 2748144243,
  "first_publication_date": "2024-06-18 15:41:00",
  "index_date": "2025-07-07 20:34:23",
  "status": "active",
  "category_id": "2",
  "category_name": "Toutes catégories",
  "subject": "Volkswagen golf 8 gti clubsport 300 cv",
  "phone": "+33172370785",
  "body": "VOLKSWAGEN GOLF 8 GTI CLUBSPORT 300 CV, berline, blanc, 19 cv, première mise en circulation le 21/01/2022, garantie : 3 mois.\n\nPrix TTC : 39 990 €\n\nOPTIONS ET ÉQUIPEMENTS :\nAutres équipements et informations :\n  - NONE\n\n - consommation extra urbaine: 0.00l/100\n - consommation urbaine: 0.00l/100\n - consommation mixte: 0.00l/100\n\nSÉCURITÉ :  - ABS, ESP, AIRBAGS, DIRECTION ASSISTÉE- FERMETURE CENTRALISÉE- RÉGULATEUR/LIMITEUR DE VITESSE- RADAR DE RECUL- CAMERA DE RECUL- RADAR ANTI COLLISION\n\n EXTÉRIEUR :- JANTES ALU- PEINTURE MÉTAL- FEUX LED AV/AR\n\n INTÉRIEUR ET CONFORT :- VITRES ÉLECTRIQUES- COMPTEUR VIRTUAL COCKPIT- VOLANT CUIR MULTIFONCTIONS- RADIO BLUETOOTH- GPS NAVIGATION- ÉCRAN TACTILE- CHARGEUR INDUCTION- CLIM AUTO- SIÈGES SPORT ALCANTARA- SIÈGES CHAUFFANTS- INTÉRIEUR SURPIQUÉE ROUGE- PACK AMBIANCE LED- PLAFONNIER ANTHRACITE- ETC? SOUS RÉSERVE D'ERREUR\n\n ** EMPIRE AUTO SE SITUE 1 RUE DES CHAUDRONNIERS 88190 GOLBEY DANS UNE ZONE COMMERCIALE DERRIÈRE LE LECLERC\n\n ** VÉHICULE GARANTI ET RÉVISÉE AVEC NETTOYAGE INTÉRIEUR / EXTÉRIEUR\n\n ** SERVICE CARTE GRISE SUR PLACE ( SEULEMENT 30e DE FRAIS ADMINISTRATIFS )\n\n ** REPRISE POSSIBLE TOUTES MARQUES\n\n ** FINANCEMENT POSSIBLE SUR VEHICULE DE MOINS DE 7 ANS\n\n ** GARANTIES SUR CHAQUE VÉHICULE ( 3 MOIS MINIMUM AVEC POSSIBILITÉ D'EXTENSION )\n\n ** OUVERT DU LUNDI au SAMEDI de 9H00 à 12H00 et 14H00 à 18h00\n\nRéférence annonce : 3886",
  "brand": "leboncoin",
  "ad_type": "offer",
  "url": "https://www.leboncoin.fr/ad/voitures/2748144243",
  "price": [
    39990
  ],
  "price_cents": 3999000,
  "images": {
    "thumb_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/37/de/f4/37def4862ad5de24fc9df128e852cb450a8d3d57.jpg?rule=ad-thumb",
    "small_url": "https://img.leboncoin.fr/api/v1/lbcpb1/images/37/de/f4/37def4862ad5de24fc9df128e852cb450a8d3d57.jpg?rule=ad-small",
    "nb_images": 19,
    "urls": [
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/37/de/f4/37def4862ad5de24fc9df128e852cb450a8d3d57.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/77/34/e4/7734e403bcc4c61757468a42176880e43b0e4251.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/10/55/39/1055398511c839f1ec79e4441137b8b2797b27d2.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/35/ce/9b35cebf31e9bfd73f4d40aa41b2afef9f68cd2e.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/6f/e4/5a/6fe45a0f1874d4a1db8dde668ec9cd727c88f619.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/10/77/ed/1077ed200ce0b147da481cbab96d8b5fbd404c09.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/39/4b/04/394b04db875eac11a49f2b3c60aeb7bca06173ea.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/30/65/fc/3065fc96e4d57ab6b97849a68f3a4369cd57f9b7.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/4a/c4/48/4ac4484b4befb8902c445f5cf2cf6c57be6eaf19.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/76/8a/c2/768ac2d4197af14fa908976666ff396fc209eee9.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/b5/8e/50/b58e507d22a1d4a4ab66048004bdcfdc562c95dc.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/61/d7/8b/61d78b5c77851b237f964c7bb9330f2afb6f2073.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/5e/22/5e/5e225e0f18233b3efde44ff57b7679eb606f57b3.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/b2/71/6f/b2716f8d893ef8038c4ec834c9fd119cc9be6665.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/d5/fd/48/d5fd48c0b183589d1e6efa4ebdda8e89425cb783.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/82/76/3a/82763a3203c9cdccc5fb0b24e2dc8befd2c02ff1.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/ae/e6/e7aee6ddb3db9b5564697da2f9c35c154597e728.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/77/4f/b1/774fb12604107bf6e3cc4d08b7a9281dbcf2a924.jpg?rule=ad-image",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/76/f2/40/76f24009c425dfd227063e6c2c563b696dd7fb82.jpg?rule=ad-image"
    ],
    "urls_thumb": [
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/37/de/f4/37def4862ad5de24fc9df128e852cb450a8d3d57.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/77/34/e4/7734e403bcc4c61757468a42176880e43b0e4251.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/10/55/39/1055398511c839f1ec79e4441137b8b2797b27d2.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/35/ce/9b35cebf31e9bfd73f4d40aa41b2afef9f68cd2e.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/6f/e4/5a/6fe45a0f1874d4a1db8dde668ec9cd727c88f619.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/10/77/ed/1077ed200ce0b147da481cbab96d8b5fbd404c09.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/39/4b/04/394b04db875eac11a49f2b3c60aeb7bca06173ea.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/30/65/fc/3065fc96e4d57ab6b97849a68f3a4369cd57f9b7.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/4a/c4/48/4ac4484b4befb8902c445f5cf2cf6c57be6eaf19.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/76/8a/c2/768ac2d4197af14fa908976666ff396fc209eee9.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/b5/8e/50/b58e507d22a1d4a4ab66048004bdcfdc562c95dc.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/61/d7/8b/61d78b5c77851b237f964c7bb9330f2afb6f2073.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/5e/22/5e/5e225e0f18233b3efde44ff57b7679eb606f57b3.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/b2/71/6f/b2716f8d893ef8038c4ec834c9fd119cc9be6665.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/d5/fd/48/d5fd48c0b183589d1e6efa4ebdda8e89425cb783.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/82/76/3a/82763a3203c9cdccc5fb0b24e2dc8befd2c02ff1.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/ae/e6/e7aee6ddb3db9b5564697da2f9c35c154597e728.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/77/4f/b1/774fb12604107bf6e3cc4d08b7a9281dbcf2a924.jpg?rule=ad-thumb",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/76/f2/40/76f24009c425dfd227063e6c2c563b696dd7fb82.jpg?rule=ad-thumb"
    ],
    "urls_large": [
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/37/de/f4/37def4862ad5de24fc9df128e852cb450a8d3d57.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/77/34/e4/7734e403bcc4c61757468a42176880e43b0e4251.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/10/55/39/1055398511c839f1ec79e4441137b8b2797b27d2.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/9b/35/ce/9b35cebf31e9bfd73f4d40aa41b2afef9f68cd2e.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/6f/e4/5a/6fe45a0f1874d4a1db8dde668ec9cd727c88f619.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/10/77/ed/1077ed200ce0b147da481cbab96d8b5fbd404c09.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/39/4b/04/394b04db875eac11a49f2b3c60aeb7bca06173ea.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/30/65/fc/3065fc96e4d57ab6b97849a68f3a4369cd57f9b7.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/4a/c4/48/4ac4484b4befb8902c445f5cf2cf6c57be6eaf19.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/76/8a/c2/768ac2d4197af14fa908976666ff396fc209eee9.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/b5/8e/50/b58e507d22a1d4a4ab66048004bdcfdc562c95dc.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/61/d7/8b/61d78b5c77851b237f964c7bb9330f2afb6f2073.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/5e/22/5e/5e225e0f18233b3efde44ff57b7679eb606f57b3.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/b2/71/6f/b2716f8d893ef8038c4ec834c9fd119cc9be6665.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/d5/fd/48/d5fd48c0b183589d1e6efa4ebdda8e89425cb783.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/82/76/3a/82763a3203c9cdccc5fb0b24e2dc8befd2c02ff1.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/e7/ae/e6/e7aee6ddb3db9b5564697da2f9c35c154597e728.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/77/4f/b1/774fb12604107bf6e3cc4d08b7a9281dbcf2a924.jpg?rule=ad-large",
      "https://img.leboncoin.fr/api/v1/lbcpb1/images/76/f2/40/76f24009c425dfd227063e6c2c563b696dd7fb82.jpg?rule=ad-large"
    ]
  },
  "attributes": [
    {
      "key": "activity_sector",
      "value": "1",
      "values": [
        "1"
      ],
      "value_label": "1",
      "generic": false
    },
    {
      "key": "brand",
      "value": "Volkswagen",
      "values": [
        "Volkswagen"
      ],
      "key_label": "Marque",
      "value_label": "Volkswagen",
      "generic": false
    },
    {
      "key": "model",
      "value": "Golf",
      "values": [
        "Golf",
        "model_all"
      ],
      "key_label": "Modèle",
      "value_label": "Golf",
      "generic": false
    },
    {
      "key": "u_car_brand",
      "value": "VOLKSWAGEN",
      "values": [
        "VOLKSWAGEN"
      ],
      "key_label": "Marque",
      "value_label": "VOLKSWAGEN",
      "generic": true
    },
    {
      "key": "u_car_model",
      "value": "VOLKSWAGEN_Golf",
      "values": [
        "VOLKSWAGEN_Golf",
        "VOLKSWAGEN_model_all"
      ],
      "key_label": "Modèle",
      "value_label": "Golf",
      "generic": true
    },
    {
      "key": "regdate",
      "value": "2022",
      "values": [
        "2022"
      ],
      "key_label": "Année modèle",
      "value_label": "2022",
      "generic": true,
      "display_ad_card": true
    },
    {
      "key": "mileage",
      "value": "20000",
      "values": [
        "20000"
      ],
      "key_label": "Kilométrage",
      "value_label": "20000 km",
      "value_label_reader": "20000 Kilomètres",
      "generic": true,
      "display_ad_card": true
    },
    {
      "key": "fuel",
      "value": "1",
      "values": [
        "1"
      ],
      "key_label": "Énergie",
      "value_label": "Essence",
      "generic": true,
      "display_ad_card": true
    },
    {
      "key": "gearbox",
      "value": "2",
      "values": [
        "2"
      ],
      "key_label": "Boîte de vitesse",
      "value_label": "Automatique",
      "generic": true,
      "display_ad_card": true
    },
    {
      "key": "u_car_version",
      "value": "Golf 2.0 TSI 300ch GTI Clubsport DSG7",
      "values": [
        "Golf 2.0 TSI 300ch GTI Clubsport DSG7"
      ],
      "key_label": "Version Constructeur",
      "value_label": "Golf 2.0 TSI 300ch GTI Clubsport DSG7",
      "generic": true
    },
    {
      "key": "issuance_date",
      "value": "01/2022",
      "values": [
        "01/2022"
      ],
      "key_label": "Date de première mise en circulation",
      "value_label": "01/2022",
      "generic": true
    },
    {
      "key": "vehicle_type",
      "value": "berline",
      "values": [
        "berline"
      ],
      "key_label": "Type de véhicule",
      "value_label": "Berline",
      "generic": true
    },
    {
      "key": "vehicule_color",
      "value": "blanc",
      "values": [
        "blanc"
      ],
      "key_label": "Couleur",
      "value_label": "Blanc",
      "generic": true
    },
    {
      "key": "horsepower",
      "value": "19",
      "values": [
        "19"
      ],
      "key_label": "Puissance fiscale",
      "value_label": "19 Cv",
      "value_label_reader": "19 Chevaux",
      "generic": true
    },
    {
      "key": "vehicle_vsp",
      "value": "avecpermis",
      "values": [
        "avecpermis"
      ],
      "key_label": "Permis",
      "value_label": "Avec permis",
      "generic": true
    },
    {
      "key": "recent_used_vehicle",
      "value": "false",
      "values": [
        "false"
      ],
      "value_label": "false",
      "generic": false
    },
    {
      "key": "has_visibility_option",
      "value": "true",
      "values": [
        "true"
      ],
      "value_label": "true",
      "generic": false
    },
    {
      "key": "store_logo",
      "value": "https://img.leboncoin.fr/api/v1/lbcpb1/images/27/19/11/271911006099699.jpg?rule=bo-thumb",
      "values": [
        "https://img.leboncoin.fr/api/v1/lbcpb1/images/27/19/11/271911006099699.jpg?rule=bo-thumb"
      ],
      "value_label": "https://img.leboncoin.fr/api/v1/lbcpb1/images/27/19/11/271911006099699.jpg?rule=bo-thumb",
      "generic": false
    },
    {
      "key": "store_name",
      "value": "EMPIRE AUTO",
      "values": [
        "EMPIRE AUTO"
      ],
      "value_label": "EMPIRE AUTO",
      "generic": false
    },
    {
      "key": "online_store_id",
      "value": "5810",
      "values": [
        "5810"
      ],
      "value_label": "5810",
      "generic": false
    },
    {
      "key": "custom_ref",
      "value": "3886",
      "values": [
        "3886"
      ],
      "key_label": "Référence",
      "value_label": "3886",
      "generic": true
    },
    {
      "key": "is_import",
      "value": "true",
      "values": [
        "true"
      ],
      "value_label": "true",
      "generic": false
    },
    {
      "key": "old_price",
      "value": "42990",
      "values": [
        "42990"
      ],
      "value_label": "42990",
      "generic": false
    },
    {
      "key": "vehicle_history_report_status",
      "value": "broken",
      "values": [
        "broken"
      ],
      "value_label": "broken",
      "generic": false
    },
    {
      "key": "argus_object_id",
      "value": "2539836",
      "values": [
        "2539836"
      ],
      "value_label": "2539836",
      "generic": false
    },
    {
      "key": "spare_parts_availability",
      "value": "non_renseignee",
      "values": [
        "non_renseignee"
      ],
      "key_label": "Durée de disponibilité des pièces détachées",
      "value_label": "Non renseignée",
      "generic": true
    },
    {
      "key": "licence_plate_available",
      "value": "true",
      "values": [
        "true"
      ],
      "value_label": "true",
      "generic": false
    }
  ],
  "location": {
    "country_id": "FR",
    "region_id": "15",
    "region_name": "Lorraine",
    "department_id": "88",
    "department_name": "Vosges",
    "city_label": "Golbey 88190",
    "city": "Golbey",
    "zipcode": "88190",
    "lat": 48.19756,
    "lng": 6.43886,
    "source": "city",
    "is_shape": true,
    "feature": {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "coordinates": [
          6.43886,
          48.19756
        ]
      },
      "properties": null
    }
  },
  "owner": {
    "store_id": "236560",
    "user_id": "35f9e6bd-b741-4cd2-8692-b6f900e36e8e",
    "type": "pro",
    "name": "Empire auto",
    "siren": "539049130",
    "no_salesmen": true,
    "activity_sector": "1"
  },
  "options": {
    "has_option": false,
    "booster": false,
    "photosup": false,
    "urgent": false,
    "gallery": false,
    "sub_toplist": false,
    "continuous_top_ads": false,
    "highlight": false
  },
  "has_phone": true,
  "similar": null,
  "counters": {},
  "search_query": "golf 8 gti",
  "scraped_at": "2025-07-09T03:57:24.505034+00:00",
  "scraped_at_timestamp": 1752033444,
  "data_source": "search",
  "actor_run_id": "run_id",
  "actor_input_hash": "input_hash",
  "condition": "Très bon état",
  "is_shippable": true,
  "price_euros": 39990.0,
  "location_summary": "Golbey (88190)"
}
```

The `attributes` array may differ depending on the type of ad scraped. Phone ads will also include `phone_brand` and `phone_model`. Ads with an ongoing purchase show `status: "purchase_pending"` and `transaction_status: "pending"`.

#### Seller Profile (included when available)

Each ad may include a `seller` object with enriched profile data fetched from the seller's public profile:

```json
{
  "seller": {
    "id": "35f9e6bd-b741-4cd2-8692-b6f900e36e8e",
    "name": "Empire auto",
    "type": "pro",
    "registered_at": "2020-03-15",
    "location": "Vosges",
    "total_ads": 47,
    "profile_url": "https://www.leboncoin.fr/boutique/35f9e6bd-b741-4cd2-8692-b6f900e36e8e",
    "profile_picture_url": "https://img.leboncoin.fr/api/v1/.../profile/pictures/default?rule=pp-large",
    "description": "Garage automobile spécialisé dans les véhicules d'occasion toutes marques.",
    "feedback": {
      "score": 4.35,
      "score_raw": 0.87,
      "count": 124,
      "categories": {
        "communication": 0.91,
        "package": 0.85,
        "product": 0.88,
        "recommendation": 0.84,
        "user_attention": 0.87
      }
    },
    "reply": {
      "rate_percent": 95,
      "time_minutes": 30,
      "time_text": "Répond généralement en moins d'une heure"
    },
    "presence": {
      "status": "ONLINE",
      "last_activity": "2026-03-05T08:15:00Z"
    },
    "badges": ["VerifiedPhoneNumber", "VerifiedIdentity"],
    "pro": {
      "store_id": 5810,
      "store_name": "Empire auto",
      "siren": "539049130",
      "siret": "53904913000012",
      "sector": "1",
      "active_since": "2020-03-15",
      "website_url": "https://www.empire-auto.fr",
      "slogan": "Votre spécialiste automobile à Golbey",
      "opening_hours": "Lun-Sam 9h-18h",
      "logo_url": "https://img.leboncoin.fr/api/v1/.../logo?rule=bo-large",
      "address": {
        "street": "1 Rue des Chaudronniers",
        "city": "Golbey",
        "zipcode": "88190"
      },
      "rating": {
        "value": 4.5,
        "count": 89,
        "source": "google",
        "url": "https://maps.google.com/..."
      }
    }
  }
}
```

For private sellers, the `pro` field is `null`. The `feedback`, `reply`, and `description` fields may also be `null` if the seller has no reviews, reply stats, or bio.

### Advanced Usage

#### Used cars with exact criteria

For car listings, [Leboncoin Voitures](https://apify.com/clearpath/leboncoin-voitures) filters by make, model, fuel, gearbox, year, mileage and power, and adds a typed `vehicle` block to every ad: mileage in km, power, and leboncoin's own price rating.

#### Market Research Across Regions

```json
{
  "searchQuery": "appartement 3 pièces",
  "category": "8", // Immobilier
  "location": "Île-de-France",
  "radius": 0,
  "adLimit": 1000,
  "price_min_filter": 200000,
  "price_max_filter": 500000,
  "sortBy": "price"
}
```

#### Professional Seller Analysis

```json
{
  "searchQuery": "MacBook Pro",
  "category": "14", // Électronique
  "seller_type": "pro",
  "adLimit": 200,
  "shippable": true
}
```

#### Geographic Price Comparison

```json
{
  "searchQuery": "Tesla Model 3",
  "category": "1", // Véhicules
  "location": "Marseille 13",
  "radius": 100,
  "adLimit": 50,
  "sortBy": "price"
}
```

### 🔄 Monitor mode with a search URL

Paste one valid leboncoin.fr search URL and set `mode` to `monitor`. The URL defines the complete search; manual fields are ignored, and results are always checked newest-first.

#### How it works

| Run | Dataset and billing | Notifications |
|---|---|---|
| First run | Creates a bounded baseline and returns up to `adLimit` baseline ads. Returned ads are billed normally. | Silent |
| Later run, no new ads | Returns an unbilled monitor summary. | Silent |
| Later run, new ads | Returns and bills up to `adLimit` new ads. Overflow remains pending only while it stays visible in the bounded newest-first scan. | One webhook batch and/or Telegram alerts for the delivered ads |

Ads successfully committed to the history are not delivered again. History has no automatic expiry and is separate for each actor and canonical search URL. Reordering URL parameters preserves it; changing a material filter creates another history. No public reset is currently available.

The first baseline is deliberately bounded. An older listing outside that scan can later appear new if it moves into the scanned results. A pending candidate is dropped after three complete scans in which it is absent. Monitoring is best-effort: zero missed listings and eventual delivery are not guaranteed. Delivery is retry-safe but not guaranteed exactly once: if a run stops after delivery but before confirmation, the same ad can appear again. Deduplicate rows and webhook ads by (`attempt_id`, `list_id`). `event_id` deduplicates only an identical batch; a capacity split can produce a different `event_id` for the same attempt.

Webhook payloads contain `attempt_id`, `event_id`, `count`, `total_detected`, and `truncated`. A webhook is attempted only when ads are delivered, never for initialization or no-new runs. Delivery is best-effort: any retry happens only during that run, and a failed notification is not replayed automatically by later runs.

#### Setting up Monitor Mode

```json
{
  "searchUrl": "https://www.leboncoin.fr/recherche?category=2&locations=Troyes__48.29734_4.0744_9255&price=500-3500&owner_type=private",
  "mode": "monitor",
  "adLimit": 100,
  "webhookUrl": "https://hook.eu1.make.com/abc123",
  "telegramUserId": "123456789"
}
```

#### Setting up Telegram notifications

Get instant notifications for new listings:

```json
{
  "searchQuery": "vélo électrique",
  "location": "Lyon 69",
  "mode": "monitor",
  "telegramUserId": "123456789",
  "telegramNotificationLimit": 5
}
```

- Get your Telegram user ID from @userinfobot
- Receive instant notifications with ad details
- Includes direct links to leboncoin listings
- Customizable notification limits to prevent spam

**⚠️ Before notifications will work, you must send a message to the notification bot first:**

1. **Find the bot** - Search for `@clearpath_api_bot` on Telegram
2. **Send any message** - Type `/start` or any text to initiate contact
3. **Grant permission** - Done! This allows the bot to send you notifications

Without this initial contact, Telegram's privacy settings prevent the bot from sending you messages.

Here's a screenshot of how it looks in Telegram:

<a href="https://i.postimg.cc/76SgSGRP/leboncoin-api-pro-telegram.png" title="Leboncoin.fr Scraper Telegram notification" target="_blank">
    <img style="max-width: 400px" src="https://i.postimg.cc/76SgSGRP/leboncoin-api-pro-telegram.png" alt="Leboncoin.fr Scraper Telegram notification" />
</a>

#### Monitor Mode Use Cases

##### Deal Hunting

```json
{
  "searchQuery": "Nintendo Switch OLED",
  "category_id": "43", // Using specific subcategory ID
  "mode": "monitor",
  "price_max_filter": 250,
  "telegramUserId": "123456789"
}
```

##### Regional Market Monitoring

```json
{
  "searchQuery": "iPhone 16",
  "location": "Île-de-France",
  "radius": 50,
  "mode": "monitor",
  "seller_type": "pro"
}
```

##### Price Alert System

```json
{
  "searchQuery": "MacBook Pro M3",
  "category_id": "15", // Using specific subcategory ID
  "mode": "monitor",
  "price_min_filter": 1500,
  "price_max_filter": 2200,
  "telegramUserId": "123456789"
}
```

#### Important: Bot Permission Setup

Monitor mode pairs perfectly with automated scheduling - set up Actor Tasks to run every 5-15 minutes for optimal new listing detection across France's largest marketplace.

### Pricing

**Pay per record, from $1.49 / 1,000 ads**

| What you are billed for | Price |
|---|---|
| Run started | $0.009 per run |
| Ad scraped | $1.49 / 1,000 ($1.29 Silver, $0.99 Gold and above) |
| Ad fetched from a direct ad URL | $4.99 / 1,000 |
| Seller profile | $2.99 / 1,000 profiles |
| Phone number | $9.99 / 1,000 numbers |

- ✅ **Pay only for what you scrape** - no subscription, no monthly minimum
- ✅ **Unlimited runs** - run the actor as often as required
- ✅ **All features included** - monitor mode, Telegram notifications, advanced filters
- ✅ **No fixed search result cap**

#### Why Per-Record Pricing Works Better

**You pay for output, not for time** - a month where you scrape nothing costs nothing.

**Best for regular users:**

- **Market research firms** - Continuous monitoring without worrying about per-ad costs
- **E-commerce businesses** - Track competitor pricing daily without budget concerns
- **Real estate professionals** - Monitor listings across France without usage anxiety
- **Researchers** - Collect comprehensive datasets for academic studies

**Memory-optimized architecture** keeps platform costs minimal - our 256MB actor runs efficiently compared to standard 2-4GB scrapers.

#### Free Allowance

- 1,000 ads and 25 phone numbers free
- Full feature access
- No credit card required to start

### Technical Requirements

- **Memory**: 128MB - 256MB
- **Proxy**: French residential proxies highly recommended for best results
- **Reliability**: Built-in request handling for stable, large-scale collection
- **Location service**: Automatic French location lookup and validation

### Proxy Configuration

French residential proxies are strongly recommended for optimal performance:

```json
{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "FR"
  }
}
```

You can also configure your own proxies in the UI or programatically:

```json
{
  "proxyConfiguration": {
    "useApifyProxy": false,
    "proxyUrls": ["http://username:password@proxy.domain.com:8888"]
  }
}
```

### Output Format

The scraper returns structured JSON data for each ad including:

- **Basic info**: Title, description, price, publication date
- **Location**: City, postal code, coordinates, region
- **Seller details**: Type (private/professional), contact info
- **Product details**: Condition, brand, model (category-specific)
- **Images**: URLs to all available photos
- **Metadata**: Category, filters applied, scraping timestamp

### Data Export

Export results in multiple formats:

- **JSON** - Structured data for programmatic analysis
- **CSV** - Spreadsheet analysis and reporting
- **Excel** - Advanced data manipulation and visualization

### Automation & Integration

Set up automated data collection:

- **Scheduled runs** - Daily, weekly, or monthly market monitoring
- **Webhooks** - Real-time notifications for new data
- **API integration** - Connect with existing business intelligence tools
- **Price alert systems** - Monitor specific products or price thresholds

### Best Practices

#### For Optimal Performance

- Use French residential proxies for consistent access
- Limit memory to 128-256MB to control costs
- Implement small delays between runs
- Use specific categories rather than searching all categories

#### For Market Research

- Combine multiple location searches for regional analysis
- Use price filtering to focus on relevant market segments
- Sort by time to track recent market activity
- Export to CSV/Excel for deeper analysis

#### For Business Intelligence

- Set up scheduled runs for consistent data collection
- Use webhook notifications for real-time market changes
- Combine with external data sources for comprehensive analysis
- Implement data validation and cleaning processes

### Unlimited Scraping & Trial Limits

**Search result limit**: Choose a positive `adLimit` (minimum 10). Searches have no fixed actor-imposed result cap; collection stops at your requested count, available results, or run budget.

**Free allowance**: **1,000 ads and 25 phone numbers** per account. This applies to both search queries and direct ad URL processing. Perfect for evaluating the actor before paying anything.

### FAQ

**Q: What data is extracted from each ad?** A: Complete ad information including title, description, price, location, seller details, condition, images, and category-specific attributes.

**Q: How many ads can I extract?** A: Choose a positive `adLimit` (minimum 10). Searches have no fixed actor-imposed result cap; collection stops at your requested count, available results, or run budget.

**Q: Is there a monthly usage limit?** A: No. There is no monthly cap and no rate limit — you pay per ad scraped, so scrape as much as you need.

**Q: Can I search specific regions of France?** A: Yes, use city names, postal codes, or regions like "Île-de-France" with radius filtering for precise geographic targeting.

**Q: Is the data real-time?** A: Data reflects current listings on Leboncoin at extraction time. For real-time monitoring, schedule frequent runs.

**Q: What about rate limiting?** A: The scraper includes intelligent delays and proxy rotation. French residential proxies are essential for reliable operation.

**Q: Can I monitor specific products or prices?** A: Yes, combine scheduled runs with webhooks to create automated monitoring and alert systems.

**Q: What formats can I export data in?** A: JSON, CSV, and Excel formats are available directly from Apify, or access via API for custom integrations.

### Getting Started Guide

#### **Step 1: Set Up Your Account**

1. **Sign up for Apify** - Create your free account
2. **No credit card required** for initial testing
3. **Free tier included** to get started

#### **Step 2: Configure Your Search**

1. **Define your keywords** - What products or services to search for
2. **Set location parameters** - Choose cities, regions, or all of France
3. **Apply filters** - Price range, categories, seller type, etc.
4. **Set extraction limits** - Control volume and costs

#### **Step 3: Run and Monitor**

1. **Start extraction** - Begin data collection
2. **Monitor progress** - Track extraction in real-time
3. **Download results** - Export as JSON, CSV, or Excel
4. **Schedule automation** - Set up recurring data collection

#### **Step 4: Integrate and Scale**

1. **Use Apify API** - Integrate with existing systems
2. **Set up webhooks** - Get real-time notifications
3. **Build dashboards** - Visualize market trends
4. **Scale operations** - Handle enterprise-level data needs

### Support

- 📧 **Email**: max@mapa.slmail.me
- 📖 **Found a bug?**: Use the issues tab and describe your issue (I'll respond asap)
- 🔧 **Feature Requests**: Use email or the issues tab if you need more features

### Legal Compliance

This scraper extracts publicly available data from Leboncoin.fr. Users must comply with Leboncoin's terms of service, French data protection laws (RGPD/GDPR), and applicable regulations for data collection and usage.

***

[🚀 \*\*Ready to extract French marketplace data? Start your market research today!](https://console.apify.com/actors/nfWPDHJzRb80PsNo1)\*\*

### French README

## Scraper Leboncoin | Extraction Illimitée de Données d'Annonces Classées Françaises

Extrayez des annonces classées depuis Leboncoin.fr, la plateforme marketplace leader en France, grâce à ce scraper Python fiable conçu pour les études de marché, la surveillance des prix et l'intelligence d'affaires. Choisissez le nombre d'annonces à collecter, sans plafond fixe de résultats de recherche imposé par cet acteur.

**Nouveau : Extraction de numéros de téléphone** — récupérez les numéros des vendeurs pour jusqu'à 100 annonces par exécution avec `includePhone`.

### 🆓 Offre de découverte

Chaque compte dispose de **1 000 annonces et 25 numéros de téléphone offerts**, sans carte de
crédit, pour évaluer la qualité et la couverture des données avant de payer quoi que ce soit.

### Démarrage Rapide

#### Configuration de Recherche Basique

```json
{
  "searchQuery": "iPhone 16 Plus",
  "excludeKeywords": "Pro, Max, coque",
  "category": "14", // Électronique (catégorie principale)
  "location": "Paris",
  "adLimit": 100,
  "price_min_filter": 500,
  "price_max_filter": 1200
}
```

#### Étude de Marché Basée sur la Localisation

```json
{
  "searchQuery": "vélo électrique",
  "location": "Lyon 69",
  "radius": 50,
  "adLimit": 500,
  "sortBy": "price"
}
```

#### Extraction d'URL d'Annonce Directe

```json
{
  "adDetailUrls": [
    "https://www.leboncoin.fr/ad/telephonie/3009018573",
    "https://www.leboncoin.fr/ad/informatique/3009018574"
  ]
}
```

### Paramètres d'Entrée

| Paramètre              | Type    | Description                                     | Défaut      |
| ---------------------- | ------- | ----------------------------------------------- | ----------- |
| `query`                | String  | Mots-clés de recherche                          | Optionnel   |
| `excludeKeywords`      | String  | Mots à exclure des titres, séparés par virgule (ex: `Pro, Max, coque`) | Optionnel   |
| `adDetailUrls`         | Array   | URLs d'annonces spécifiques à extraire         | Optionnel   |
| `includePhone`         | Boolean | Récupérer les numéros de téléphone (nécessite URLs + compte leboncoin) | false |
| `email`                | String  | Email de votre compte leboncoin (pour les téléphones) | Optionnel |
| `password`             | String  | Mot de passe leboncoin (chiffré, jamais visible dans les logs) | Optionnel |
| `twoFactorCode`        | String  | Code de vérification SMS/email pour les téléphones. À utiliser au deuxième lancement si leboncoin demande un code | Optionnel |
| `category`             | String  | ID de catégorie principale (voir catégories ci-dessous) | "0" (Tout)  |
| `category_id`          | String  | ID de sous-catégorie spécifique (priorité sur category) | Optionnel   |
| `location`             | String  | Ville, code postal, ou région                   | Toute France |
| `mode`                 | String  | Standard extrait les résultats actuels. Surveillance crée une référence bornée facturée et silencieuse, puis livre les nouveautés au mieux. | "standard"  |
| `adLimit`              | Integer | Nombre maximum d'annonces à extraire (0 = illimité) | 20     |
| `sortBy`               | String  | Critère de tri (relevance/time/price)          | "relevance" |
| `radius`               | Integer | Rayon de recherche en km autour de la localisation | 5       |
| `price_min_filter`     | Integer | Prix minimum en euros                           | Optionnel   |
| `price_max_filter`     | Integer | Prix maximum en euros                           | Optionnel   |
| `search_in_title_only` | Boolean | Rechercher uniquement dans les titres d'annonces | false     |
| `seller_type`          | String  | Filtrer par vendeur (all/pro/private)          | "all"       |
| `urgent`               | Boolean | Afficher uniquement les annonces urgentes      | false       |
| `donation`             | Boolean | Afficher uniquement les annonces de don (gratuit) | false    |
| `shippable`            | Boolean | Inclure les articles expédiables               | true        |
| `telegramUserId`       | String  | Optionnel: Votre ID utilisateur Telegram pour les notifications (utilisé uniquement en mode surveillance). Obtenez-le depuis @userinfobot | Optionnel |
| `telegramNotificationLimit` | Integer | Nombre maximum de notifications Telegram par exécution (évite le spam) | 10 |
| `proxyConfiguration`   | Object  | Paramètres proxy (proxy résidentiel français recommandé) | Optionnel |

#### Catégories Disponibles

[voir ci-dessus](#available-categories)

### Données de Sortie

[voir ci-dessus](#output)

Le tableau `attributes` peut différer selon le type d'annonce extraite.

### Utilisation Avancée

#### Étude de Marché à Travers les Régions

```json
{
  "searchQuery": "appartement 3 pièces",
  "category": "8", // Immobilier
  "location": "Île-de-France",
  "radius": 0,
  "adLimit": 1000,
  "price_min_filter": 200000,
  "price_max_filter": 500000,
  "sortBy": "price"
}
```

#### Analyse des Vendeurs Professionnels

```json
{
  "searchQuery": "MacBook Pro",
  "category": "14", // Électronique
  "seller_type": "pro",
  "adLimit": 200,
  "shippable": true
}
```

#### Comparaison de Prix Géographique

```json
{
  "searchQuery": "Tesla Model 3",
  "category": "1", // Véhicules
  "location": "Marseille 13",
  "radius": 100,
  "adLimit": 50,
  "sortBy": "price"
}
```

### 🔄 Mode Surveillance avec une URL de recherche

Collez une URL de recherche leboncoin.fr valide et choisissez `mode: "monitor"`. L'URL définit tous les filtres et la surveillance impose l'ordre du plus récent au plus ancien.

| Exécution | Dataset et facturation | Notifications |
|---|---|---|
| Première | Crée une référence bornée et retourne jusqu'à `adLimit` annonces, facturées normalement. | Aucune |
| Suivante, aucune nouveauté | Retourne un résumé non facturé. | Aucune |
| Suivante, nouveautés | Retourne et facture jusqu'à `adLimit` annonces. Le surplus reste en attente uniquement tant qu'il apparaît dans le scan borné, du plus récent au plus ancien. | Webhook et/ou Telegram uniquement pour les annonces livrées |

L'historique persiste sans expiration automatique pour chaque recherche canonique. Réordonner les paramètres conserve l'historique ; changer un filtre important en crée un autre. Aucune réinitialisation publique n'est actuellement disponible.

La première référence étant bornée, une ancienne annonce hors du scan peut apparaître plus tard comme nouvelle. Une annonce en attente est abandonnée après trois scans complets où elle est absente. La surveillance est au mieux : ni zéro annonce manquée ni la livraison finale ne sont garantis. La livraison n'est pas garantie exactement une fois : après une interruption ambiguë, dédupliquez par (`attempt_id`, `list_id`). `event_id` identifie uniquement un lot identique ; une capacité différente peut créer un autre `event_id`.

Les notifications webhook sont au mieux : elles sont tentées uniquement quand des annonces sont livrées, avec une nouvelle tentative limitée à l'exécution courante. Un échec n'est pas rejoué automatiquement lors d'une exécution ultérieure. Le lot contient `attempt_id`, `event_id`, `count`, `total_detected` et `truncated`.

#### Configuration du Mode Surveillance

```json
{
  "searchUrl": "https://www.leboncoin.fr/recherche?category=2&locations=Troyes__48.29734_4.0744_9255&price=500-3500&owner_type=private",
  "mode": "monitor",
  "adLimit": 100,
  "webhookUrl": "https://hook.eu1.make.com/abc123",
  "telegramUserId": "123456789"
}
```

#### Configuration des notifications Telegram

Obtenez des notifications instantanées pour les nouvelles annonces:

```json
{
  "searchQuery": "vélo électrique",
  "location": "Lyon 69",
  "mode": "monitor",
  "telegramUserId": "123456789",
  "telegramNotificationLimit": 5
}
```

- Obtenez votre ID utilisateur Telegram depuis @userinfobot
- Recevez des notifications instantanées avec les détails de l'annonce
- Inclut des liens directs vers les annonces leboncoin
- Limites de notifications personnalisables pour éviter le spam

**⚠️ Avant que les notifications fonctionnent, vous devez d'abord envoyer un message au bot de notification:**

1. **Trouvez le bot** - Recherchez `@clearpath_api_bot` sur Telegram
2. **Envoyez un message** - Tapez /start ou n'importe quel texte pour initier le contact
3. **Accordez la permission** - Terminé ! Cela permet au bot de vous envoyer des notifications

Sans ce contact initial, les paramètres de confidentialité de Telegram empêchent le bot de vous envoyer des messages.

Voici une capture d'écran de l'apparence dans Telegram:

<a href="https://i.postimg.cc/76SgSGRP/leboncoin-api-pro-telegram.png" title="Notification Telegram du Scraper Leboncoin.fr" target="_blank">
    <img style="max-width: 400px" src="https://i.postimg.cc/76SgSGRP/leboncoin-api-pro-telegram.png" alt="Notification Telegram du Scraper Leboncoin.fr" />
</a>

#### Important: Configuration des Permissions du Bot

Le mode surveillance se marie parfaitement avec la planification automatisée - configurez des Tâches d'Acteur pour s'exécuter toutes les 5-15 minutes pour une détection optimale des nouvelles annonces sur le plus grand marketplace de France.

### Tarification

**Paiement à l'usage, à partir de 1,49 $ / 1 000 annonces**

| Ce qui est facturé | Prix |
|---|---|
| Démarrage du run | 0,009 $ par exécution |
| Annonce extraite | 1,49 $ / 1 000 (1,29 $ Silver, 0,99 $ Gold et plus) |
| Annonce via URL directe | 4,99 $ / 1 000 |
| Profil vendeur | 2,99 $ / 1 000 profils |
| Numéro de téléphone | 9,99 $ / 1 000 numéros |

- ✅ **Vous ne payez que ce que vous extrayez** - aucun abonnement, aucun minimum mensuel
- ✅ **Exécutions illimitées** - lancez l'acteur aussi souvent que requis
- ✅ **Toutes les fonctionnalités incluses** - mode surveillance, notifications Telegram, filtres avancés
- ✅ **Aucun plafond fixe de résultats de recherche**

#### Pourquoi la Tarification à l'Usage Fonctionne Mieux

**Vous payez pour des résultats, pas pour du temps** - un mois sans extraction ne coûte rien.

**Idéal pour les utilisateurs réguliers:**

- **Cabinets d'études de marché** - Surveillance continue sans souci des coûts par annonce
- **Entreprises e-commerce** - Suivez les prix des concurrents quotidiennement sans inquiétude budgétaire
- **Professionnels de l'immobilier** - Surveillez les annonces à travers la France sans anxiété d'utilisation
- **Chercheurs** - Collectez des ensembles de données complets pour des études académiques

**Architecture optimisée en mémoire** maintient les coûts de plateforme minimaux - notre acteur 256MB fonctionne efficacement comparé aux scrapers standards de 2-4GB.

#### Offre de découverte

- 1 000 annonces et 25 numéros de téléphone offerts
- Accès complet aux fonctionnalités
- Aucune carte de crédit requise pour commencer

### Exigences Techniques

- **Mémoire** : 128MB - 256MB
- **Proxy** : Proxies résidentiels français fortement recommandés pour de meilleurs résultats
- **Fiabilité** : Gestion intégrée des requêtes pour une collecte stable à grande échelle
- **Service de localisation** : Recherche et validation automatique des localisations françaises

### Configuration Proxy

Les proxies résidentiels français sont fortement recommandés pour des performances optimales :

```json
{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"],
    "apifyProxyCountry": "FR"
  }
}
```

Vous pouvez également configurer vos propres proxies dans l'interface utilisateur ou par programmation :

```json
{
  "proxyConfiguration": {
    "useApifyProxy": false,
    "proxyUrls": ["http://username:password@proxy.domain.com:8888"]
  }
}
```

### Format de Sortie

Le scraper retourne des données JSON structurées pour chaque annonce incluant :

- **Informations de base** : Titre, description, prix, date de publication
- **Localisation** : Ville, code postal, coordonnées, région
- **Détails vendeur** : Type (particulier/professionnel), informations de contact
- **Détails produit** : État, marque, modèle (spécifique à la catégorie)
- **Images** : URLs vers toutes les photos disponibles
- **Métadonnées** : Catégorie, filtres appliqués, horodatage d'extraction

### Export de Données

Exportez les résultats en plusieurs formats :

- **JSON** - Données structurées pour l'analyse programmatique
- **CSV** - Analyse et rapports en feuille de calcul
- **Excel** - Manipulation et visualisation avancées des données

### Automatisation et Intégration

Configurez la collecte de données automatisée :

- **Exécutions programmées** - Surveillance de marché quotidienne, hebdomadaire ou mensuelle
- **Webhooks** - Notifications en temps réel pour les nouvelles données
- **Intégration API** - Connexion avec les outils d'intelligence d'affaires existants
- **Systèmes d'alerte prix** - Surveillance de produits spécifiques ou de seuils de prix

### Bonnes Pratiques

#### Pour des Performances Optimales

- Utilisez des proxies résidentiels français pour un accès cohérent
- Limitez la mémoire à 128-256MB pour contrôler les coûts
- Implémentez de petits délais entre les exécutions
- Utilisez des catégories spécifiques plutôt que de rechercher dans toutes les catégories

#### Pour l'Étude de Marché

- Combinez plusieurs recherches de localisation pour l'analyse régionale
- Utilisez le filtrage par prix pour vous concentrer sur les segments de marché pertinents
- Triez par temps pour suivre l'activité récente du marché
- Exportez vers CSV/Excel pour une analyse plus approfondie

#### Pour l'Intelligence d'Affaires

- Configurez des exécutions programmées pour une collecte de données cohérente
- Utilisez les notifications webhook pour les changements de marché en temps réel
- Combinez avec des sources de données externes pour une analyse complète
- Implémentez des processus de validation et de nettoyage des données

### Extraction Illimitée et Limites d'Essai

**Limite des résultats de recherche** : Choisissez une valeur positive pour `adLimit` (minimum 10). Les recherches n'ont pas de plafond fixe imposé par cet acteur ; la collecte s'arrête au nombre demandé, aux résultats disponibles ou au budget de l'exécution.

**Offre de découverte** : **1 000 annonces et 25 numéros de téléphone** par compte. Cela s'applique à la fois aux requêtes de recherche et au traitement d'URLs d'annonces directes. Parfait pour évaluer l'acteur avant de payer quoi que ce soit.

### FAQ

**Q : Quelles données sont extraites de chaque annonce ?** R : Informations complètes d'annonce incluant titre, description, prix, localisation, détails vendeur, état, images, et attributs spécifiques à la catégorie.

**Q : Combien d'annonces puis-je extraire ?** R : Choisissez une valeur positive pour `adLimit` (minimum 10). Les recherches n'ont pas de plafond fixe imposé par cet acteur ; la collecte s'arrête au nombre demandé, aux résultats disponibles ou au budget de l'exécution.

**Q : Y a-t-il une limite d'utilisation mensuelle ?** R : Non. Aucun plafond mensuel, aucune limite de fréquence — vous payez à l'annonce extraite, extrayez donc autant que nécessaire.

**Q : Puis-je rechercher dans des régions spécifiques de France ?** R : Oui, utilisez les noms de villes, codes postaux, ou régions comme "Île-de-France" avec filtrage par rayon pour un ciblage géographique précis.

**Q : Les données sont-elles en temps réel ?** R : Les données reflètent les annonces actuelles sur Leboncoin au moment de l'extraction. Pour une surveillance en temps réel, programmez des exécutions fréquentes.

**Q : Qu'en est-il de la limitation de taux ?** R : Le scraper inclut des délais intelligents et une rotation de proxy. Les proxies résidentiels français sont essentiels pour un fonctionnement fiable.

**Q : Puis-je surveiller des produits ou prix spécifiques ?** R : Oui, combinez des exécutions programmées avec des webhooks pour créer des systèmes de surveillance et d'alerte automatisés.

**Q : Dans quels formats puis-je exporter les données ?** R : Les formats JSON, CSV et Excel sont disponibles directement depuis Apify, ou accès via API pour des intégrations personnalisées.

### Guide de Démarrage

#### **Étape 1 : Configurez Votre Compte**

1. **Inscrivez-vous sur Apify** - Créez votre compte gratuit
2. **Aucune carte de crédit requise** pour les tests initiaux
3. **Niveau gratuit inclus** pour commencer

#### **Étape 2 : Configurez Votre Recherche**

1. **Définissez vos mots-clés** - Quels produits ou services rechercher
2. **Définissez les paramètres de localisation** - Choisissez villes, régions, ou toute la France
3. **Appliquez les filtres** - Gamme de prix, catégories, type de vendeur, etc.
4. **Définissez les limites d'extraction** - Contrôlez le volume et les coûts

#### **Étape 3 : Exécutez et Surveillez**

1. **Démarrez l'extraction** - Commencez la collecte de données
2. **Surveillez les progrès** - Suivez l'extraction en temps réel
3. **Téléchargez les résultats** - Exportez en JSON, CSV, ou Excel
4. **Programmez l'automatisation** - Configurez la collecte de données récurrente

#### **Étape 4 : Intégrez et Mettez à l'Échelle**

1. **Utilisez l'API Apify** - Intégrez avec les systèmes existants
2. **Configurez les webhooks** - Obtenez des notifications en temps réel
3. **Construisez des tableaux de bord** - Visualisez les tendances du marché
4. **Mettez à l'échelle les opérations** - Gérez les besoins de données au niveau entreprise

### Support

- 📧 **Email** : max@mapa.slmail.me
- 📖 **Trouvé un bug ?** : Utilisez l'onglet issues et décrivez votre problème (je répondrai rapidement)
- 🔧 **Demandes de fonctionnalités** : Utilisez l'email ou l'onglet issues si vous avez besoin de plus de fonctionnalités

### Conformité Légale

Ce scraper extrait des données publiquement disponibles depuis Leboncoin.fr. Les utilisateurs doivent se conformer aux conditions d'utilisation de Leboncoin, aux lois françaises de protection des données (RGPD), et aux réglementations applicables pour la collecte et l'utilisation des données.

***

[🚀 **Prêt à extraire les données du marketplace français ? Commencez votre étude de marché dès aujourd'hui !**](https://console.apify.com/actors/nfWPDHJzRb80PsNo1)

# Actor input Schema

## `adLimit` (type: `integer`):

Nombre maximum d'annonces à extraire. S'applique à tous les modes (URL, mot-clé, URLs d'annonces).

## `includeSeller` (type: `boolean`):

Récupère le profil complet du vendeur : taux de réponse, badges, avis.<br><br>Facturé 2,99 $ / 1 000 profils vendeurs récupérés.<br>Peut ralentir l'exécution au-delà de 100 annonces.

## `searchUrl` (type: `string`):

Collez une seule URL de recherche leboncoin.fr valide. En mode Monitor, l'URL définit tous les filtres, les champs manuels sont ignorés et l'ordre le plus récent est imposé.<br><i>Paste one valid leboncoin.fr search URL. In Monitor mode, it owns all filters, manual fields are ignored, and newest-first order is enforced.</i>

## `adDetailUrls` (type: `array`):

URLs d'annonces individuelles à scraper.<br><br>Prioritaire sur l'URL de recherche et la recherche par mot-clé. Maximum 100 URLs par exécution.

## `searchQuery` (type: `string`):

Recherche par mot-clé. Ignoré si une URL de recherche est fournie.

## `excludeKeywords` (type: `string`):

Mots à exclure des titres, séparés par des virgules.

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

Catégorie principale de recherche.

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

Ville ou département. Vide (ou « Toute la France ») = recherche sur toute la France.<br><br>Exemples : <code>Paris</code>, <code>Lyon 69</code>, <code>Strasbourg 67</code>

## `radius` (type: `integer`):

Rayon autour de la localisation choisie.

## `sortBy` (type: `string`):

Ordre de tri des résultats.

## `price_min_filter` (type: `integer`):

Filtre prix minimum en euros.

## `price_max_filter` (type: `integer`):

Filtre prix maximum en euros.

## `search_in_title_only` (type: `boolean`):

Limite la recherche aux titres d'annonces (ignore le contenu).

## `seller_type` (type: `string`):

Filtrer par type de vendeur.

## `urgent` (type: `boolean`):

Afficher uniquement les annonces marquées « Urgent ».

## `donation` (type: `boolean`):

Afficher uniquement les annonces gratuites.

## `shippable` (type: `boolean`):

Inclut les annonces avec livraison possible.<br><br><b>Attention :</b> si activé avec une localisation, la localisation est ignorée par l'API. Le scraper désactive automatiquement cette option quand une localisation est définie.

## `category_id` (type: `string`):

ID numérique d'une sous-catégorie spécifique. Prioritaire sur la catégorie principale.<br><br>Voir la <a href="https://apify.com/clearpath/leboncoin-api#input-parameters" target="_blank">liste des IDs</a>.

## `includePhone` (type: `boolean`):

Récupère le numéro de téléphone du vendeur pour chaque annonce (recherche ou URLs d'annonces).<br><br>Facturé 9,99 $ / 1 000 numéros récupérés.<br><b>Requis :</b> un compte leboncoin.fr (gratuit).<br>Les identifiants sont chiffrés et jamais stockés.

## `email` (type: `string`):

Email de votre compte leboncoin.fr. Requis si « Numéros de téléphone » est activé.

## `password` (type: `string`):

Mot de passe de votre compte leboncoin.fr. Chiffré, jamais visible dans les logs.

## `twoFactorCode` (type: `string`):

Optionnel. Si leboncoin demande un code de vérification par SMS ou email, lancez d'abord l'acteur sans ce champ pour demander le code. Relancez ensuite avec le dernier code reçu, idéalement dans les 15 minutes.<br><br>Optional. If leboncoin asks for an SMS or email verification code, first run without this field to request the code. Then run again with the latest code, preferably within 15 minutes.

## `mode` (type: `string`):

<b>Standard :</b> extraction classique. <b>Monitor :</b> la première exécution retourne une référence bornée facturée sans notification. Le surplus reste en attente tant qu'il apparaît dans le scan borné, du plus récent au plus ancien, puis est abandonné après trois absences complètes. La livraison est au mieux ; aucune garantie de zéro annonce manquée ou de livraison finale.<br><i>Standard extracts current results. Monitor returns a billed, notification-silent bounded baseline first. Overflow remains pending only while it appears in the bounded newest-first scan, then is dropped after three complete misses. Delivery is best-effort; zero missed listings and eventual delivery are not guaranteed.</i>

## `telegramUserId` (type: `string`):

Votre ID Telegram pour les notifications (mode Monitor uniquement).<br>Obtenez-le via <code>@userinfobot</code> sur Telegram.

## `telegramNotificationLimit` (type: `integer`):

Nombre maximum de notifications Telegram par exécution (anti-spam).

## `webhookUrl` (type: `string`):

URL HTTPS contactée uniquement lorsque des annonces sont livrées. Envoi au mieux, avec nouvelle tentative limitée à l'exécution courante ; un échec n'est pas rejoué plus tard.<br><i>HTTPS URL attempted only when ads are delivered. Best-effort, with retries limited to the current run; failures are not replayed later.</i>

## `webhookSecret` (type: `string`):

Secret optionnel pour signer le corps JSON avec HMAC-SHA256 dans <code>X-Webhook-Signature</code>. Chiffré et masqué.<br><i>Optional secret used to sign the JSON body with HMAC-SHA256. Encrypted and masked.</i>

## `webhookNotificationLimit` (type: `integer`):

Nombre maximum d'annonces dans le lot. <code>truncated: true</code> indique une troncature. Dédupliquez par <code>attempt_id + list_id</code> ; <code>event_id</code> ne couvre qu'un lot identique.<br><i>Maximum ads per batch. <code>truncated: true</code> marks truncation. Deduplicate by <code>attempt_id + list_id</code>; <code>event_id</code> covers only an identical batch.</i>

## Actor input object example

```json
{
  "adLimit": 100,
  "includeSeller": true,
  "searchUrl": "https://www.leboncoin.fr/recherche?category=2&u_car_brand=BMW&fuel=2,6",
  "adDetailUrls": [
    "https://www.leboncoin.fr/ad/accessoires_bagagerie/3009018573"
  ],
  "searchQuery": "iPhone 16 Plus",
  "excludeKeywords": "Pro, Max, coque",
  "category": "0",
  "location": "Paris",
  "radius": 5,
  "sortBy": "relevance",
  "price_min_filter": 100,
  "price_max_filter": 500,
  "search_in_title_only": false,
  "seller_type": "all",
  "urgent": false,
  "donation": false,
  "shippable": true,
  "includePhone": false,
  "mode": "standard",
  "telegramNotificationLimit": 10,
  "webhookUrl": "https://hook.eu1.make.com/abc123",
  "webhookNotificationLimit": 100
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# 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 = {
    "adLimit": 100,
    "searchQuery": "iPhone 16 Plus"
};

// Run the Actor and wait for it to finish
const run = await client.actor("clearpath/leboncoin-api").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 = {
    "adLimit": 100,
    "searchQuery": "iPhone 16 Plus",
}

# Run the Actor and wait for it to finish
run = client.actor("clearpath/leboncoin-api").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 '{
  "adLimit": 100,
  "searchQuery": "iPhone 16 Plus"
}' |
apify call clearpath/leboncoin-api --silent --output-dataset

```

## MCP server setup

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

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/nfWPDHJzRb80PsNo1/builds/7NbredRNg5yjwlZeA/openapi.json
