coches.net Spain Car Scraper avatar

coches.net Spain Car Scraper

Under maintenance

Pricing

Pay per event

Go to Apify Store
coches.net Spain Car Scraper

coches.net Spain Car Scraper

Under maintenance

Scrape used-car listings from coches.net, Spain’s #1 car marketplace — price, make, model, year, mileage, fuel, power, transmission, environmental label, seller, location, and photos. Export to JSON or CSV; enrich each listing with extra detail-page fields.

Pricing

Pay per event

Rating

0.0

(0)

Developer

DevilScrapes

DevilScrapes

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

1

Monthly active users

a day ago

Last modified

Share


🎯 What this scrapes

coches.net is Spain's largest used-car marketplace and the default place Spaniards buy and sell coches de segunda mano. It publishes no public API. This Actor wraps a polite scrape of the segunda-mano section — paste a filtered coches.net search URL or use the default listing page, and pull every listing's price, make/model, year, mileage (km), fuel, power (CV), environmental label, seller type, location, and photos. Flip on detail enrichment and we fetch each listing's page for transmission, colour, version, drivetrain, and the full Spanish description. Built on curl-cffi with browser TLS impersonation.

🔥 What we handle for you

  • 🛡️ Browser fingerprint rotationcurl-cffi impersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python.
  • 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
  • 🔁 Retries with exponential backoff on 408 / 429 / 5xx — up to 5 attempts per page, Retry-After honoured.
  • 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
  • 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
  • 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.

💡 Use cases

  • Used-car price analytics — track asking prices by make/model/year across the Spanish market.
  • Dealer inventory monitoring — diff successive runs to spot new arrivals and price cuts at specific dealers.
  • Market research — aggregate fuel-type and environmental-label mix to gauge EV/hybrid adoption in Spain.
  • Lead generation — build a directory of car dealers from seller_name + location.
  • Arbitrage / sourcing — find under-priced listings filtered by mileage, year, and power.

⚙️ How to use it

  1. Click Try for free at the top of the page.
  2. Fill in the input form — most fields have sensible defaults.
  3. Click Start. Output streams into the run's dataset.
  4. Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.

📥 Input

