# Autosphere.fr Scraper (`rastriq/autosphere-fr-scraper`) Actor

Scrape used & demo cars from autosphere.fr (France): prices, promotions, LOA/credit offers, specs, equipment, EV battery data and dealer locations. Public API, no browser.

- **URL**: https://apify.com/rastriq/autosphere-fr-scraper.md
- **Developed by:** [Rastriq — Structured data from the world](https://apify.com/rastriq) (community)
- **Categories:** E-commerce, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.20 / 1,000 vehicles

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

## Autosphere.fr Scraper — French Used Car Prices, Promotions & Dealer Stock

**Autosphere.fr Scraper** extracts the full used and demo car stock of [autosphere.fr](https://www.autosphere.fr), one of France's largest multi-brand dealer groups (≈16,000 vehicles, 45 brands, 200+ dealerships). Get prices, struck-through promotional prices, LOA / credit offers, specs, equipment, EV battery data and the exact selling dealer — in minutes, through Autosphere's public search API, without a browser.

### 🚗 What is Autosphere.fr Scraper?

Autosphere.fr Scraper is a fast Autosphere API scraper built for car pricing analysts, dealers, remarketing teams, leasing companies and data providers who need a clean, structured export of the French used car market.

- 📊 **Track used car prices in France** — daily or weekly snapshots of the whole Autosphere stock.
- 🏷️ **Monitor promotions** — crossed-out prices, discount %, campaign names and end dates.
- 💳 **Benchmark finance offers** — monthly payment, down payment, APR (TAEG), residual value, mileage allowance.
- 🔋 **EV and hybrid intelligence** — battery capacity and battery-health score from the vehicle page.
- 📍 **Dealer stock mapping** — dealer name, address, postal code and GPS for every car.

### 📋 What data does Autosphere.fr Scraper extract?

| Group | Fields |
|---|---|
| 🆔 Identity | `sku` (durable ID), `internalId`, `vin`, `listingUrl`, `title` |
| 🚘 Vehicle | `brand`, `model`, `version`, `year`, `dateFirstCirculation`, `mileage`, `fuelType`, `gearsType`, `fiscalPower`, `co2Emissions`, `vehicleTypeLabel` (used / demo) |
| 💶 Price | `price`, `crossedOutPrice`, `priceDiscount`, `priceDiscountPct`, `catalogPrice`, `recoverableVat`, `promotionName`, `promotionStart`, `promotionEnd` |
| 💳 Finance | `financeMonthlyAmount`, `financeDuration`, `financeContribution`, `financeTaeg`, `financeNominalRate`, `financeResidualValue`, `financeTotalCost`, `financeAnnualMileage`, `financeType` |
| 🛡️ Warranty | `warrantyMonths`, `warrantyLabel` |
| 🔧 Details *(optional)* | `bodyType`, `bodyColor`, `doors`, `seats`, `powerHp`, `weightKg`, dimensions, consumption, `co2Class`, `critAir`, `batteryEnergyKwh`, `batteryScore`, `firstHand`, `provenance`, `equipments`, `optionsFitted`, `damageCount`, `historyReportUrl`, `isBooked` |
| 📍 Dealer *(optional)* | `dealerName`, `dealerId`, `dealerAddress`, `dealerPostalCode`, `dealerLat`, `dealerLon`, `city` |
| 🖼️ Media | `mainImageUrl`, `photoCount`, `imageUrls` *(optional)* |
| ✅ Quality | `_quality_flags`, `_validation_errors`, `_detail_status`, `scrapedAt`, `sourceUrl` |

Up to **97 fields per vehicle** with details enabled. Records are never silently dropped: suspicious values are flagged in `_quality_flags` so you decide what to filter.

### ▶️ How to use Autosphere.fr Scraper

1. Click **Try for free** and open the Input tab.
2. Optionally set filters: brands, models, fuel, body type, gearbox, colour, price, mileage, year or monthly payment.
3. Set **Max items** (leave empty for the full stock) and choose whether to **include vehicle details**.
4. Click **Start**. A full listing export of ~16,000 cars takes about a minute.
5. Download results as JSON, CSV, Excel or XML, or use the views *Overview*, *Prices & finance*, *Specs*, *Dealers & location* and *Data quality*.

All filters run on Autosphere's own search engine, so you only pay for matching cars.

### ⚙️ Input parameters

| Parameter | Type | Description |
|---|---|---|
| `brands`, `models` | list | Case-insensitive names, e.g. `["Renault","Peugeot"]`, `["Clio"]` |
| `vehicleTypes` | select | `all`, `vo` (used) or `vd` (demo) |
| `fuelTypes`, `bodyTypes`, `colors` | multi-select | Server-side filters |
| `gearbox` | select | `any`, `Automatique`, `Manuelle` |
| `minPrice` / `maxPrice`, `minMileage` / `maxMileage`, `minYear` / `maxYear` | integer | Ranges |
| `minMonthlyPayment` / `maxMonthlyPayment` | integer | LOA / credit monthly payment range |
| `firstHandOnly` | boolean | Single previous owner |
| `sortBy` | select | Popularity, price, mileage or year |
| `maxItems` | integer | 0 / empty = all |
| `includeDetails` | boolean | +40 fields from each vehicle page (1 extra request per car) |
| `includeImages` | boolean | Full photo gallery |
| `includeLicensePlate` | boolean | Off by default |

Example — electric Renault and Peugeot under €25,000 with details:

```json
{
  "brands": ["Renault", "Peugeot"],
  "fuelTypes": ["Electrique"],
  "maxPrice": 25000,
  "includeDetails": true,
  "maxItems": 200
}
```

### 📦 Output example

```json
{
  "sku": "PVO41231216",
  "title": "Renault Master F3500 L3 2.3 Blue dCi 145ch Confort EuroVI",
  "vehicleTypeLabel": "used",
  "year": 2024,
  "dateFirstCirculation": "2024-02-23",
  "mileage": 42201,
  "fuelType": "Diesel",
  "gearsType": "Manuelle",
  "price": 27699,
  "crossedOutPrice": 30799,
  "priceDiscountPct": 10.1,
  "promotionName": "Prix en baisse",
  "financeMonthlyAmount": 274,
  "financeDuration": 60,
  "financeTaeg": 14.71,
  "warrantyMonths": 12,
  "bodyType": "Utilitaire",
  "bodyColor": "Blanc",
  "powerHp": 146,
  "critAir": 2,
  "equipments": ["ABS", "Aide au démarrage en côte", "Régulateur de vitesse"],
  "dealerName": "RENAULT METZ",
  "dealerPostalCode": "57000",
  "dealerLat": 49.115479,
  "dealerLon": 6.188945,
  "listingUrl": "https://www.autosphere.fr/fiche-mixte/auto-occasion-renault-master-f3500-l3-2-3-blue-dci-145ch-confort-eurovi-57000-metz-228026",
  "scrapedAt": "2026-11-04T20:50:26.694Z",
  "_quality_flags": []
}
```

Each run also stores a `RUN_SUMMARY` record (vehicles available vs extracted, coverage %, requests, retries, duplicates) in the key-value store — handy for monitoring scheduled runs.

### 💰 How much does it cost to scrape Autosphere.fr?

Autosphere.fr Scraper uses pay-per-event pricing with volume discounts by Apify plan. You pay a small start fee per run and a flat price per vehicle delivered. Vehicle-page details (specs, equipment, dealer, EV battery data) are included — no extra fee per detail. Platform usage is included in the price.

| Apify plan | Price per 1,000 vehicles | Full Autosphere stock (~16,500 vehicles) |
|---|---|---|
| Free | $1.80 | ≈ $30 |
| Starter (Bronze) | $1.60 | ≈ $26 |
| Scale (Silver) | $1.40 | ≈ $23 |
| Business (Gold) and above | $1.20 | ≈ $20 |

Run start: $0.005. Example: a 1,000-vehicle test on the Free plan costs about $1.80. Set a maximum cost per run in the run options to stay in control.

### 🔗 Related Actors

- [Autohero Scraper](https://apify.com/rastriq/autohero-scraper) — used cars from Autohero in 9 European countries.
- [Flexicar.es Scraper](https://apify.com/rastriq/flexicar-scraper) — Spain's largest used car dealer network.
- [Aramis Group Stock](https://apify.com/rastriq/aramis-group-stock) — Aramisauto, Clicars, Cardoen, brumbrum and CarSupermarket in one dataset.

### ❓ FAQ

**Is it legal to scrape autosphere.fr?** Autosphere.fr Scraper only collects publicly available vehicle listings and dealer business information. It does not log in or bypass protections. Check Autosphere's terms and your local regulations for your use case.

**Does it include personal data?** No private-person data is collected. Licence plates are excluded by default and only added if you enable `includeLicensePlate`.

**Why do some cars miss a crossed-out price?** Only cars in an active promotion have one; `promotionName` tells you which campaign applies.

**How fresh is the data?** Data is read live from autosphere.fr at run time. Schedule the Actor daily or weekly to build price histories.

**Something is missing or broken?** Open an issue in the Issues tab — we usually answer within one business day.

# Actor input Schema

## `brands` (type: `array`):

Brand names as shown on autosphere.fr, case-insensitive (e.g. <code>Renault</code>, <code>Peugeot</code>, <code>Land-Rover</code>, <code>Alfa Romeo</code>). Empty = all brands.

## `models` (type: `array`):

Model names (e.g. <code>Clio</code>, <code>3008</code>). Combine with Brands for precise results.

## `vehicleTypes` (type: `string`):

Used cars (VO), demonstration cars (VD) or both.

## `fuelTypes` (type: `array`):

Empty = all fuels.

## `bodyTypes` (type: `array`):

Empty = all body types.

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

Transmission type.

## `colors` (type: `array`):

Empty = all colours.

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

Lower price bound.

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

Upper price bound.

## `minMileage` (type: `integer`):

Lower mileage bound.

## `maxMileage` (type: `integer`):

Upper mileage bound.

## `minYear` (type: `integer`):

Earliest first-registration year.

## `maxYear` (type: `integer`):

Latest first-registration year.

## `minMonthlyPayment` (type: `integer`):

Filter by advertised LOA/credit monthly payment.

## `maxMonthlyPayment` (type: `integer`):

Filter by advertised LOA/credit monthly payment.

## `firstHandOnly` (type: `boolean`):

Only vehicles with a single previous owner.

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

Order of results. Useful with Max items (e.g. the 100 cheapest EVs). For full exports keep <i>Popularity</i>, the only order verified to return every car exactly once.

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

Maximum number of vehicles. Empty or 0 = all matching vehicles.

## `includeDetails` (type: `boolean`):

Open each vehicle page to add ~40 fields: body type, colour, doors, seats, real power, weight, dimensions, consumption, Crit'Air, EV battery capacity & health, full equipment list, damages count, history report link, previous use, and the selling dealer (name, address, postal code, GPS). One extra request per car.

## `includeImages` (type: `boolean`):

Add the full gallery (<code>imageUrls</code>, up to 30 per car). The main photo is always included.

## `includeLicensePlate` (type: `boolean`):

Off by default. When on, adds <code>licensePlate</code> (and damage photo URLs if details + images are on, as they contain the plate).

## `maxConcurrency` (type: `integer`):

Parallel vehicle pages when details are enabled.

## `maxRequestRetries` (type: `integer`):

Retries with exponential backoff on errors and 429/5xx.

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

Not needed: Autosphere's API is public. Enable only if you get blocked.

## `debug` (type: `boolean`):

Verbose logs (retries, failed details).

## Actor input object example

```json
{
  "brands": [],
  "vehicleTypes": "all",
  "gearbox": "any",
  "firstHandOnly": false,
  "sortBy": "popularity",
  "maxItems": 50,
  "includeDetails": false,
  "includeImages": false,
  "includeLicensePlate": false,
  "maxConcurrency": 4,
  "maxRequestRetries": 4,
  "proxyConfiguration": {
    "useApifyProxy": false
  },
  "debug": false
}
```

# Actor output Schema

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

All extracted vehicles.

## `overview` (type: `string`):

No description

## `summary` (type: `string`):

Total available, extracted, coverage %, requests, retries.

# 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 = {
    "brands": [],
    "maxItems": 50,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("rastriq/autosphere-fr-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 = {
    "brands": [],
    "maxItems": 50,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("rastriq/autosphere-fr-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 '{
  "brands": [],
  "maxItems": 50,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call rastriq/autosphere-fr-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,rastriq/autosphere-fr-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/svNSaHecLyXKAw0uC/builds/aqdmd8B8ucwVezoVC/openapi.json
