ActorStack.dev
E-commerceLead generationv0.1.3updated 30 September 2026

Sauto.cz Scraper — Czech Used Cars, VIN, Equipment & Dealers

No login. No cookies. No browser.

Extracts vehicle listings from Sauto.cz, the largest Czech car marketplace, across nine categories from cars to buses, with Sauto.cz's own numeric make and model IDs on every row. An optional details add-on opens each listing for the VIN, the full equipment list, the STK inspection date and the dealer's phones, emails and company ID.

oswaldocarabano/sauto-scraper

input.json
{
  "category": "cars",
  "manufacturer": "skoda",
  "model": "octavia",
  "region": "prague",
  "maxItems": 500,
  "includeDetails": true
}
Version
v0.1.3
Memory
512 MB
Browser
none
Proxy
None needed: Sauto.cz answers directly

Short answer

The Sauto.cz Scraper extracts vehicle listings from Sauto.cz, the largest Czech car marketplace, with a median of 48 populated fields per row from the search results alone (n = 987 listings, 10 search profiles, 23 September 2026) and 95 with the details add-on (n = 300). The add-on returns the VIN on 88.7% of those 300 listings, the full equipment list on 81.7% and the STK inspection date on 51.3%. Sauto.cz only pages through the first 10,000 results of a search, so larger searches are split into price bands automatically. Pricing is $0.0009 per vehicle and $0.0011 per details add-on. Private sellers' phone numbers and user IDs are withheld by default.

Key points

  • The Sauto.cz Scraper returns a median of 48 populated fields per vehicle from the search results alone, measured on 987 listings from 10 search profiles on 23 September 2026.
  • The details add-on raises the median to 95 populated fields and returns the VIN on 88.7% of 300 measured listings, including dealer VINs the site hides on the page.
  • Sauto.cz pages through only the first 10,000 results of any search, so the Actor splits larger searches into price bands; the bands summed to 106,825 against a parent total of 106,824.
  • Private sellers were 7.05% of Sauto.cz car listings (7,531 of 106,824 on 23 September 2026), and their phone, user ID and any VIN they hid are withheld by default.
  • Sauto.cz's robots.txt disallows everything to user agents it does not name, and the Sauto.cz Actor does not filter its requests by robots.txt.
  • A thousand vehicles cost $0.90 from search results, or $2.00 with the details add-on, and error rows are never charged.
On this page11 sections

What it does

Extracts vehicle listings from Sauto.cz, the largest Czech car marketplace, across nine categories from cars to buses, with Sauto.cz's own numeric make and model IDs on every row. An optional details add-on opens each listing for the VIN, the full equipment list, the STK inspection date and the dealer's phones, emails and company ID.

output — one row
{
  "record_type": "car",
  "id": 210980478,
  "url": "https://www.sauto.cz/osobni/detail/skoda/octavia/210980478",
  "title": "Škoda Octavia, 1.5 TSI, Ambition Plus",
  "manufacturer": "Škoda",
  "model": "Octavia",
  "variant": "1.5 TSI, Ambition Plus",
  "price_czk": 270000,
  "price_currency": "CZK",
  "mileage_km": 166420,
  "first_registration_date": "2019-06-04",
  "fuel": "petrol",
  "gearbox": "automatic",
  "engine_power_kw": 110,
  "body_type": "estate",
  "color": "white",
  "vin": "TMBJR7NE4K0205606",
  "vin_hidden_on_site": false,
  "equipment_count": 24,
  "service_book": true,
  "stk_valid_until": "2027-05-13",
  "region": "Hlavní město Praha",
  "seller_type": "dealer",
  "dealer_name": "AAA AUTO",
  "contact_redacted": false,
  "details_included": true,
  "scraped_at": "2026-09-23T18:49:48.541Z"
}

Why this one

Past the 10,000-result window, by price band

Sauto.cz serves only the first 10,000 results of a search. When more match, the Sauto.cz Actor splits the search into price bands that each fit the window, and the split was checked against the parent count: 106,825 summed against 106,824 reported. A local test delivered 10,500 cars in 72 seconds.

The VIN, including the ones hidden on the page

Many Czech dealers tick the option to hide the VIN on the web page while the listing data still carries it. The Sauto.cz Actor returns the dealer VIN with a `vin_hidden_on_site` flag, so a buyer can see which dealers chose not to display it. A VIN a private seller hid is treated as that person's contact data and withheld by default.

Filters that are checked rather than trusted

Sauto.cz silently ignores a value it does not recognise and returns the whole catalogue with HTTP 200. The Sauto.cz Actor checks that a free-text make, model or district actually narrowed the result count, and stops with an explanation, charging nothing, when it did not.

Numeric make and model IDs on every row

Make and model arrive as names, URL slugs and Sauto.cz's own numeric IDs, which makes runs joinable across days without string matching on Czech diacritics.