FieldTypeRequiredDefaultNotes
searchUrlstringno''Full coches.net used-car search/results URL with your filters already applied (e.g. https://www.coches.net/segunda
maxResultsintegerno50Hard cap on dataset rows. coches.net paginates 30 listings per page; the Actor walks pages until this cap or the last pa
enrichDetailsbooleannoTrueFetch each listing's detail page for transmission, colour, version, drivetrain, and the full Spanish description. The se
proxyConfigurationobjectno{'useApifyProxy': True, 'apifyProxyGroups': ['RESIDENTIAL']}Apify Proxy spec. Spanish residential exits are safest.

Example input

{
"searchUrl": "",
"maxResults": 5,
"enrichDetails": true,
"proxyConfiguration": {
"useApifyProxy": true,
"apifyProxyGroups": [
"RESIDENTIAL"
]
}
}

📤 Output

Every row is one dataset item.

FieldTypeNotes
listing_idstringcoches.net advert ID.
listing_urlstringAbsolute URL to the listing detail page.
titlestringListing headline (make + model + version).
make['string', 'null']Car manufacturer (e.g. SEAT, BMW, TESLA).
model['string', 'null']Model name (e.g. Ibiza, Model S).
version['string', 'null']Model version / trim line. Enrichment-only.
year['integer', 'null']Year of first registration (Año).
price['integer', 'null']Asking price as an integer in the listing currency.
currency['string', 'null']ISO-4217 currency code — always EUR for coches.net.
mileage_km['integer', 'null']Odometer reading in kilometres (Kilómetros).
fuel_type['string', 'null']Fuel type (Gasolina, Diésel, Híbrido, Eléctrico).
transmission['string', 'null']Transmission (Manual / Automatic). Enrichment-only.
engine_power_hp['integer', 'null']Engine power in metric horsepower (CV).
drivetrain['string', 'null']Drivetrain / traction (e.g. All, Front). Enrichment-only.
body_type['string', 'null']Body type code (coches.net bodyTypeId).
color['string', 'null']Exterior colour. Enrichment-only.
environmental_label['string', 'null']Spanish DGT environmental label (0, ECO, C, B).
first_registration['string', 'null']First-registration year as a string.
location['string', 'null']City of the listing.
region['string', 'null']Spanish province / region.
seller_type['string', 'null']private or dealer.
seller_name['string', 'null']Dealer / seller name when present.
seller_rating['number', 'null']Average seller rating (dealers only).
photo_urlsarrayList of listing photo URLs.
has_warranty['boolean', 'null']Whether the listing advertises a warranty.
warranty_months['integer', 'null']Warranty length in months when stated.
description['string', 'null']Full Spanish listing description (plain text). Enrichment-only.
posted_date['string', 'null']ISO timestamp when the listing was published.
scraped_atstringISO timestamp when this row was recorded.

Example output

{
"listing_id": "54595133",
"listing_url": "https://www.coches.net/land-rover-range-rover-velar-30-d300-221kw-300cv-se-4wd-auto-5p-diesel-2019-en-madrid-54595133-covo.aspx",
"title": "LAND-ROVER Range Rover Velar 3.0 D300 SE 4WD Auto",
"make": "LAND-ROVER",
"model": "Range Rover Velar",
"version": "3.0 D300 SE 4WD Auto",
"year": 2018,
"price": 34900,
"currency": "EUR",
"mileage_km": 101643,
"fuel_type": "Di\u00e9sel",
"transmission": "Automatic",
"engine_power_hp": 300,
"drivetrain": "All",
"body_type": "6",
"color": "Gray",
"environmental_label": "C",
"first_registration": "2018",
"location": "Majadahonda",
"region": "Madrid",
"seller_type": "dealer",
"seller_name": "Movilcar",
"seller_rating": 4.7,
"photo_urls": [
"https://a.ccdn.es/cnet/vehicles/13042849/d0305526-6eeb-4e4c-8535-4463a6c1367e.jpg"
],
"has_warranty": true,
"warranty_months": 12,
"description": "Libro de revisiones en concesionario oficial. 12 meses de garantia oficial.",
"posted_date": "2026-04-24T09:05:37Z",
"scraped_at": "2026-06-02T00:00:00+00:00"
}

💰 Pricing

Pay-Per-Event — you pay only when these events fire:

EventUSDWhat it is
actor-start$0.05One-off warm-up charge per run
result-row$0.002PPE event

Example: 1 000 results at the rates above ≈ $2.05. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.

🚧 Limitations

coches.net paginates 30 listings per page and very deep result sets eventually stop returning new pages — large queries cap out well before the quarter-million listings the site advertises. Transmission, colour, version, drivetrain, and the description come from the detail page, so they are only populated when enrichDetails is on. The body type is exposed as coches.net's internal id code, not a label. Detail enrichment adds one request per listing and roughly doubles run time.

❓ FAQ

Do I need a coches.net account or API key?

No. coches.net offers no public API. This Actor scrapes the public segunda-mano section politely — see the ToS Notice in the README.

How do I scrape a filtered search?

Apply your filters on coches.net, copy the resulting URL from your browser, and paste it into searchUrl. We walk the result pages from there.

Is the detail enrichment worth it?

It adds transmission, colour, version, drivetrain, and the full Spanish description per listing at the cost of one extra request each. Price, specs, power, seller, location, and photos all come from the search payload — set enrichDetails to false to halve requests.

What currency are prices in?

Always EUR. price is an integer in euros; mileage is always in kilometres and power in metric CV.

Why is body type a number?

coches.net stores the body type as an internal id in the listing payload; we surface it raw in body_type rather than guessing a label.

💬 Your feedback

Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.