Otomoto Cars Scraper (Poland)
Pricing
from $0.56 / 1,000 results
Otomoto Cars Scraper (Poland)
Scrapes used and new car listings from Otomoto, Poland's largest car marketplace, by brand and region. Every row carries price, mileage, fuel type, gearbox, year, location, seller info and images.
Pricing
from $0.56 / 1,000 results
Rating
0.0
(0)
Developer
Ibnu Adzim
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrapes used and new car listings from Otomoto — Poland's largest car marketplace.
Public data only. No login, no cookies, no browser. No bot challenge on any of 8 TLS profiles tested across search and detail pages.
The one thing you need to know before using this
A brand or region Otomoto doesn't recognise is silently dropped — you get the whole country's listings instead, with a healthy 200.
/osobowe/notarealbrand and /osobowe/audi/notarealregion both answer 200
with the national total, not an error and not a smaller parent-scope
total. This actor reads Otomoto's own appliedFilters/appliedLocation
fields — which genuinely say what was applied — and if your brand or region
was silently dropped, it stops before paging and reports
brandApplied/regionApplied: false with zero rows, rather than handing
you the wrong scope labelled as the one you asked for.
Region is a closed list of Poland's 16 voivodeships, each individually verified, so a typo there is refused before the run starts. Brand has no practical fixed list (Otomoto covers dozens of makes), so it stays free text and is checked the way described above instead.
What you get
Three record types share one dataset, told apart by recordType.
CAR — one row per listing
Upstream's object, passed through verbatim: title, price, mileage, fuel
type, gearbox, year, location (city + voivodeship), seller info, images,
and a parameters list. With Fetch full car details on, each row also
gets a detail object: full equipment list, a richer parametersDict,
AI-generated summary where present, and verified-car badges.
SEARCH_SUMMARY — one row per (brand, region) query
Otomoto's own match total, requests spent, pages fetched, the filters
actually sent, and brandApplied/regionApplied.
ERROR — one row per input that could not be processed
Every input maps to at least one row, so nothing disappears silently.
Input
| Field | What it does |
|---|---|
| Search queries | [{"brand": ..., "region": ...}, ...]. Both may be empty for "everything". |
| Fuel type | Petrol, diesel, electric, hybrid, LPG, plug-in hybrid. |
| Minimum / maximum price (PLN) | Verified real. |
| Minimum / maximum mileage (km) | Verified real. |
| Fetch full car details | One extra request per listing. Off by default. |
| Max cars per query | 0 for everything Otomoto will serve. |
| Max concurrent requests / Minimum seconds between requests | Throughput controls. |
Known limits
- Cars only. Otomoto also lists motorcycles, trucks and parts on presumably similar infrastructure — not verified or covered here.
- Brand is not validated against a fixed list (there isn't a practical
one) — a typo is caught at runtime via
brandApplied: falserather than refused up front like region is. - A dead or malformed listing URL doesn't always 404 — Otomoto answers a malformed id with HTTP 520 and a well-formed-but-missing id with a clean 404, both serving the site's generic homepage. This actor treats both the same way (a failed detail fetch, not a crash).