ActorStack.dev

How to scrape Sauto.cz: Czech used cars past the 10,000-result window

Sauto.cz serves only the first 10,000 results of a search and silently ignores filters it does not recognise. How the Sauto.cz Actor handles both, what the details add-on adds — VIN included — and what a run costs.

By Oswaldo Carabano7 min read

Short answer

To scrape Sauto.cz, the largest Czech car marketplace, read its public listing data with a category and filters, and split any search larger than 10,000 results into price bands, because Sauto.cz will not page past the first 10,000. The Sauto.cz Actor does that automatically, and its bands summed to 106,825 against a parent total of 106,824 car listings. Search rows carry a median of 48 populated fields (n = 987); the details add-on raises that to 95 and returns the VIN on 88.7% of 300 listings. A thousand vehicles cost $0.90, or $2.00 with details.

Key points

  • Sauto.cz pages through only the first 10,000 results of a search, so reaching its 106,824 car listings means splitting the search into price bands.
  • Sauto.cz returns the whole catalogue with HTTP 200 when it does not recognise a filter value, so a scraper has to check that each filter narrowed the count.
  • Search-result rows from Sauto.cz carry a median of 48 populated fields, measured on 987 listings from 10 search profiles on 23 September 2026.
  • The Sauto.cz details add-on returns the VIN on 88.7% of 300 measured listings, including dealer VINs hidden on the page, flagged with `vin_hidden_on_site`.
  • Private sellers posted 7.05% of Sauto.cz car listings, and the Sauto.cz Actor withholds their phone, user ID and any VIN they hid by default.
On this page8 sections

Sauto.cz belongs to Seznam.cz and is the largest Czech car marketplace. It is easy to read and has two traps that cost a scraper real data: a hard window on how far a search pages, and filters that fail without saying so.

What Sauto.cz holds

Nine sections, measured on 23 September 2026: 106,824 cars, 7,323 vans, 2,032 trailers, 1,629 motorcycles, 1,391 campers, 1,159 trucks, 462 quads, 123 work machines and 26 buses. The website loads its listings from a public JSON interface, which is what the Sauto.cz Scraper reads — no browser, no account, no cookies. Every row carries Sauto.cz's own numeric make and model IDs alongside the names, which makes daily runs joinable without matching Czech diacritics.

The 10,000-result window, and price bands

Sauto.cz lets anyone page through the first 10,000 results of a search and no further. With 106,824 cars, an unfiltered search reaches less than a tenth of them.

The answer is the same one coches.net forces, for a different reason: split the search into slices that each fit. On coches.net the slices are facets; here they are price bands. When more than 10,000 listings match, the Actor partitions the price range until every band fits inside the window, then pages each band. The split was checked rather than assumed — the bands summed to 106,825 against the parent total of 106,824. A local test delivered 10,500 cars in 72 seconds.

Filters that fail silently

Sauto.cz does not reject a filter value it does not recognise. It ignores it and returns the whole catalogue with HTTP 200 — so a misspelled make produces a run of 100,000 cars of every make, billed in full, with nothing in the response to say what happened.

The Actor checks that every free-text make, model or district actually narrowed the result count. If it did not, the run stops with an explanation and nothing is charged. Makes and models use the spelling of sauto.cz URLs (skoda, octavia); accents and capitals are tolerated.

input.json
{
  "category": "cars",
  "manufacturer": "skoda",
  "model": "octavia",
  "region": "prague",
  "maxItems": 500,
  "includeDetails": true
}

What the details add-on adds

A search row carries a median of 48 populated fields (n = 987 listings, 10 search profiles): price on 100%, variant 95.5%, fuel 89.5%, mileage 89.3%, year 88.9%, gearbox 79.7% and first registration 61.0%. includeDetails opens each listing and the median rises to 95 (n = 300; p10 70, p90 102):

FieldFilled, n = 300
description91.0%
engine_volume_ccm91.0%
vin88.7%
engine_power_kw86.0%
equipment81.7%
service_book58.0%
first_owner53.7%
stk_valid_until51.3%
crashed_in_past42.7%
cebia_report_url14.3%