Use cases

  • Build a Czech used-car price dataset or valuation model from price, mileage, year, fuel, gearbox and make and model IDs.
  • Watch a make, model or region daily, sorted by newest, as a dealer or importer.
  • Compile a Czech car dealer list with phones, emails, website, IČO company ID, address and opening hours.
  • Check a specific car before buying: VIN, service book, first owner, crash flag and STK validity from the add-on.
  • Track EV and hybrid supply with the fuel filter.

Input

Every field has a default, and the defaults are deliberately small so a first run is cheap enough to inspect before you commit to a sweep. This table mirrors the Actor's own input schema field for field.

FieldDefaultWhat it does
categorystringcarsVehicle categorycars, vans, trucks, motorcycles, quads, trailers, campers, machinery or buses.
manufacturerstring(all makes)MakeAs in sauto.cz URLs, e.g. `skoda`, `volkswagen`. Accents work. An unknown make stops the run and nothing is charged.
modelstring(all models)ModelAs in sauto.cz URLs, e.g. `octavia`. Needs a make.
fuel / gearbox / bodyType / conditionstringanyVehicle filtersDropdowns verified against the live site.
sellerTypestringanySeller typepersonal data`dealer` or `private`. Dealers held about 93% of car listings when measured.
region / districtstringanyLocationOne of the 14 Czech regions (kraj), and optionally a district slug such as `brno-mesto`.
priceMin / priceMaxinteger—Price range (CZK)Asking price in Czech koruna.
mileageMin / mileageMax, yearFrom / yearTo, powerMinKwinteger—Numeric filtersOdometer, manufacturing year and minimum power in kW.
sortBystringnewestSort byAbove 10,000 matches the search is split into price bands and the sort applies inside each band.
maxItemsinteger100Maximum resultsHard cap per run, up to 100,000.
includeDetailsbooleanfalseInclude full vehicle details (add-on)Opens each listing for about 40 more fields, VIN included. Billed as its own event, about one extra request per vehicle.
outputTypestringcarsOutput type`cars` or `dealers` (one row per dealer found by your filters).
includePrivateSellerContactbooleanfalseInclude private sellers' contact datapersonal dataOff by default. Turn on only with a lawful basis to process private persons' data.
maxConcurrencyinteger4Parallel detail requestsDetail pages fetched at once when the add-on is on.

Output and fill rates

A field being in the schema is not the same as it having a value. The percentages below were counted on real runs; the sample sizes are in Measurements. Anything not listed here is not promised.

FieldFilledMeaning
idinteger100%Sauto.cz listing identifier.
urlstring100%Public listing URL.
titlestring100%Listing title as published, in Czech.
manufacturer / manufacturer_idstring / integer100%Make, with Sauto.cz's numeric ID and URL slug.
model / model_idstring / integer100%Model, with numeric ID and slug.
variantstring95.5%Trim or engine name.
price_czknumber100%Asking price in CZK; `price_currency` states it on every row.
price_by_agreementboolean100%Price on request.
mileage_kminteger89.3%Odometer reading in km.
manufactured_yearinteger88.9%Year of manufacture.
first_registration_datedate61%Date of first registration.
fuelstring89.5%English value, with the Czech original in `fuel_raw`.
gearboxstring79.7%Manual, semi-automatic or automatic, with `gearbox_raw`.
region / districtstring100%Czech region and district, with IDs and slugs.
municipalitystring49%Municipality, when the listing gives one.
imagesstring[]100%Photo URLs, with `image_count`.
cebia_verifiedboolean100%Whether the listing carries the Cebia verification flag.
seller_typestring100%`dealer` or `private`.
dealer_name / dealer_idstring / integer66.9%The dealer. 66.9% of the 987-listing sample, which is 100% of its dealer rows.
vinstring88.7%Details add-on only. Measured on 300 listings (193 dealer, 107 private).
vin_hidden_on_siteboolean100%Details add-on. Whether the seller chose to hide the VIN on the page.
equipment / equipment_groupedstring[] / object81.7%Details add-on. Full equipment list in Czech, and grouped by category.
engine_power_kwnumber86%Details add-on.
descriptionstring91%Details add-on. Seller's text, with contacts redacted on private listings.
service_bookboolean58%Details add-on.
stk_valid_untildate51.3%Details add-on. Expiry of the Czech roadworthiness inspection.
crashed_in_pastboolean42.7%Details add-on. Seller-declared accident history.
dealer_phones / dealer_emails / dealer_icostring[] / string[] / string64.3%Details add-on. 100% of the 193 dealer listings in the 300-listing sample; never filled for private sellers.
contact_redactedboolean100%Whether private-seller contact data was withheld on this row.
scraped_atdatetime100%When the row was read from Sauto.cz.

Every key is always present. A field that exists but is empty comes back as explicit null, so a parser never has to guess.

Datasets

