Otomoto.pl Scraper: Polish Car Listings & Prices avatar

Otomoto.pl Scraper: Polish Car Listings & Prices

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Otomoto.pl Scraper: Polish Car Listings & Prices

Otomoto.pl Scraper: Polish Car Listings & Prices

Scrape Otomoto.pl passenger car listings by keyword, make and model: price, make, model, year, mileage, fuel, gearbox, engine power and capacity, region and town, seller type, dealer name when listed and the site's price evaluation. Filter by price and year. Unofficial.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

reventadata

reventadata

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Features

Limited permissions

Share

Otomoto Scraper

Unofficial. This Actor is not affiliated with, authorised by, endorsed by, or in any way officially connected to Otomoto. "Otomoto" is a trademark of its respective owner and is used here only to describe what this tool reads. It reads the same public pages a browser does.

Otomoto Scraper searches Otomoto.pl, Poland's car marketplace, for passenger cars by make and model (search terms such as golf or seria 3 are matched to the site's makes and models), and returns each listing with price, make, model, version, year, mileage, fuel, gearbox, engine power and capacity, town and voivodeship, seller type and, for dealers, the dealer's name and website.

What data can you extract from Otomoto?

The results Otomoto itself returns for your search, up to your row and page caps, with the vehicle specs as structured fields rather than text: year, mileageKm, enginePowerHp (horsepower, the KM Otomoto shows) and engineCapacityCm3 are numbers. Otomoto's own signals come through too: its price indicator (priceEvaluation), a price drop with the previous price when the listing has one, gross or net price with its badges, and the CEPIK-verified flag. The Actor reads public search pages directly, so it needs no browser.

Why scrape Otomoto?

  • Cars by make and model. Search terms are matched to Otomoto's makes and models: golf is the Volkswagen Golf, seria 3 the BMW 3 Series, bmw every BMW. You fetch only that make or model.
  • No proxy required by default. Direct connection by default; proxy settings are available if needed.
  • Filters run on Otomoto's side. Price, production year, private sellers and electric fuel are sent to Otomoto, so a narrow search fetches only what matches.
  • Newest first by default. With Recommended order Otomoto repeated listings between pages (25 pages gave 819 listings, 673 distinct); the Actor drops repeated ids either way.
  • Dealer or private. sellerType says which; dealer rows carry the public dealer name.

How to scrape Otomoto

  1. Put search terms in searchQueries (a make, a model, or both: golf, bmw, volkswagen passat), or leave it empty and give a make (and model).
  2. Optionally set a price range, years, fuel or seller type.
  3. Run it. Results land in the dataset.

Input

FieldTypeMeaning
searchQueriesarrayOptional. One search per term, matched to Otomoto's makes and models (for example golf, seria 3, bmw). A term that names no make or model is skipped; if none does, the run fails with examples. Empty browses all passenger cars.
makestringOptional make slug as in Otomoto URLs: bmw, volkswagen, mercedes-benz.
modelstringOptional, needs a make: seria-3.
minPrice / maxPriceintegerOptional, PLN.
minYear / maxYearintegerOptional production-year range.
fuelTypestringany or electric.
sellerTypestringany, private, or professional (dealers; applied to the rows after fetching).
sortBystringnewest (default), priceAsc, priceDesc, relevance.
requireKeywordMatchbooleanDrops listings missing any search word in title, make, model and version. Default off; search terms already select a make or model.
maxItemsintegerCap on rows. Default 1000.
maxPagesintegerPages per search, 32 listings each plus one pinned. Default 50.
proxyConfigurationobjectOff by default.
{
"searchQueries": ["golf"],
"maxPrice": 60000,
"minYear": 2018,
"maxItems": 200
}

Output

One row, from a platform run on 2026-11-11 (keyword golf; the description is shortened). A field the listing does not give is null, for example priceDropPercent and priceDropLowestPrice (empty in all 10 rows of that run):

{
"id": "6151637721",
"url": "https://www.otomoto.pl/osobowe/oferta/hyundai-elantra-ID6IjDZf.html",
"title": "Hyundai Elantra 1.6 Smart",
"description": "Hyundai Elantra 1,6-123 KM Polski salon I właściciel",
"price": 66900,
"currency": "PLN",
"priceIsGross": true,
"priceBadges": [
"INVOICE_ISSUED"
],
"priceEvaluation": "IN",
"priceDropPercent": null,
"priceDropLowestPrice": null,
"make": "Hyundai",
"model": "Elantra",
"version": "1.6 Smart",
"year": 2021,
"mileageKm": 91000,
"fuelType": "Benzyna",
"gearbox": "Manualna",
"enginePowerHp": 123,
"engineCapacityCm3": 1598,
"countryOrigin": "Polska",
"city": "Jaworzno",
"region": "Śląskie",
"postedAt": "2026-11-11T06:32:53Z",
"imageUrl": "https://ireland.apollo.olxcdn.com/v1/files/ul714nl1jb551-OTOMOTOPL/image;s=640x480",
"sellerType": "professional",
"dealerName": "AUTO CHUDOBA.PL",
"dealerUrl": "https://autochudoba.otomoto.pl",
"badges": null,
"originAdId": null,
"cepikVerified": false,
"isPromotedTopAd": false,
"categoryId": "29",
"matchedKeyword": "golf"
}

Notes and limits

  • No phone numbers or e-mails. The search pages carry none. Only the public dealer name and website are returned; private sellers have no name in the data.
  • sellerType has three values. crosslisted marks an ad that Otomoto shows from OLX; the data does not say who sells it, and originAdId is the OLX ad id.
  • One pinned listing per page. Otomoto adds one promoted listing to every results page; isPromotedTopAd marks it. A listing is returned once per run.
  • description is the short text shown in search results, often empty.
  • Search terms are makes and models, not free text. A word that is neither (a trim such as gti, a nickname such as vw) matches nothing; use the make and model, then read version in the rows. A model name that several makes use (mini) searches each.
  • Passenger cars only. Other Otomoto categories are not covered.
  • Fuel filter offers electric only; every row carries fuelType, so filter other fuels in the output.
  • A run that returns zero rows fails when a page could not be read, and succeeds with a message when Otomoto answered and nothing matched.

How much does it cost to scrape Otomoto?

Pay-per-event: you pay per result written to the dataset, with no subscription. The current price is on the Actor's Pricing tab.

FAQ

Is a proxy required? No proxy is required by default. An optional proxy setting is available.

Privacy & Compliance

This Actor reads only publicly accessible pages and returns the public data they show. It sends no login.