# Coches.net Scraper (`ribtools/cochesnet-scraper`) Actor

Scrape coches.net used, km 0 and new car listings in Spain: type a make or model with filters, or paste any search, dealer or ad URL. Prices, specs, locations, dealer contacts.

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

## Pricing

from $1.99 / 1,000 vehicle data results

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

Extract used, km 0 and new car listings from **coches.net**, Spain's largest car marketplace — make, model, year, mileage, price, coches.net's own price rating, DGT label, province and dealer — plus optional ad details and dealer phone numbers.

### What is Coches.net Scraper?

**Coches.net Scraper** is a powerful data extraction tool that automatically collects vehicle listings from [coches.net](https://www.coches.net/), Spain's leading marketplace for second-hand (segunda mano), km 0 and new cars, vans and microcars. Simply type a make or model (with optional filters) or paste coches.net URLs, and get structured data including make, model, year, mileage, fuel, power, price (with VAT flag and financed price), the site's below/in/above-market price rating, the DGT environmental label, warranty, city, province and autonomous community, and the dealer — with optional add-ons for the full ad specifications and the dealer's contact profile with phone numbers.

This scraper handles pagination, anti-bot protection, and data normalization automatically, delivering clean, structured datasets ready for analysis or integration into your systems.

### What can this Actor do?

- **Extract comprehensive vehicle data** — make, model, year, mileage, fuel, power, price, financed price, VAT flag, DGT environmental label, warranty, photos and publication dates
- **Market-price insight** — coches.net's own price rating (BELOW / IN / ABOVE market)
- **Three categories** — cars (used, km 0, demonstration and new km 0), industrial vehicles (vans and trucks) and microcars (sin carnet)
- **Search by vehicle** — type a make or model and filter by condition, province, year, seller type, price and mileage
- **Handle multiple entry points** — searches with any filters (make, model, province, price, body, color, fuel, label), the filter page, dealer pages and single ads
- **Automatic pagination** — crawls through all search result pages (35 vehicles per page)
- **Ad details add-on** — description, version, transmission, body type, color, doors, seats, engine size, drivetrain, equipment list and full technical specifications
- **Seller data add-on** — dealer phone, rating and review count, plus address, postal code, map coordinates, website and coches.net page
- **Privacy by design** — private sellers never get a name or a phone number in the output
- **No duplicates** — each vehicle is returned (and charged) once per run, even when listings move between pages
- **Premium proxies included** — high-quality Spanish residential proxies built in at no additional cost
- **Structured output** — JSON, CSV, Excel formats available
- **API integration** — real-time data access through Apify API
- **Scheduled runs** — automated daily/weekly data collection

### What data can Coches.net Scraper extract?

| Field | Description | Example |
| ----- | ----------- | ------- |
| **ID** | coches.net ad identifier | 62009285 |
| **Title** | Ad title | MERCEDES-BENZ Clase A A 180 d |
| **Category** | Cars, industrial vehicles or microcars | coches, vehiculos-industriales, sin-carnet |
| **Make / Model** | Vehicle identity | MERCEDES-BENZ, Clase A |
| **Condition / Offer type** | New or used, and the site's label | used, Ocasión |
| **Price** | Price in EUR, VAT flag and financed price | 18490, true, 17490 |
| **Price Rating** | coches.net's market rating | BELOW, IN, ABOVE |
| **Year / Mileage** | Year and kilometers | 2020, 108000 |
| **Fuel / Power** | Powertrain | Diésel, 116 |
| **DGT Label / Warranty** | Environmental sticker and warranty months | ECO, 12 |
| **Location** | City, province and autonomous community | Sueca, Valencia, Comunitat Valenciana |
| **Seller** | Type, dealer id and dealer name | dealer, 75662, AUTOVILEMA |
| **Photos** | Full-size photo URLs | https://a.ccdn.es/cnet/vehicles/... |
| **Dates** | Last and first publication | 2026-08-12T11:32:00Z |
| **Details** (add-on) | Version, transmission, body, color, doors, seats, engine, drivetrain, equipment, specs | See below |
| **Seller profile** (add-on) | Dealer phone, rating, address, coordinates, website | See below |
| **Search** | The vehicle text or URL that found the listing | Seat Ibiza |

### How to scrape coches.net

#### Step-by-step tutorial:

1. **Type vehicles** — Add one make, model or both per line in *Search vehicles*, as you would in coches.net's search box
2. **Or paste URLs** — Add coches.net search, dealer or ad URLs in *coches.net URLs* (see below). You can use both; each vehicle and each URL is its own search
3. **Set filters** (optional) — Condition, province, year, seller type, price and mileage. They apply to typed vehicles only; a URL keeps the filters it carries
4. **Enable add-ons** (optional) — Ad details and/or seller data
5. **Run the scraper** — Click "Start" and monitor progress in real-time
6. **Download results** — Export data in JSON, CSV, or Excel format

Proxies are included automatically — no setup required.

#### Search by vehicle

Typed text is matched against coches.net's own catalog, so spelling does not have to be exact. The status message of the run shows what each line resolved to.

- `Seat Ibiza` — the model Ibiza (SEAT)
- `seat` — every model of the make SEAT
- `Mercedes-Benz Clase C` — the model Clase C (MERCEDES-BENZ)
- `mercedes` — every model of the make MERCEDES-BENZ

A vehicle coches.net does not know is skipped and named in the status message; it never returns unrelated results. `Max results per search` caps each vehicle separately. Typed vehicles search cars; for industrial vehicles and microcars, paste their URL.

#### coches.net URLs

- **Used cars search**: `https://www.coches.net/segunda-mano/`
- **Make, model and province**: `https://www.coches.net/bmw/x1/segunda-mano/madrid/`
- **Province**: `https://www.coches.net/segunda-mano/barcelona/`
- **Filtered search**: `https://www.coches.net/segunda-mano/?MakeIds%5B0%5D=7&MinPrice=10000`
- **Filter page** (as the site's filters build it): `https://www.coches.net/search/?MakeIds%5B0%5D=7&MinPrice=10000` (returns the used cars of that search)
- **Body, color, fuel or label**: `https://www.coches.net/berlina/segunda-mano/`, `https://www.coches.net/etiqueta-eco/segunda-mano/`
- **Km 0**: `https://www.coches.net/km-0/`
- **New km 0**: `https://www.coches.net/nuevo/km-0`
- **Industrial vehicles**: `https://www.coches.net/vehiculos-industriales/`
- **Microcars**: `https://www.coches.net/sin-carnet/`
- **Dealer page (whole stock)**: `https://www.coches.net/concesionario/autovilema/`
- **Single ad**: `https://www.coches.net/mercedes-benz-clase-a-a-180-d-5p-diesel-2020-en-valencia-62009285-covo.aspx`

**Important**: Only URLs matching these patterns will work. Motorbikes (motos.coches.net), classics, campers and trailers, and renting are not supported and are skipped.

### How much does it cost to scrape coches.net?

Coches.net Scraper uses **pay-per-result (PPR)** pricing — you only pay for successfully extracted vehicles.

#### Is scraping coches.net free?

The scraper follows Apify's PPR model with the following structure:

- **Base extraction**: one charge per scraped vehicle (specs, price, rating, location, dealer)
- **Ad details add-on**: one additional charge per vehicle when the details add-on is enabled and the ad returns data (it opens every ad page)
- **Seller data add-on**: one additional charge per vehicle, but only when a dealer phone number is returned — private sellers are never charged for this add-on

Pricing is optimized for efficiency, using minimal compute units while maintaining high success rates. Contact support for volume discounts on large-scale projects.

### Input configuration

The scraper accepts the following inputs:

Fields are listed in the order of the input form. A run needs at least one vehicle or one URL.

- **Search vehicles** (`vehicles`) — One make, model or both per line, e.g. `Seat Ibiza`, `seat`, `Mercedes-Benz Clase C`. Each line is its own search
- **coches.net URLs** (`startUrls`) — Search, dealer or single-ad URLs (see the examples above). Plain strings or `{"url": ...}` objects
- **Max results per search** (`maxRequests`) — Cap on vehicles for each vehicle and each URL separately. Default 10.
- **Condition** (`condition`) — Used and new, used (coches.net's second-hand section, which includes km 0 and demonstration cars), or new
- **Province** (`province`) — One of Spain's 52 provinces. Leave empty to search the whole country
- **Year from / to** (`yearFrom`, `yearTo`) — Model year range
- **Seller type** (`sellerType`) — Dealers and private sellers, dealers only, or private sellers only
- **Price from / to** (`priceFrom`, `priceTo`) — Asking price in euros; "to" is 1 or more
- **Mileage from / to** (`kmFrom`, `kmTo`) — Kilometers driven; "to" is 1 km or more (for brand-new cars, set Condition to New)
- **Fetch ad details** (`detailsAddon`) and **Fetch seller data** (`sellerDataAddon`) — Optional add-ons, described below

The filters apply to typed vehicles only. Pasted URLs keep the filters they carry.

**Proxies included**: high-quality Spanish residential proxies are built into the Actor at no additional cost — no proxy configuration is required.

#### Fetch ad details (add-on)

Open each ad to add the description, version, transmission, body type, color, doors, seats, engine size, drivetrain, equipment list and full specifications. Charged per vehicle with details.

#### Fetch seller data (add-on)

Add the dealer profile: phone, rating and review count, plus address, postal code, map coordinates, website and coches.net page when the ad page is also fetched. Dealers only: private sellers return the seller type and nothing personal. You are charged only when a phone number is returned.

### Output example

```json
{
  "type": "vehicle",
  "id": 62009285,
  "url": "https://www.coches.net/mercedes-benz-clase-a-a-180-d-5p-diesel-2020-en-valencia-62009285-covo.aspx",
  "search": "Mercedes-Benz Clase A",
  "title": "MERCEDES-BENZ Clase A A 180 d",
  "category": "coches",
  "price": 18490,
  "currency": "EUR",
  "make": "MERCEDES-BENZ",
  "model": "Clase A",
  "condition": "used",
  "offer_type": "Ocasión",
  "price_is_gross": true,
  "financed_price": 17490,
  "price_evaluation": "BELOW",
  "year": 2020,
  "km": 108000,
  "fuel": "Diésel",
  "power_hp": 116,
  "environmental_label": null,
  "warranty_months": 12,
  "city": "Sueca",
  "region": "Comunitat Valenciana",
  "subregion": "Valencia",
  "seller_type": "dealer",
  "seller_id": "75662",
  "seller_name": "AUTOVILEMA",
  "is_promoted": true,
  "photos": [
    "https://a.ccdn.es/cnet/vehicles/18973207/6b3c0588-0278-484d-adaa-bb217e733c64.jpg",
    "https://a.ccdn.es/cnet/vehicles/18973207/756db7a8-cf94-43c3-83cb-adecbc496a14.jpg"
  ],
  "video_count": 0,
  "listed_at": "2026-08-12T11:32:00Z",
  "first_listed_at": "2025-11-18T11:32:00Z",
  "details": {
    "description": "Mercedes-Benz Clase A 180 d en perfecto estado, libro de revisiones, garantía de 12 meses.",
    "version": "A 180 d",
    "transmission": "Manual",
    "body_type": "Berlina",
    "color": "Blanco",
    "doors": 5,
    "seats": 5,
    "engine_cc": 1950,
    "drivetrain": "Delantera",
    "features": [
      "Cuatro frenos de disco siendo dos ventilados",
      "Control de crucero",
      "Sensor de aparcamiento trasero"
    ],
    "attributes": {
      "body.bodyType": "Berlina",
      "body.doors": "5",
      "body.fuelTankCapacity": "43",
      "body.height": "1440",
      "body.length": "4419"
    },
    "registration_date": null,
    "warranty_text": "12 meses (1 año)"
  },
  "seller": {
    "id": "75662",
    "name": "AUTOVILEMA",
    "phones": [
      "600000000"
    ],
    "rating": 5.0,
    "review_count": 5,
    "profile_url": "https://www.coches.net/concesionario/autovilema/",
    "website": null,
    "address": "Camí Vell de Cullera, 34, 46410 Sueca, Valencia",
    "postal_code": "46410",
    "latitude": 39.202299,
    "longitude": -0.309031
  }
}
```

You can download the dataset extracted by **Coches.net Scraper** in various formats such as **JSON, HTML, CSV, or Excel**. The data is automatically cleaned and normalized for immediate use in analysis tools, databases, or business applications.

### Use cases and applications

- **Car price monitoring** — track asking prices and coches.net's market rating by make, model, year and province
- **Dealer lead generation** — build lists of Spanish car dealers with phones, ratings and stock
- **Stock and competitor analysis** — follow a dealer's whole inventory from its coches.net page
- **Market research** — study supply of used, km 0 and electric (DGT 0 / ECO) cars across Spain's provinces

### Integrations and API access

Coches.net Scraper seamlessly integrates with popular platforms:

- **Zapier** — Automate data workflows and notifications (via [Apify Zapier integration](https://docs.apify.com/platform/integrations/zapier))
- **Make (Integromat)** — Create complex automation scenarios (via [Apify Make integration](https://www.make.com/en/integrations/apify))
- **Google Sheets** — Direct data export for analysis
- **REST API** — Programmatic access to extracted data ([instructions here](https://docs.apify.com/academy/api/run-actor-and-retrieve-data-via-api))
- **Python/Node.js SDKs** — Easy integration into applications ([instructions here](https://docs.apify.com/academy/api/run-actor-and-retrieve-data-via-api#javascript-and-python-client))

### FAQ and Support

#### Do I need to configure a proxy?

No. coches.net implements anti-scraping measures that block direct requests, so the Actor includes high-quality residential proxies automatically at no additional cost. There's nothing to configure.

#### Do I get private sellers' phone numbers?

No. Following EU privacy rules (GDPR), private sellers are returned with `seller_type: "private"` and no name or phone. Dealer names and business phones are returned.

#### Can I filter by specific brands or models?

Yes. Type the make or model in *Search vehicles* (for example `Seat Ibiza` or `seat`); it is matched against coches.net's own catalog, and the filters (condition, province, year, seller type, price, mileage) narrow it down. Or use coches.net's search filters in your browser and copy the filtered URL into *coches.net URLs*; the URL keeps every filter it carries.

#### Why does a filter-page URL return slightly fewer cars than the site?

The site's filter page (`/search/?...`) mixes used, km 0 and new cars; the scraper reads the same filters from the used-car search, so it returns the used cars of that search. Add a `/km-0/` URL with the same filters for km 0 cars.

#### How often is the data updated?

coches.net updates listings in real-time. For fresh data, schedule regular scraper runs or use our API for on-demand extraction.

#### What if some URLs don't work?

The scraper only supports specific URL patterns from coches.net. Ensure your URLs match the compatible formats listed above. URLs outside these patterns will be automatically blocked.

#### Do you offer custom solutions?

Absolutely! We can customize the scraper for specific requirements, additional data points, or integration with your existing systems. Contact us through the Issues tab for enterprise solutions.

#### Need help or have feedback?

- **Report issues**: Use the Issues tab for bug reports and feature requests
- **Custom development**: Contact us for tailored solutions and enterprise integrations

# Changelog

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

# Actor input Schema

## `vehicles` (type: `array`):

Type it the way you would in coches.net's search box: a make (`seat`), a model (`Ibiza`) or both (`Mercedes-Benz Clase C`). One per line, each becomes its own search. Spelling is matched against coches.net's own catalog, so `mercedes` finds MERCEDES-BENZ. Leave empty if you only paste URLs below.

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

coches.net URLs from your browser: used-car searches with any filters (`/segunda-mano/`, `/bmw/x1/segunda-mano/madrid/`, `/search/?...`), km 0 and new (`/km-0/`, `/nuevo/km-0`), industrial vehicles (`/vehiculos-industriales/`), microcars (`/sin-carnet/`), dealer pages (`/concesionario/<dealer>/`) and single ads (`...-71679166-covo.aspx`). Not supported: motorbikes, classics, campers, renting.

## `maxRequests` (type: `integer`):

Maximum number of vehicles for each vehicle and each URL above. Each result is a charged event. Default 10.

## `condition` (type: `string`):

Used cars (coches.net's second-hand section, which includes km 0 and demonstration cars), brand-new cars, or both.

## `province` (type: `string`):

Spanish province. Leave empty to search the whole country.

## `yearFrom` (type: `integer`):

Oldest model year to include.

## `yearTo` (type: `integer`):

Newest model year to include. Leave empty for no upper limit.

## `sellerType` (type: `string`):

Dealers (stores and franchised dealerships), private sellers, or both.

## `priceFrom` (type: `integer`):

Lowest asking price to include, in euros.

## `priceTo` (type: `integer`):

Highest asking price to include, in euros: 1 or more (no car is listed at 0).

## `kmFrom` (type: `integer`):

Lowest mileage to include.

## `kmTo` (type: `integer`):

Highest mileage to include: 1 km or more. For brand-new cars, set Condition to New instead.

## `detailsAddon` (type: `boolean`):

Open each ad to add the description, version, transmission, body type, color, doors, seats, engine size, drivetrain, equipment list, and full specifications. Charged per vehicle with details.

## `sellerDataAddon` (type: `boolean`):

Add the dealer profile: phone, rating and review count, plus address, postal code, map coordinates, website and coches.net page when the ad page is also fetched. Dealers only: private sellers return the seller type and nothing personal. You are charged only when a phone number is returned.

## Actor input object example

```json
{
  "vehicles": [
    "Seat Ibiza",
    "Dacia Sandero"
  ],
  "startUrls": [
    "https://www.coches.net/bmw/x1/segunda-mano/madrid/"
  ],
  "maxRequests": 10,
  "condition": "all",
  "sellerType": "all",
  "detailsAddon": false,
  "sellerDataAddon": false
}
```

# Actor output Schema

## `items` (type: `string`):

All scraped vehicles.

# 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 = {
    "vehicles": [
        "Seat Ibiza",
        "Dacia Sandero"
    ],
    "maxRequests": 10,
    "detailsAddon": false,
    "sellerDataAddon": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("ribtools/cochesnet-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 = {
    "vehicles": [
        "Seat Ibiza",
        "Dacia Sandero",
    ],
    "maxRequests": 10,
    "detailsAddon": False,
    "sellerDataAddon": False,
}

# Run the Actor and wait for it to finish
run = client.actor("ribtools/cochesnet-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 '{
  "vehicles": [
    "Seat Ibiza",
    "Dacia Sandero"
  ],
  "maxRequests": 10,
  "detailsAddon": false,
  "sellerDataAddon": false
}' |
apify call ribtools/cochesnet-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,ribtools/cochesnet-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/YaL26oVyqu9uMkNha/builds/XAecl75OtGcyJKj1h/openapi.json