Different record types go to different datasets, so the main table never carries columns that are blank on most rows.

  • defaultOne row per vehicle, or one row per dealer when `outputType` is `dealers`. One row type per run.billed
  • Error rowsRows with `record_type: error` explaining what failed. Never charged.never billed
  • RUN_SUMMARY (key-value store)Matched, delivered and charged counts and why the run stopped.never billed
  • ERRORS (key-value store)Always written; empty on a clean run.never billed

Pricing

Pay per delivered result. Charges are applied as each row is produced rather than in a lump at the end, so an aborted run bills only for what it actually gave you.

EventPriceNotes
apify-actor-startActor start$0.00001Once per run.
carVehicle listing$0.0009One vehicle row from the search results: price, mileage, year, fuel, gearbox, make and model with IDs, location, photos, Cebia flag and dealer.
car-detailsFull vehicle details add-on$0.0011Only with `includeDetails`: VIN, description, equipment, engine, STK date, GPS and the dealer's contact card.
dealerDealer profile$0.002Only with `outputType: dealers`: phones, emails, website, IČO, address, GPS, rating and total listings.

Measurements

Each figure is shown with the method that produced it. A benchmark without a method is a marketing claim wearing a number's clothes.

Search-result fill rates

median 48 populated fields per row

n = 987 listings from 10 search profiles, live site, 23 September 2026 (README and the repository's generated schema table).

Details add-on fill rates

median 95 populated fields (p10 70, p90 102); VIN 88.7%

n = 300 listings with details, 193 dealer and 107 private, 23 September 2026.

Dealer contact coverage

phones, emails and IČO on 100% of dealer listings

n = 193 dealer listings inside the 300-listing details sample.

Price-band split accuracy

106,825 summed against 106,824 reported

All car listings on 23 September 2026, split into bands that each fit the 10,000-result window.

Private-seller share

7.05% of car listings

7,531 of 106,824 car listings on 23 September 2026, counted with the site's own private-seller facet.

Throughput

10,500 cars in 72 seconds; 100 rows in 9.5 s on the platform

The first is a local test past the 10,000 window; the second the default input on Apify at 512 MB, build 0.1.3.

What it will not do

Stated plainly so you can judge fit before spending anything.

  • Search-result rows do not carry the VIN, the equipment list or dealer contacts; those need the details add-on, which costs one extra request and $0.0011 per vehicle.
  • Sauto.cz's own window stops at 10,000 results per search; the price-band split covers larger searches, but a single band that still exceeds the window cannot be split by price further.
  • `maxItems` is a hard cap of 100,000 rows per run.
  • Sauto.cz's robots.txt (checked 10 October 2026) ends with `User-agent: *` / `Disallow: /`. The Sauto.cz Actor does not filter by robots.txt.
  • The Actor never logs in and never resolves CAPTCHAs; dealer premises pages that answer 401 are not requested.

Privacy

  • Private sellers were 7.05% of car listings (7,531 of 106,824, 23 September 2026). By default their phone number and user ID are withheld, phone numbers or emails typed into their description are redacted, and the row carries `contact_redacted: true`.
  • A VIN that a private seller chose to hide is withheld by default as well, because the seller asked for it not to be shown.
  • `includePrivateSellerContact` turns those fields on. Use it only with a lawful basis under the GDPR.
  • Dealers' business contact data — phones, emails, website and IČO — is always delivered. A seller that cannot be verified as a dealer is treated as a private seller.
  • Removal requests: privacy@actorstack.dev

See also the data removal process.

Frequently asked questions

Is there an official Sauto.cz API?
Sauto.cz does not offer a public API for third parties. The Sauto.cz Scraper reads the same public listing data the website loads, with no account and no cookies, and returns it as JSON, CSV or Excel through the Apify API.
Does the Sauto.cz Scraper return the VIN?
Yes, with the details add-on: the VIN came back on 88.7% of 300 measured listings. Dealer VINs are returned even when the dealer hid them on the page, flagged with `vin_hidden_on_site`; a VIN a private seller hid is withheld by default.
How many listings can one Sauto.cz run return?
Up to 100,000, the hard cap on `maxItems`. Sauto.cz itself serves only the first 10,000 results of a search, so above that the Actor splits the search into price bands automatically.
Does the Sauto.cz Scraper respect robots.txt?
No. Sauto.cz's robots.txt names 18 crawlers and disallows everything to every other user agent, and the Actor does not filter its requests by it. The run rate is kept low: concurrency 4 and a global backoff on 401, 403 and 429.
What does a Sauto.cz run cost?
$0.0009 per vehicle, plus $0.0011 per vehicle for the details add-on and $0.002 per dealer profile. A thousand vehicles cost $0.90, or $2.00 with details, and error rows and duplicates are never charged.
Can I get Czech car dealer contacts?
Yes. Set `outputType` to `dealers`, or turn on the details add-on for vehicle rows. Phones, emails and the IČO company ID were present on 100% of 193 measured dealer listings.

Guides for this Actor