# Changelog of Leboncoin.fr Scraper (`dz_omar/leboncoin-scraper`) Actor

- **URL**: https://apify.com/dz\_omar/leboncoin-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/dz\_omar/leboncoin-scraper.md

## Changelog

All notable changes to this actor are documented here.

### 2026-07-27

#### Added

- `fetchAdDetails` toggle: optionally retrieve every ad's full **description** text.
  Leboncoin omits descriptions from search results entirely, so this is the only way
  to get them. Billed at a separate, higher rate and only for ads whose description
  was actually retrieved.
- **`raw` field on every item** — leboncoin's complete original response for that ad,
  with nothing renamed or removed. Fields the simplified view leaves out are now
  available: professional sellers' `siren` registration number, the full 17-field
  location record (district, city label, region and department names), every image
  size variant, `has_phone`, and each attribute's machine-readable `value` code
  alongside its label.
- `hasDetailData` flag on every item, showing whether that ad's description was retrieved.
- **Automatic resume**: interrupted runs (platform migration, timeout, manual abort)
  continue from the last completed page instead of restarting — you are never charged
  twice for ads a previous attempt already delivered.
- **Tier-aware proxy selection**: paying accounts automatically use a dedicated
  network (measured ~2.6× faster with a lower block rate); free accounts use Apify's
  residential proxy. No configuration needed.
- Tiered, usage-based pricing with a separate rate for ads including descriptions.

#### Changed

- Removed the proxy configuration input — proxy selection is now automatic based on
  your account plan, and there is nothing to set up.
- Existing output fields are unchanged. `raw` and `hasDetailData` are additions, so
  existing integrations and dataset views keep working exactly as before.

#### Fixed

- **Duplicate ads are no longer charged twice.** Leboncoin repeats ads across pages
  and overlapping searches; these are now detected and skipped (a 1,000-ad test run
  caught 7 duplicates that would previously have been billed).
- Ads returned by a search are no longer missing the description field silently — it
  is either filled (with `fetchAdDetails`) or explicitly flagged via `hasDetailData`.
- Invalid or unparseable start URLs now return a clear explanation in the dataset and
  let the run finish successfully, instead of failing the whole run.
- Runs no longer waste time on a stale site build reference; the correct one is
  resolved automatically at startup.
