Sauto.cz
Sauto.cz
/sauto/v1/search1 creditSearch Sauto listings. Everything is optional — with no filters at all it returns the newest cars (category `osobni`). 🔴 Sauto applies `make`/`model` only inside a category and drops an unknown make or model in silence with HTTP 200, so this action re-runs the identical query without that filter in the same call and raises INVALID_PARAM when the source's own total did not move. Paid 'topped' ads come back in the position Sauto puts them, flagged `promoted: true`.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| category = osobni | optional | osobni · uzitkova · nakladni · motorky · ctyrkolky · privesy-navesy · obytne · pracovni-stroje · autobusy | Sauto's own vehicle section. The numeric id (838…846) is accepted too. `make`, `model` and `body` are only applied inside a category, which is why one is always sent. |
| query | optional | — | Free-text phrase, passed to Sauto's own `phrase` search over the ad title and variant. |
| make | optional | — | Manufacturer, as Sauto's own url slug (`skoda`, `bmw`, `mercedes-benz`). Call the `filters` action with filter=manufacturer_cb for the live list. A make Sauto does not know is rejected, not silently ignored. |
| model | optional | — | Model slug, e.g. `octavia`, `rada-3`. Requires `make` (Sauto keys models under the make). Call `filters` with filter=model_cb&make=<make> for the live list. |
| condition | optional | nove · ojete · havarovane · predvadeci · veteran | Vehicle condition, Sauto's own value. |
| fuel | optional | benzin · nafta · lpg-benzin · elektro · hybridni · cng-benzin · ethanol · jine · vodik | Fuel type. |
| gearbox | optional | manualni · poloautomaticka · automaticka · variator | Transmission. |
| body | optional | — | Body style, Sauto's own slug. The vocabulary differs per category (cars: hatchback, sedanlimuzina, kombi, suv, kupe, kabriolet, van, mpv, terenni, pick-up, liftback, roadster, cuv; motorcycles: skutr, nakedbike, enduro, chopper…), so outside `osobni` it is resolved against that category's live codebook. Call `filters` with filter=vehicle_body_cb for the list. |
| color | optional | bila · cerna · seda · stribrna · modra · cervena · zelena · hneda · bezova · zluta · oranzova · vinova · ruzova · fialova · zlata · bronzova · jina | Exterior colour. |
| drive | optional | 4x4 · pohon-prednich-kol · pohon-zadnich-kol | Drivetrain. |
| seller_type | optional | soukromy · autobazar | Who is selling. |
| dealer_id | optional | 1– | Only this dealership's stock. The id is the `dealer.id` of any listing it sells. |
| price_min | optional | 0– | Lowest asking price, in CZK. |
| price_max | optional | 0– | Highest asking price, in CZK. Ads priced 'by agreement' carry no number and drop out of a price band — that is Sauto's behaviour, not a parse gap. |
| mileage_min | optional | 0– | Lowest odometer reading, in km. |
| mileage_max | optional | 0– | Highest odometer reading, in km. |
| power_min | optional | 0– | Lowest engine power, in kW (Sauto's own unit; 100 kW ≈ 136 hp). |
| power_max | optional | 0– | Highest engine power, in kW. |
| engine_volume_min | optional | 0– | Smallest engine displacement, in cm³. |
| engine_volume_max | optional | 0– | Largest engine displacement, in cm³. |
| seats_min | optional | 1– | Fewest seats. |
| seats_max | optional | 1– | Most seats. |
| region_id | optional | 1– | Czech region (kraj) id, as printed in every listing's `locality.region_id`. Sauto has no radius search and no postcode filter — region or district is the whole locality vocabulary it offers. |
| district_id | optional | 1– | Czech district (okres) id, as printed in every listing's `locality.district_id`. Cannot be combined with region_id. |
| sort = newest | optional | newest · price_asc · price_desc · mileage_asc · mileage_desc · year_asc · year_desc | Result order. |
| page = 1 | optional | 1– | 1-based page. Sauto stops answering past offset 10 000, so the last reachable page is 10000 / page_size. |
| page_size = 20 | optional | 1–100 | Listings per page, 1-100. |
/sauto/v1/listing1 creditThe full detail document of one Sauto ad: description, condition, body, colour, drivetrain, engine power and displacement, doors, seats, airbags, VIN, roadworthiness (STK) expiry, service book, VAT treatment, the complete equipment list with its categories, and every photo. Takes the numeric id or a sauto.cz detail url. The seller's phone number is never fetched or returned.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| id | optional | 1– | Sauto item id — the number at the end of every detail url, and the `id` of every search hit. Give this or `url`. |
| url | optional | — | A sauto.cz detail link; the id is read off the end of it. Give this or `id`. |
/sauto/v1/filters1 creditThe resolver for `search`: Sauto's own codebooks, per category. With no `filter` it lists every filter that category publishes (name_id + Czech label + whether the search endpoint honours it). With a `filter` it returns that codebook's values — makes, models, body styles, colours, equipment codes — each with the seo slug `search` expects. Needed because the body and model vocabularies are different for cars, motorcycles and trucks.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| category = osobni | optional | osobni · uzitkova · nakladni · motorky · ctyrkolky · privesy-navesy · obytne · pracovni-stroje · autobusy | Which section's codebooks to read. |
| filter | optional | — | A filter `name_id` from this action's own no-filter listing, e.g. manufacturer_cb, model_cb, vehicle_body_cb, color_cb, equipment_cb. Omit it to see the list. |
| make | optional | — | Only with filter=model_cb: keep just this manufacturer's models. Sauto has no server-side parent filter, so the full model codebook is read and matched on each value's own parent. |
| page = 1 | optional | 1– | 1-based page over a codebook's values. |
| page_size = 200 | optional | 1–1000 | Values per page, 1-1000. |
curl -X POST https://api.reefapi.com/sauto/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}Measured at 60 requests a second across the fleet, with no central bottleneck. Volume pricing is on request, and per-key limits are raised for high-volume accounts.
Tell us a site we do not cover yet and it becomes an engine. A customer asked for bestprice.gr on a Sunday and it was in the catalog the next day.
Median time from a question in the live chat to the first answer, measured across every answered conversation. Setup help included, no support tier to buy.
No per-site plans and no separate subscriptions. One key and one credit pool across the whole catalog, so adding a source costs nothing up front.
Planning something large? Tell us the volume and the sources and we will come back with what it costs and what we would have to build.