ActorStack.dev

Building a Spanish car dealer list: fields, coverage and what is off limits

Dealer profiles come with business phone, address, postcode and province at 100% coverage on a 60-dealer sample. Private sellers' numbers are never included, and that is not a configuration gap.

By Oswaldo Carabano7 min read

Short answer

Dealer profiles from coches.net carry `dealer_id`, name, contract id, phone, province, province id, postal code, pack and active status — all at 100% on a 60-dealer sample, with street address and stock page URL at 96.7%. Private sellers' phone numbers are never returned under any setting, because informing roughly 107,000 individuals as GDPR Article 14 requires is not achievable.

Key points

  • Nine of eleven dealer fields were present on 100% of a 60-dealer sample; street address and stock URL on 96.7%.
  • Dealer phone numbers appear on 100% of dealer listings: they are published business contact details.
  • Private sellers' phone numbers are `null` always, with no setting to change it — the reason is legal, not technical.
  • Dealers are also the segment that carries the marketplace valuation, at 86.6% against 38.2% for private sellers, so dealer-focused work is better instrumented in every direction.
  • `scrapeDealers` is off by default and billed separately at $0.004 per profile, so a dealer sweep is a deliberate decision.
On this page6 sections

Dealers are the segment of the Spanish used-car market that can actually be worked at scale: they publish business phone numbers, they trade continuously, and they carry the marketplace's valuation on 86.6% of their listings against 38.2% for private sellers. Everything about the data is better instrumented on that side of the market.

What a dealer profile contains

Turn on scrapeDealers and a second dataset appears with one row per dealer: internal id, name, external contract id, phone, province and province id, postal code, commercial pack, active status, street address and stock page URL.

The pack field is more useful than it looks — it indicates the tier of listing package the dealer buys, which is a rough proxy for size and marketing spend. Combined with the count of their listings in the main dataset, it gives you a two-dimensional sense of the business before you speak to anybody.

Measured coverage

On 60 dealer profiles:

FieldsPresent
dealer_id, name, external_contract_id, phone, province, province_id, postal_code, pack, is_active100%
Street address, stock page URL96.7%

Phone numbers also appear on 100% of dealer listings in the main dataset, so for a contact list you do not strictly need the dealer sweep — you need it when you want the address, the postcode and the pack.

Why private numbers are excluded permanently

Roughly 40% of listings on coches.net are posted by private individuals, and the site exposes their mobile numbers in the page source. This Actor never returns them: when seller_type is private, seller_phone is null, always, and there is no setting to change it.

Article 14 of the GDPR requires that when you obtain someone's personal data from a source other than the person, you inform them — as a rule within one month. For roughly 107,000 private sellers, nobody can do that. A configuration toggle would not remove the obligation; it would move it to whoever flipped the switch, usually without them noticing. The full reasoning.

A dealer-list workflow

input.json
{
  "maxResults": 5000,
  "provinces": ["madrid", "barcelona", "valencia", "sevilla"],
  "scrapeDealers": true,
  "maxDealers": 400,
  "maxCacheAgeDays": 7
}

Five thousand listings ($10) plus four hundred dealer profiles ($1.60). Then aggregate the main dataset by dealer to get stock count, median asking price, badge mix and make concentration, and join it to the dealer rows on the seller identifier.

The result is a prioritised list where each row carries a phone number and a reason to call: “38 cars in stock, median €14,200, 60% diesel with no badge” is a conversation opener that a name and a number is not.

Enriching dealers with their inventory

This is where the two datasets earn their separation. A dealer row is one record; their inventory is many. Keeping them apart means the dealer table stays one row per business — and the aggregations you build on top are yours to define rather than baked into a flattened export.

Useful derived columns: stock count, median and spread of asking price, share of listings carrying the valuation, share below market, average mileage, badge distribution, and the ratio of Km 0 to used — Km 0 being self-registered nearly-new stock, which indicates a dealer with manufacturer relationships.

Cost

$0.004 per dealer profile and $0.002 per listing. A four-province sweep as above is under $12 and produces a contact list with business context attached. Error rows are never charged, and maxDealers is a hard cap, so the spend is bounded before the run starts.

Frequently asked questions

Can I get car dealer phone numbers from coches.net?
Yes. Dealer phone numbers are published business contact details and appear on 100% of dealer listings and dealer profiles.
Can I get private sellers' phone numbers?
No, and there is no option that changes it. GDPR Article 14 requires informing a person within one month when you collect their data indirectly, and for roughly 107,000 private sellers on the site that cannot be done by anyone. The listing URL is in every row and the site's own contact form is on the page.
How many dealers are there on coches.net?
The Actor does not claim a total. `maxDealers` caps how many profiles a run returns, and the dealer section of the site is what discovery walks — the honest answer is that the count is whatever the site currently publishes.

Sources

Every URL below was requested and returned a page on the date shown.

  1. Operator claimchecked 18 Aug 2026
    Coches.net Car Listings & Dealer Scraper — Actor README and input schemaActorStack / Apify Store
  2. Law or regulatorchecked 18 Aug 2026
    Art. 14 GDPR — Information to be provided where personal data have not been obtained from the data subjectRegulation (EU) 2016/679
  3. Site declarationchecked 18 Aug 2026
    coches.net/robots.txtcoches.net
A desk with stacked legal reference books, loose documents and a newspaper.
coches.netExplainer

GDPR and classifieds

Scraping a marketplace means scraping individuals. Article 14 attaches an obligation to that which no scraper can discharge at scale — and a setting does not remove it, it transfers it.

7 min
A laptop screen showing a plain text-mode terminal with a command prompt.
coches.netExplainer

Coches.net API

Coches.net publishes no public listing API. What it does publish is a server-rendered payload and a detailed robots.txt — which together define exactly what a compliant integration can read.

6 min
Aerial view of a vehicle storage lot with cars parked in long, even rows.
coches.netReference

Coches.net data fields

A reference for the 55 fields in a coches.net listing row, each with the percentage of 550 real listings that had it filled, plus the two fields deliberately left out.

7 min