stk_valid_until is the expiry of the Czech roadworthiness inspection — the date a buyer checks first. The add-on costs one extra request per vehicle, about 22 times the bandwidth of a search row, which is why it is off by default and billed as its own event.

The VIN, including hidden ones

Czech sellers can tick an option to hide the VIN on the page. Many dealers do, and the listing data still carries it. The Actor returns the dealer VIN with vin_hidden_on_site, so the choice is visible rather than erased; a production check returned the VIN on 60 of 60 rows, 29 of them flagged as hidden on the site. A VIN that a private seller hid is handled as that person's contact data: withheld by default.

Private sellers and dealers

Dealers posted 92.95% of car listings and private sellers 7.05% (7,531 of 106,824). The share varies sharply by section — 36% of a 100-listing motorcycle sample, 4% of vans — so a private-only filter on motorcycles returns far more personal data than the headline figure suggests.

For private sellers the phone number and user ID are withheld by default, phone numbers or emails typed into descriptions are redacted, and the row says contact_redacted: true. Dealers' phones, emails and IČO company ID are always delivered — present on 100% of 193 dealer listings in the details sample. The reasoning matches the coches.net treatment of private sellers.

What Sauto.cz's robots.txt says

Downloaded on 10 October 2026, the file is 15,267 bytes. It names 18 crawlers individually — Googlebot, SeznamBot, Bingbot and others — with their own rules, and for the search engines it even allows API URLs with many parameters. It ends with a catch-all group: User-agent: * and Disallow: /. Every path the Actor uses is therefore disallowed to it.

The Actor does not filter by robots.txt; it keeps request rates low instead (concurrency 4, a global backoff on 401, 403 and 429). That is the opposite of the robots.txt-compliant approach the coches.net Actor takes, and it is stated here so nobody assumes otherwise. The five-marketplace comparison sets it beside the other four sites.

What a run costs

$0.0009 per vehicle, $0.0011 per details add-on and $0.002 per dealer profile, plus $0.00001 to start. A thousand vehicles cost $0.90, or $2.00 with details. Error rows and duplicates are never charged, and when the run's maximum charge is reached it stops cleanly: a production test with a $0.50 limit delivered 555 cars at $0.4996 and finished green. The default run, 100 cars, took 9.5 seconds on the platform.

Frequently asked questions

Can you scrape more than 10,000 results from one Sauto.cz search?
Not from one search: Sauto.cz serves only the first 10,000. The Sauto.cz Actor splits a larger search into price bands that each fit the window, and the bands summed to 106,825 against a parent total of 106,824.
Does Sauto.cz show the VIN?
Sauto.cz lets sellers hide the VIN on the page, but the listing data still carries it. The Sauto.cz Actor returns dealer VINs with a `vin_hidden_on_site` flag and withholds a VIN a private seller hid unless private contact data is explicitly enabled.
Which vehicle categories does the Sauto.cz Actor cover?
Nine Sauto.cz sections: cars, vans, trucks, motorcycles, quads, trailers, campers, work machinery and buses. Cars dominated with 106,824 listings on 23 September 2026, against 26 buses.

Sources

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

  1. Operator claimchecked 10 Oct 2026
    Sauto.cz Scraper — Actor README and input schemaActorStack / Apify Store
  2. Site declarationchecked 10 Oct 2026
    sauto.cz/robots.txtSauto.cz (Seznam.cz)
  3. 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
  4. Platform docschecked 18 Aug 2026
    Actor pricing modelsApify
A laptop screen showing a plain text-mode terminal with a command prompt.
Used carsGuide

Scrape PakWheels

What PakWheels shows a signed-out visitor, how lakh and crore prices become integers, why "Call for price" is a null and not a zero, and where the seller's phone number is — and why it stays there.

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

Autohero API

Autohero publishes no public API. What its storefronts expose across nine countries, why currencies and some columns differ by market, what the detail page adds, and how to get it as rows.

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

CarWale market valuation

CarWale publishes its own valuation next to each used car's asking price. What that number is, how often it is filled, how to use it to screen for below-market cars, and what it cannot tell you.

7 min