Otomoto Listings Scraper
Pricing
from $1.00 / 1,000 listings
Otomoto Listings Scraper
Scrape Otomoto.pl vehicle listings by filters or search URL: price, full specs, equipment, seller and location for cars, motorcycles, vans and trucks. Optional seller phone numbers, VIN, description and photos. No page cap, no duplicates.
Pricing
from $1.00 / 1,000 listings
Rating
0.0
(0)
Developer
FalconScrape
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
16 days ago
Last modified
Categories
Share
🚗 Otomoto Listings Scraper
Otomoto Listings Scraper extracts vehicle listings from Otomoto.pl, Poland's largest car marketplace, with no login and no API key. Search with simple filters (make, model, price, year, mileage, fuel, body type, region) or paste any Otomoto search URL. You get clean JSON with prices, full specs, equipment, seller and location. You can also add the seller phone numbers, VIN, full description and all photos.
It covers cars, motorcycles, vans, trucks, construction and agricultural machinery, trailers and parts. Run it on the Apify platform to get scheduling, an API, webhooks and exports to Google Sheets, Excel or CSV.
✨ Features
- 🏷️ Full specs in every listing. Each row has the price (gross or net), make, model, version, year, mileage, fuel, gearbox, engine size and power, body type and colour. It also has every parameter and equipment flag the seller filled in (often 50 to 150 per car).
- 📞 Phone numbers and VIN. Turn on Include details to add the seller's phone numbers, the VIN, the full description, all photos, a grouped equipment list and the dealer's address with GPS and opening hours.
- 🔍 Filters or URLs. Use the built-in filters, or set up a search on otomoto.pl and paste the URL. Every filter, the sort order and even
page=3are kept. - 📦 No page cap. You can walk an entire category (235,000+ cars) to the last page. Each listing appears once, even when several searches overlap.
- 💸 Market signals. Each row includes Otomoto's price evaluation (below, in or above market), any recent price drop with the lowest price in the last 30 days, and promoted or highlighted flags.
💡 Use cases
- Car pricing and valuation. Compare asking prices by model, year and mileage, or track price drops over time.
- Dealer and lead research. List dealers by region with their stock, website, address and phone numbers.
- Stock monitoring. Schedule a "newest first" run to catch fresh listings for the models you buy.
- Market analysis. See the supply of EVs, hybrids or imported cars by region and price band.
🛠️ How to use
- Choose what to search. Fill in the filters (for example Make
Toyota, ModelCorolla), or paste one or more Otomoto search URLs. - Set Max listings. The default is 50. Use 0 for every result.
- (Optional) Turn on Include details to get phones, VIN, the description and photos.
- Run the Actor, then export the dataset as JSON, CSV or Excel, or read it through the API.
With empty input the Actor returns the 50 newest passenger cars.
📥 Input
| Field | Type | Description |
|---|---|---|
searchUrls | array | Otomoto search URLs. When set, the filter fields are ignored. |
category | string | cars (default), motorcycles, vans, trucks, construction, trailers, agricultural, parts |
keyword | string | Free-text search |
make / model | string | E.g. BMW / X5, or Mercedes-Benz / Klasa E |
priceMin / priceMax | integer | Price range in PLN |
yearMin / yearMax | integer | Production year range |
mileageMin / mileageMax | integer | Mileage range in km |
fuelType | array | petrol, diesel, hybrid, plugin-hybrid, electric, petrol-lpg, ... |
bodyType | array | suv, combi, sedan, compact, city-car, minivan, coupe, cabrio, mini |
gearbox | string | manual or automatic |
condition | string | used or new |
sellerType | string | private or business (dealers) |
region | string | Voivodeship, e.g. mazowieckie. For a city with a radius, paste a URL instead. |
sort | string | newest (default), relevance, priceAsc, priceDesc, mileageAsc, mileageDesc, powerAsc, powerDesc |
maxItems | integer | Maximum listings to save. Default 50, 0 = no limit. |
includeDetails | boolean | Add phones, VIN, description, photos and seller address. Default false. |
Example:
{"make": "Toyota","model": "Corolla","fuelType": ["hybrid"],"yearMin": 2019,"priceMax": 90000,"maxItems": 100}
Or paste a URL:
{"searchUrls": ["https://www.otomoto.pl/osobowe/bmw/x5/od-2018/warszawa?search%5Bdist%5D=50&search%5Bfilter_enum_fuel_type%5D=diesel"],"maxItems": 0,"includeDetails": true}
📤 Output
Each listing is one dataset item:
{"id": "6150965930","url": "https://www.otomoto.pl/osobowe/oferta/toyota-corolla-ID6IgPdU.html","title": "Toyota Corolla 1.8 Hybrid Comfort","shortDescription": "1.8 Hybrid Comfort+Tech+Nawigacja Connected","price": 94500,"currency": "PLN","priceIsGross": true,"priceLabels": ["INVOICE_ISSUED"],"priceEvaluation": "IN","priceDropPercent": null,"priceLowest30Days": null,"make": "Toyota","model": "Corolla","version": "1.8 Hybrid Comfort","year": 2023,"mileageKm": 62789,"fuelType": "hybrid","gearbox": "automatic","engineCapacityCm3": 1798,"enginePowerHp": 140,"bodyType": "combi","color": "brown","condition": "used","city": "Sulejówek","region": "Mazowieckie","sellerType": "dealer","sellerId": "11243362","sellerName": "Toyota Professional Wesoła","sellerWebsite": "https://toyota-wesola.otomoto.pl","isPromoted": true,"thumbnailUrl": "https://ireland.apollo.olxcdn.com/v1/files/owb6ftmlmlqt1-OTOMOTOPL/image;s=640x480","createdAt": "2026-10-05T10:22:23Z","parameters": {"engine_power": "140 KM","apple_carplay": "Tak","damaged": "Nie","esp": "Tak"},"scrapedAt": "2026-10-05T10:54:54.465Z"}
With Include details on, each item also has:
{"description": "AUTORYZOWANY DEALER ... SAMOCHÓD DOSTĘPNY OD RĘKI ...","images": ["https://ireland.apollo.olxcdn.com/v1/files/.../image", "..."],"phones": ["32 230 17 30"],"vin": "ZFA5FBBT9TJ142022","equipment": { "Audio i multimedia": ["Apple CarPlay", "Android Auto"] },"status": "ACTIVE","updatedAt": "2026-10-05T10:52:16Z","seller": {"name": "Ganinex Gazda Group","type": "dealer","address": "ul. Pszczyńska 306","postalCode": "44-100","city": "Gliwice","latitude": 50.29065,"longitude": 18.73022,"website": "http://www.gazdagroup.pl","activeAds": 62,"workingHours": [{ "day": 1, "isOpen": true, "openAt": "08:00", "closeAt": "17:00" }]}}
Fields the seller left empty are null. Not every listing has a VIN.
💰 How much does it cost to scrape Otomoto?
The Actor uses pay-per-event pricing, so you pay only for listings you get:
| Event | Price | When it's charged |
|---|---|---|
| Actor start | $0.00005 | Once per run |
| Listing | $0.001 ($1 per 1,000) | For every saved listing |
| Listing details | $0.002 ($2 per 1,000) | On top of the listing price, for each listing saved with details |
For example, 1,000 listings cost about $1.00, or $3.00 with phones, VIN and descriptions. Set a maximum cost per run in Apify, and the Actor stops when it reaches that cost.
⚙️ Tips
- Large runs: sort by Newest first (the default). It is the most stable order for long runs, and repeated listings are removed.
- Daily monitoring: schedule a run with
sort: newestand a smallmaxItemsto collect only fresh listings. - City plus radius: set it on otomoto.pl and paste the URL. The
distradius is kept. - Skip details when you don't need them. Listing rows already include full specs and equipment flags. Details add contact data, VIN, the description and photos.
❓ FAQ
Is it legal to scrape Otomoto? The Actor collects only publicly visible information. Phone numbers of private sellers are personal data. You are responsible for using it lawfully (e.g. GDPR) and for respecting Otomoto's terms.
Do I need a proxy? No setup is needed. The default Apify proxy is preselected and works.
Is there a result limit?
No. Every page of a search can be reached. maxItems and your maximum cost per run are the only limits.
Why did a run return fewer listings than requested? Either the search had fewer results, or some listings were removed between the search and the detail visit. Removed listings are skipped and not charged. The run's status message explains any shortfall.
🛟 Support
Missing a field or a filter? Open an issue in the Issues tab. Feedback and feature requests are welcome.