# coches.net Scraper: Spain Used Car Prices, Deals & Dealers (`fayoussef/coches-net-scraper`) Actor

Scrape used cars from coches.net, Spain's largest car marketplace. Filter by make, model, price, year, km, province or radius, fuel, DGT label and price rating. Export price, market price, specs, equipment, dealer contact and photos.

- **URL**: https://apify.com/fayoussef/coches-net-scraper.md
- **Developed by:** [Youssef Farhan](https://apify.com/fayoussef) (community)
- **Categories:** Automation, Lead generation, E-commerce
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.70 / 1,000 car scrapeds

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

## coches.net Scraper: Spain Used Car Prices, Deals & Dealers

🇬🇧 English | 🇪🇸 [Leer en español](#spanish-version)

Scrape used cars from **coches.net**, Spain's largest car marketplace (about 275,000 cars for sale). Search with the same filters as the site, or paste any coches.net search URL, and export price, coches.net's own market price rating, financing, full specs, equipment, dealer contact details and photos to JSON, CSV or Excel.

Built for car dealers, importers, leasing and finance companies, price analysts and anyone who needs a clean feed of the Spanish used-car market.

### Why use this coches.net scraper

- **Every car, not just the first 10,000.** coches.net stops any search at 10,000 results. This Actor splits a bigger search into price bands automatically, so a search for every SEAT returned all 14,213 cars in 37 seconds (search data only).
- **Deals built in.** coches.net rates every asking price against the market (Super precio, Buen precio, Precio justo...). Filter on it and get the market average price and the gap in euros for each car.
- **Same filters as the site**: make, model, keyword, price, year, mileage, province or radius around a city or postal code, fuel, body type, gearbox, drivetrain, DGT environmental label (0, ECO, C, B), power, doors, seats, colour, dealer or private seller, warranty, certified, financing.
- **Or paste a URL.** Set your filters on coches.net, copy the address bar, paste it into Start URLs. The Actor reads the search exactly as the site does. Listing URLs work too.
- **Full listing details** (optional): version, colour, description, standard and optional equipment, CO2, consumption, dimensions, top speed, new-car price, dealer address, GPS coordinates and website.
- **Fast and light.** Results come from coches.net's own search API, 100 cars per call. Listing pages are only opened when you ask for full details.

### What data you get

Around 80 fields per car, including:

| Group | Fields |
|---|---|
| Car | title, make, model, version, year, condition (used, km 0, new, demo), body type, colour, doors, seats |
| Price | price, VAT included, price rating, market average price, price vs market, financed price, monthly payment, term, APR, down payment, new-car price |
| Engine | fuel type, horsepower, kW, engine size, cylinders, gears, transmission, drivetrain, DGT label, CO2, consumption, top speed, 0-100 km/h |
| Size | length, width, height, weight, boot capacity, fuel tank |
| Location | province, region, city |
| Seller | dealer or private, name, rating, review count, phone (when the seller shows it), dealer address, postal code, coordinates, website, logo |
| Listing | description, equipment list, optional equipment, warranty, certified, online reservation, urgent sale, photos, videos, published date, days on market, URL |

Without full details, you still get price, price rating, market price, financing, mileage, year, fuel, gearbox, power, location, seller, phone and photos.

### How to scrape coches.net

1. Open the Actor and pick your filters (for example make **TOYOTA**, price up to 20,000 EUR), or paste a coches.net search URL into **Start URLs**.
2. Set **Max results**, or leave it empty to get every matching car.
3. Keep **Include full listing details** on for specs, equipment and dealer address, or turn it off for a much faster search-data run.
4. Click **Start**, then download the results as JSON, CSV, Excel or HTML, or read them through the Apify API.

#### Input example

```json
{
    "makes": ["BMW"],
    "models": ["Serie 3"],
    "year_from": 2019,
    "fuel_types": ["diesel"],
    "transmission": "automatic",
    "location": "Madrid",
    "radius_km": "30",
    "price_ratings": ["great", "good"],
    "sort_by": "price_asc",
    "max_items": 100
}
```

With a URL instead:

```json
{
    "start_urls": [
        { "url": "https://www.coches.net/audi/q3/segunda-mano/" },
        { "url": "https://www.coches.net/segunda-mano/madrid/?MaxPrice=20000&MinYear=2019" }
    ],
    "max_items": 500
}
```

#### Output example

```json
{
    "id": "71249095",
    "url": "https://www.coches.net/bmw-serie-3-320d-autotouring-5p-diesel-2020-en-madrid-71249095-covo.aspx",
    "title": "BMW Serie 3 320d Auto.Touring",
    "make": "BMW",
    "model": "Serie 3",
    "version": "320d Auto.Touring",
    "year": 2020,
    "price_eur": 21900,
    "price_rating": "Great price",
    "market_average_price_eur": 26000,
    "price_vs_market_eur": -4100,
    "new_car_price_eur": 45950,
    "mileage_km": 100800,
    "fuel_type": "Diesel",
    "transmission": "Automatic",
    "drivetrain": "Rear-wheel drive",
    "horsepower": 190,
    "body_type": "Estate",
    "color": "Black",
    "co2_g_km": 114,
    "consumption_l_100km": 4.4,
    "condition": "Used",
    "warranty_months": 12,
    "province": "Madrid",
    "city": "Fuente El Saz de Jarama",
    "seller_type": "dealer",
    "seller_name": "Autobello Garaje",
    "seller_rating": 4.4,
    "seller_phone": "646715356",
    "dealer_postal_code": "28140",
    "image_url": "https://a.ccdn.es/cnet/vehicles/20573232/b77769d5-69ea-42df-b436-7ac6e9309a86.jpg",
    "days_on_market": 52,
    "details_scraped": true
}
```

### Input filters

| Field | What it does |
|---|---|
| Start URLs | coches.net search or listing URLs. When filled, the filters below are ignored. |
| Max results | Stop after this many cars. Empty means every match. Applies to the whole run. |
| Include full listing details | Open each listing page for specs, equipment and dealer address. |
| Condition | Used, km 0, new, demo, ex-company. Empty uses the site default. |
| Makes, Models | Any make on coches.net; models by name, e.g. "Golf", "Serie 3", "Clase A". |
| Keyword | Free text, e.g. "quattro", "AMG". |
| Price, Year, Mileage, Power, Doors, Seats | From and to ranges. |
| Provinces | Any of Spain's 52 provinces. |
| Near city or postal code + Search radius | e.g. "Sevilla" or "46001" within 5 to 500 km. |
| Fuel, Body type, Transmission, Drivetrain, Colour | Same options as the site. |
| DGT environmental label | 0, ECO, C, B. |
| Seller type | Dealers or private sellers. |
| Price rating (deals) | Great, good, fair, above market, high. |
| Only with warranty / certified / financing / online reservation, Mainland Spain only | Yes or no switches. |
| Sort results by | Relevance, newest, price, mileage, year. |

### Use cases

- **Dealers and importers**: find under-priced stock by make, model and province, with the market price next to each ad.
- **Price monitoring**: track what a model sells for across Spain, by year, mileage and DGT label. Pair with [Dataset Diff](https://apify.com/fayoussef/dataset-diff?fpr=youssef) for new-listing and price-change alerts.
- **Lead generation**: list dealers with their rating, address, phone and website.
- **Market research**: fuel mix, EV and hybrid share, days on market, financing terms.
- **Car buyers**: every "Super precio" car within 50 km of home in one table.

### Pricing

This Actor uses **pay per result**: you pay for each car saved to the dataset, plus a small charge when a run starts. The current rate is shown on this Actor's Store page. Filters, sorting, price-band splitting and the proxy cost nothing extra.

Free Apify plan users can test the Actor with up to 50 cars per run. Unlock full runs with an [Apify plan](https://apify.com/pricing?fpr=youssef).

### FAQ

**Can it get more than 10,000 cars?**
Yes. coches.net shows at most 10,000 cars per search, so the Actor splits a larger search into price bands that each stay under the limit, and removes duplicates.

**Why do some cars have no price rating?**
coches.net only rates a price when it has enough similar cars to compare. About 5 to 50% of cars have none, depending on the model.

**Why is the phone missing for some cars?**
Many private sellers hide their number on coches.net. The Actor only returns a phone the site shows publicly.

**Does it need a proxy?**
Listing pages need a Spanish residential proxy, which is the default. Search data comes from coches.net's search API directly.

**Does it scrape motorbikes or vans?**
Cars only, from www.coches.net. motos.coches.net URLs are rejected with a clear message.

### More car scrapers

- [Wallapop Scraper](https://apify.com/fayoussef/wallapop-scraper?fpr=youssef): Spain's second-hand marketplace, cars included.
- [AutoScout24 Scraper](https://apify.com/fayoussef/autoscout24?fpr=youssef): Europe's largest car marketplace.
- [All my Actors](https://apify.com/fayoussef?fpr=youssef)

Need a custom solution? Write to youssefarhan24@gmail.com.

***

### Spanish version

🇪🇸 **En español**

**Scraper de coches.net: precios de coches de segunda mano en España, chollos y concesionarios.**

Extrae coches de **coches.net**, el mayor portal de coches de España (unos 275.000 anuncios). Busca con los mismos filtros que la web, o pega cualquier URL de búsqueda de coches.net, y exporta el precio, la valoración de precio de coches.net frente al mercado, la financiación, la ficha técnica completa, el equipamiento, los datos de contacto del concesionario y las fotos a JSON, CSV o Excel.

Pensado para concesionarios, importadores, empresas de renting y financiación, analistas de precios y cualquiera que necesite datos limpios del mercado español de vehículos de ocasión.

#### Por qué usar este scraper

- **Todos los coches, no solo los 10.000 primeros.** coches.net corta cualquier búsqueda en 10.000 resultados. El Actor divide automáticamente una búsqueda mayor en tramos de precio: una búsqueda de todos los SEAT devolvió los 14.213 coches en 37 segundos (solo datos de búsqueda).
- **Chollos incluidos.** coches.net valora cada precio frente al mercado (Súper precio, Buen precio, Precio justo...). Filtra por esa valoración y obtén el precio medio de mercado y la diferencia en euros de cada coche.
- **Los mismos filtros que la web**: marca, modelo, palabra clave, precio, año, kilómetros, provincia o radio alrededor de una ciudad o código postal, combustible, carrocería, cambio, tracción, etiqueta medioambiental DGT (0, ECO, C, B), potencia, puertas, plazas, color, profesional o particular, garantía, certificado, financiación.
- **O pega una URL.** Aplica tus filtros en coches.net, copia la dirección y pégala en Start URLs. El Actor lee la búsqueda exactamente como la web. También funcionan las URL de anuncios.
- **Ficha completa del anuncio** (opcional): versión, color, descripción, equipamiento de serie y opcional, CO2, consumo, dimensiones, velocidad máxima, precio del coche nuevo, dirección del concesionario, coordenadas GPS y web.

#### Qué datos obtienes

Unos 80 campos por coche:

| Grupo | Campos |
|---|---|
| Coche | título, marca, modelo, versión, año, estado (ocasión, km 0, nuevo, demostración), carrocería, color, puertas, plazas |
| Precio | precio, IVA incluido, valoración del precio, precio medio de mercado, diferencia con el mercado, precio financiado, cuota mensual, plazo, TAE, entrada, precio de nuevo |
| Motor | combustible, CV, kW, cilindrada, cilindros, marchas, cambio, tracción, etiqueta DGT, CO2, consumo, velocidad máxima, 0-100 km/h |
| Medidas | largo, ancho, alto, peso, maletero, depósito |
| Ubicación | provincia, comunidad autónoma, ciudad |
| Vendedor | profesional o particular, nombre, valoración, número de opiniones, teléfono (cuando el vendedor lo muestra), dirección del concesionario, código postal, coordenadas, web, logo |
| Anuncio | descripción, equipamiento, extras, garantía, certificado, reserva online, venta urgente, fotos, vídeos, fecha de publicación, días publicado, URL |

#### Cómo usarlo

1. Abre el Actor y elige tus filtros (por ejemplo marca **TOYOTA** y precio hasta 20.000 EUR), o pega una URL de búsqueda de coches.net en **Start URLs**.
2. Indica **Max results**, o déjalo vacío para obtener todos los coches.
3. Deja activado **Include full listing details** para la ficha técnica, el equipamiento y la dirección del concesionario, o desactívalo para una ejecución mucho más rápida solo con datos de búsqueda.
4. Pulsa **Start** y descarga los resultados en JSON, CSV, Excel o HTML, o léelos con la API de Apify.

Los nombres de los campos del formulario y del resultado están en inglés; los valores de marca y modelo se escriben como en coches.net ("Serie 3", "Clase A", "Golf").

#### Casos de uso

- **Concesionarios e importadores**: encuentra stock por debajo de mercado por marca, modelo y provincia.
- **Seguimiento de precios**: cuánto se vende un modelo en España según año, kilómetros y etiqueta DGT. Combínalo con [Dataset Diff](https://apify.com/fayoussef/dataset-diff?fpr=youssef) para recibir avisos de anuncios nuevos y cambios de precio.
- **Captación de clientes**: listado de concesionarios con valoración, dirección, teléfono y web.
- **Estudios de mercado**: mezcla de combustibles, cuota de eléctricos e híbridos, días en venta, condiciones de financiación.
- **Compradores**: todos los coches con "Súper precio" a menos de 50 km de casa en una sola tabla.

#### Precio

Este Actor cobra **por resultado**: pagas por cada coche guardado en el dataset, más un pequeño importe al iniciar la ejecución. La tarifa vigente aparece en la página del Actor en la Store. Los filtros, la ordenación, la división en tramos de precio y el proxy no tienen coste adicional.

Con el plan gratuito de Apify puedes probar el Actor con hasta 50 coches por ejecución. Desbloquea ejecuciones completas con un [plan de Apify](https://apify.com/pricing?fpr=youssef).

#### Preguntas frecuentes

**¿Puede obtener más de 10.000 coches?**
Sí. coches.net muestra como máximo 10.000 coches por búsqueda, así que el Actor divide una búsqueda mayor en tramos de precio que no superan ese límite y elimina los duplicados.

**¿Por qué algunos coches no tienen valoración de precio?**
coches.net solo valora un precio cuando tiene suficientes coches parecidos con los que compararlo.

**¿Por qué falta el teléfono en algunos coches?**
Muchos particulares ocultan su número en coches.net. El Actor solo devuelve el teléfono que la web muestra públicamente.

**¿Incluye motos o furgonetas?**
Solo coches de www.coches.net. Las URL de motos.coches.net se rechazan con un mensaje claro.

¿Necesitas una solución a medida? Escribe a youssefarhan24@gmail.com.

# Actor input Schema

## `start_urls` (type: `array`):

Optional. Paste any coches.net search URL (set the filters on the site, then copy the address bar) or individual listing URLs. When this is filled, the search filters below are ignored.

## `max_items` (type: `integer`):

Stop after this many cars. Leave empty to scrape every match: searches above 10,000 cars are split into price bands automatically so nothing is cut off.

## `include_details` (type: `boolean`):

Open each listing page for colour, version, full description, equipment list, specs (CO2, consumption, dimensions), new-car price and dealer address. Turn off for a much faster run with search data only (price, km, year, fuel, location, seller, photos).

## `conditions` (type: `array`):

Leave empty for the site's default (used, km 0, demo and ex-company cars).

## `makes` (type: `array`):

One or more makes. Leave empty for all makes.

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

Model names as written on coches.net, e.g. 'Golf', 'Serie 3', 'Clase A', 'Q3'. Matched against the makes above; a make with no model listed means all its models.

## `keyword` (type: `string`):

Free-text search on the listing, e.g. 'quattro', 'AMG', 'techo panorámico'.

## `price_from` (type: `integer`):

Minimum price.

## `price_to` (type: `integer`):

Maximum price.

## `year_from` (type: `integer`):

Oldest registration year.

## `year_to` (type: `integer`):

Newest registration year.

## `mileage_from_km` (type: `integer`):

Minimum mileage.

## `mileage_to_km` (type: `integer`):

Maximum mileage.

## `provinces` (type: `array`):

One or more Spanish provinces. Leave empty for all of Spain.

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

A Spanish city or postal code, e.g. 'Madrid', 'Sevilla', '46001'. Combine with Search radius. Use either this or Provinces.

## `radius_km` (type: `string`):

Distance around the city or postal code above.

## `fuel_types` (type: `array`):

Leave empty for all fuels.

## `body_types` (type: `array`):

Leave empty for all body types.

## `transmission` (type: `string`):

Leave empty for both.

## `drivetrains` (type: `array`):

Leave empty for all.

## `environmental_labels` (type: `array`):

Spain's DGT sticker, which decides access to low-emission zones.

## `power_from_hp` (type: `integer`):

Minimum engine power.

## `power_to_hp` (type: `integer`):

Maximum engine power.

## `doors_from` (type: `integer`):

Minimum number of doors.

## `doors_to` (type: `integer`):

Maximum number of doors.

## `seats_from` (type: `integer`):

Minimum number of seats.

## `seats_to` (type: `integer`):

Maximum number of seats.

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

Leave empty for all colours.

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

Dealers only, private sellers only, or both.

## `price_ratings` (type: `array`):

coches.net rates every asking price against the market. Pick 'Great price' and 'Good price' to get only the deals.

## `only_with_warranty` (type: `boolean`):

Only cars sold with a warranty.

## `only_certified` (type: `boolean`):

Only cars with a coches.net certification.

## `only_with_financing` (type: `boolean`):

Only cars with a financing offer (monthly payment shown).

## `only_online_reservation` (type: `boolean`):

Only cars you can reserve online.

## `only_peninsula` (type: `boolean`):

Leave out the Balearic and Canary Islands, Ceuta and Melilla.

## `sort_by` (type: `string`):

Order of the results. With a Start URL, the URL's own order is kept unless you pick something other than Relevance.

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

Listing pages are behind bot protection and need a Spanish residential proxy, which is the default. Leave as is unless you bring your own proxies.

## Actor input object example

```json
{
  "max_items": 50,
  "include_details": true,
  "makes": [
    "TOYOTA"
  ],
  "price_to": 20000,
  "radius_km": "30",
  "only_with_warranty": false,
  "only_certified": false,
  "only_with_financing": false,
  "only_online_reservation": false,
  "only_peninsula": false,
  "sort_by": "relevance",
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "ES"
  }
}
```

# Actor output Schema

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

One record per coches.net listing: price, market price rating, financing, specs, equipment, seller and dealer contact, photos.

# 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 = {
    "max_items": 50,
    "makes": [
        "TOYOTA"
    ],
    "price_to": 20000,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "ES"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("fayoussef/coches-net-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 = {
    "max_items": 50,
    "makes": ["TOYOTA"],
    "price_to": 20000,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "ES",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("fayoussef/coches-net-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 '{
  "max_items": 50,
  "makes": [
    "TOYOTA"
  ],
  "price_to": 20000,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "ES"
  }
}' |
apify call fayoussef/coches-net-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,fayoussef/coches-net-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/tTfmo0hughpGCEcjT/builds/leRt1JsgAFiHxglkg/openapi.json
