# La Centrale Scraper — French Used Cars, Prices & Dealers (`khadinakbar/la-centrale-scraper`) Actor

Scrape lacentrale.fr used-car listings by search URL or make/model. Returns price, mileage, year, fuel, gearbox, dealer, photos; optional detail enrich. Camoufox + Residential FR. MCP-ready.

- **URL**: https://apify.com/khadinakbar/la-centrale-scraper.md
- **Developed by:** [Khadin Akbar](https://apify.com/khadinakbar) (community)
- **Categories:** E-commerce, Lead generation, MCP servers
- **Stats:** 1 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $5.00 / 1,000 vehicle scrapeds

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## La Centrale Scraper — French Used Cars, Prices & Dealers

Scrape public **lacentrale.fr** used-car listings by search URL or make/model filters. Returns one structured row per vehicle: price (EUR), mileage, year, fuel, gearbox, dealer, department, and photos. Optional detail-page enrichment. Designed for dealers, market analysts, and MCP/AI agents.

### Why use this Actor?

- Reproduce any lacentrale.fr search (paste the listing URL) or build one from make/model/filters
- DataDome-aware route via **Apify Unblocker France** (plain HTTP is blocked)
- Flat MCP-friendly dataset with `OUTPUT` / `RUN_SUMMARY` outcomes
- Pay per event + platform usage pass-through

### How to use

1. Open the Actor in Apify Console
2. Keep the prefill Renault Clio search or paste your own `/listing?…` URL
3. Set `maxItems` to control cost
4. Run — results appear in the Dataset tab

### Input

| Field | Description |
|-------|-------------|
| `startUrls` | lacentrale.fr search or classified URLs |
| `make` / `model` | Structured search when URLs empty |
| `energies`, `gearbox`, `departments`, price/year/mileage | Optional filters |
| `maxItems` | Cap billed vehicles |
| `enrichDetails` | Visit each classified for description/photos |
| `proxyConfiguration` | Prefer Unblocker FR |

### Output

One dataset row per vehicle, for example:

```json
{
  "listingId": "87103560197",
  "url": "https://www.lacentrale.fr/auto-occasion-annonce-87103560197.html",
  "make": "CITROEN",
  "model": "C3 II phase 2",
  "year": 2013,
  "price": 7990,
  "currency": "EUR",
  "mileageKm": 104800,
  "energy": "Diesel",
  "gearbox": "Manuelle",
  "dealerName": "AUTO SERVICES 30",
  "scrapedAt": "2026-09-22T12:00:00.000Z"
}
```

### Pricing

Pay per event + usage:

- `apify-actor-start` — $0.00005
- `vehicle-scraped` — $0.005 (primary)
- `vehicle-detail-enriched` — $0.009 when `enrichDetails` is on

Platform compute and Unblocker usage are passed through to the caller.

### Legal / responsible use

This Actor collects **public** listing data published on lacentrale.fr. You are responsible for complying with lacentrale.fr terms, French law, and your own use case (no personal-data abuse, no harassment). Not affiliated with Groupe La Centrale / Prosus / OLX.

# Changelog

This Actor's version history is a separate document: https://apify.com/khadinakbar/la-centrale-scraper/changelog.md

# Actor input Schema

## `startUrls` (type: `array`):

lacentrale.fr search/listing URLs (e.g. https://www.lacentrale.fr/listing?makesModelsCommercialNames=RENAULT::CLIO) or direct classified URLs (auto-occasion-annonce-….html). When set, structured make/model filters below are ignored for those URLs.

## `make` (type: `string`):

Vehicle make when Start URLs is empty, e.g. RENAULT, PEUGEOT, BMW. Mapped to makesModelsCommercialNames.

## `model` (type: `string`):

Vehicle model, e.g. CLIO, 308, GOLF. Requires make. Ignored when Start URLs is set.

## `energies` (type: `array`):

Optional fuel filters.

## `gearbox` (type: `string`):

Optional transmission filter.

## `departments` (type: `array`):

French department codes, e.g. 75, 13, 69.

## `priceMin` (type: `integer`):

Minimum asking price in euros.

## `priceMax` (type: `integer`):

Maximum asking price in euros.

## `yearMin` (type: `integer`):

Earliest registration year.

## `yearMax` (type: `integer`):

Latest registration year.

## `mileageMin` (type: `integer`):

Minimum odometer in kilometres.

## `mileageMax` (type: `integer`):

Maximum odometer in kilometres.

## `sortPreset` (type: `string`):

Result order when building a search from filters (pasted URL sortBy is kept).

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

Maximum vehicles to return. Each result is billed.

## `enrichDetails` (type: `boolean`):

When true, visit each classified page for description and extra photos. Billed at the higher vehicle-detail-enriched rate.

## `proxyConfiguration` (type: `object`):

Prefer Apify Residential France. lacentrale.fr is DataDome-protected; Camoufox + geoip clears most sessions.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.lacentrale.fr/listing?makesModelsCommercialNames=RENAULT::CLIO&priceMax=15000"
    }
  ],
  "make": "RENAULT",
  "model": "CLIO",
  "departments": [
    "75"
  ],
  "priceMax": 15000,
  "sortPreset": "newestListings",
  "maxItems": 10,
  "enrichDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "FR"
  }
}
```

# Actor output Schema

## `vehicles` (type: `string`):

Dataset of vehicle listings.

## `output` (type: `string`):

Terminal OUTPUT summary.

# 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 = {
    "startUrls": [
        {
            "url": "https://www.lacentrale.fr/listing?makesModelsCommercialNames=RENAULT::CLIO&priceMax=15000"
        }
    ],
    "make": "RENAULT",
    "model": "CLIO",
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("khadinakbar/la-centrale-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 = {
    "startUrls": [{ "url": "https://www.lacentrale.fr/listing?makesModelsCommercialNames=RENAULT::CLIO&priceMax=15000" }],
    "make": "RENAULT",
    "model": "CLIO",
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("khadinakbar/la-centrale-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 '{
  "startUrls": [
    {
      "url": "https://www.lacentrale.fr/listing?makesModelsCommercialNames=RENAULT::CLIO&priceMax=15000"
    }
  ],
  "make": "RENAULT",
  "model": "CLIO",
  "maxItems": 10
}' |
apify call khadinakbar/la-centrale-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,khadinakbar/la-centrale-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/igVWMWnuebvmassz3/builds/CVtfkpAVArW5RsCC0/openapi.json
