otomoto, Standvirtual & Autovit Monitor: New Cars, Price Drops avatar

otomoto, Standvirtual & Autovit Monitor: New Cars, Price Drops

Pricing

from $1.30 / 1,000 car listing returneds

Go to Apify Store
otomoto, Standvirtual & Autovit Monitor: New Cars, Price Drops

otomoto, Standvirtual & Autovit Monitor: New Cars, Price Drops

For car dealers, flippers and import brokers: new used-car listings and price drops (with the old price) from otomoto.pl, standvirtual.com and autovit.ro, plus removed cars on otomoto.pl and standvirtual.com. By make, model, price and year. Schedule hourly or daily. JSON, CSV, Excel.

Pricing

from $1.30 / 1,000 car listing returneds

Rating

0.0

(0)

Developer

NeverEmpty

NeverEmpty

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Security

Limited permissions

Share

otomoto.pl, Standvirtual & Autovit Monitor - New Used Cars & Price Drops

For car dealers, flippers and import brokers: new used-car listings and price drops (with the old price) from otomoto.pl, standvirtual.com and autovit.ro, plus removed cars on otomoto.pl and standvirtual.com. By make, model, price and year. Schedule hourly or daily. JSON, CSV, Excel.

This Actor watches used-car searches on otomoto.pl (Poland), standvirtual.com (Portugal) and autovit.ro (Romania) and returns only what changed since the last run: new cars, price drops and rises (with the previous price), and on otomoto.pl and standvirtual.com removed cars. On autovit.ro a new car is one listed after the watch started. Each row has the price with its currency (PLN or EUR), year, mileage, fuel, power, region and city, dealer or private seller, dealer name, photo, listing date and link, plus VAT flags, gearbox, engine size and the site's price evaluation (below, in or above the market range) when the site shows them. Search by make and model, price, year, mileage, fuel, body type, gearbox, seller type and region or city, or paste a search URL with filters already set on the site (the filter fields are not applied to a pasted URL). No login, no API key. Export as JSON, CSV or Excel, or send rows to Google Sheets, Slack, Make, Zapier or n8n with Apify integrations.

  • Only the changes, every run. Turn on Monitor mode and schedule the Actor. The first run returns up to maxResultsPerSearch newest cars per search (50 by default) as the starting point, charged as listings; later runs return only the changes: new, price_drop, price_up and removed rows (each kind can be switched off), plus a small run start fee per check.
  • Price drops with the old price. A car you already got whose price changed comes back as price_drop or price_up with previousPrice and priceChange (for example -2000).
  • Removed cars. On otomoto.pl and standvirtual.com, a car you got before that is gone from the part of the list the watch reads (sold, withdrawn or no longer matching) comes back once as removed, with its last title, link and price.
  • No fake new cars. Promoted or re-listed cars are not charged as new.
  • 3 countries, one run. Up to 10 searches per run (makes/models × sites + pasted URLs). Make names that a site writes differently (for example vw on standvirtual.com and volkswagen on otomoto.pl and autovit.ro) are matched for you. The same car is returned once, even when two of your searches overlap.
  • Clean numbers. price is a number in currency, mileageKm, powerHp, engineCapacityCm3 and year are numbers, fuel and gearbox are the same English words on all three sites (the site's own word is kept in fuelLocal), createdAt is the listing date.

What you get

One row per car. Example (the first check of a watch on otomoto.pl, volkswagen/golf, 2026-10-28):

{
"status": "ok",
"changeType": "new",
"isFirstCheck": true,
"listingId": "6151399744",
"url": "https://www.otomoto.pl/osobowe/oferta/volkswagen-golf-ID6IiE4U.html",
"title": "Volkswagen Golf e-Golf",
"make": "Volkswagen",
"model": "Golf",
"modelFamily": null,
"version": "e-Golf",
"price": 39900,
"currency": "PLN",
"previousPrice": null,
"priceChange": null,
"priceIsGross": true,
"priceGross": null,
"priceNet": null,
"vatInvoice": false,
"priceEvaluation": "in",
"year": 2016,
"mileageKm": 118296,
"fuel": "electric",
"fuelLocal": "Elektryczny",
"gearbox": "automatic",
"powerHp": 115,
"engineCapacityCm3": null,
"bodyType": null,
"originCountry": null,
"region": "Wielkopolskie",
"city": "Turek",
"sellerType": "dealer",
"dealerName": "AUTO HANDEL",
"photoUrl": "https://.../image;s=640x480",
"createdAt": "2026-10-28T07:24:21.000Z",
"isPromoted": false,
"firstSeenAt": "2026-10-28T08:03:00.000Z",
"site": "otomoto.pl",
"positionInSearch": 2,
"listingsInSearch": 3788,
"searchUrl": "https://www.otomoto.pl/osobowe/volkswagen/golf?search%5Border%5D=created_at_first%3Adesc",
"watchName": "readme",
"checkedAt": "2026-10-28T08:03:23.943Z"
}
FieldWhat it is
changeTypeMonitor mode: new, price_drop, price_up, removed or unchanged. Empty in a normal search.
isFirstChecktrue on the rows of a watch's first run (the starting point).
price, currencyPrice as a number and its currency (PLN on otomoto.pl, EUR on standvirtual.com and autovit.ro; a seller can list in another currency, and the row then says so). Empty when the listing shows no price.
previousPrice, priceChangeThe price at the previous check and the difference (negative = cheaper).
priceIsGross, priceGross, priceNet, vatInvoiceWhether the price includes VAT, the gross and net amounts when the site shows both, and whether the seller issues a VAT invoice.
priceEvaluationThe site's price evaluation: below, in or above the market range, or empty when the site shows none.
year, mileageKm, powerHp, engineCapacityCm3Numbers.
fuel, gearboxpetrol, diesel, electric, hybrid, plugin-hybrid, lpg, cng, hydrogen; automatic or manual. fuelLocal is the site's own word. The autovit.ro list does not show the gearbox, so there gearbox is filled only when the search is filtered by transmission.
bodyTypeFilled when the search is filtered to one body type.
region, cityWhere the car is, as shown in the list.
sellerType, dealerNamedealer, private or crosslisted, and the dealer name shown in the list.
createdAtWhen the listing was published on the site.
firstSeenAtWhen this watch first saw the car.
positionInSearch, listingsInSearchPosition in the list and how many cars the search has.
statusok for a car; otherwise a free row with a note that says why.

Input

{
"makeModels": ["bmw/seria-3", "volkswagen/golf"],
"sites": ["pl", "ro"],
"priceTo": 90000,
"yearFrom": 2018,
"mileageTo": 150000,
"fuelTypes": ["diesel", "petrol"],
"transmission": "automatic",
"maxResultsPerSearch": 50,
"monitorMode": true
}
  • makeModels: make/model as in the site's search address (bmw/seria-3, audi/a4), or a make alone (toyota).
  • sites: pl (otomoto.pl), pt (standvirtual.com), ro (autovit.ro). Empty = otomoto.pl.
  • searchUrls: paste a car search from any of the three sites with any site filter (colour, equipment, model family ...).
  • Filters: priceFrom / priceTo (PLN on otomoto.pl, EUR on the other two), yearFrom / yearTo, mileageFrom / mileageTo (km), fuelTypes, bodyTypes, transmission, sellerType, region.
  • maxResultsPerSearch: 1 to 5,000 (default 50).
  • Monitor mode: monitorMode, includePriceChanges (on), includeRemoved (on), includeUnchanged (off), watchName, resetMonitoringState.

Monitor mode

  1. Schedule the Actor (Schedules tab, for example every hour or every morning) with monitorMode: true.
  2. The first run returns the newest maxResultsPerSearch cars of each search with changeType: new and isFirstCheck: true, and remembers them.
  3. Every later run reads the list again and returns:
    • new: cars that appeared since the previous check (on autovit.ro: listed after the watch started),
    • price_drop / price_up: cars you already got whose price changed, with previousPrice,
    • removed: cars you already got that are gone from the part of the list the watch reads (otomoto.pl and standvirtual.com).
  4. A run where nothing changed returns one free no-changes row.
  5. New cars that did not fit into maxResultsPerSearch or your maximum charge are not charged and come in the next run.
  6. Use watchName to keep separate watches for the same search (one per client or per alert channel).

Pricing

Pay per event:

  • Run start: once per run that returns cars, and once per monitor-mode run that read and compared the list, even when nothing changed (it pays for the check).
  • Listing returned: per car row delivered (new, price_drop, price_up, removed, unchanged or a normal search row). Free rows are never charged.

If your maximum total charge has no room for the run start fee plus one car, the run requests nothing and is charged nothing.

Good to know

  • Model words can differ between the sites (for example the BMW 3 Series is seria-3 on otomoto.pl and autovit.ro, while standvirtual.com groups it as a model family). When a model is not found, the run returns a free row; set the search on that site and paste its address into searchUrls.
  • On otomoto.pl and standvirtual.com the list is read newest first, and a watch reads the newest maxResultsPerSearch cars plus one page. On autovit.ro the list cannot be read newest first, so a watch there reads the whole search, up to 1,280 cars; for a longer search it returns a free row asking you to narrow it (model, year, fuel, region or seller type). The autovit.ro list also changes its order from page to page, so one read can miss some cars: there a watch reports a car as new only when it was listed after the watch started, and it does not report removed cars.
  • On autovit.ro the price filter is applied to the cars' EUR prices; cars listed only in another currency are left out of a price-filtered search.
  • removed is judged on the part of the list the watch reads. A car you got long ago that has slid further down is not reported as removed.
  • The list does not mark whether a price is negotiable, so there is no negotiable flag.
  • One search pages through at most 500 pages (16,000 cars) in a normal run; narrow a larger search to reach the rest.
  • Dealer names are returned as shown in the search list. Nothing is collected from listing pages, and no private seller names or phone numbers are returned.
  • Two schedules running the same search with the same watchName at the same moment can return the same new car twice; give each schedule its own watchName.
  • No cars, nothing changed, an unknown make or model, or a page that could not be read come back as free rows that say why.
  • 256 MB by default; a monitor check of one otomoto.pl or standvirtual.com search with the default 50 cars reads 3 pages.
  • Unofficial. Reads the public search pages a person sees without logging in.

Thanks for using this Actor

We build these tools for people who run them every day, and we improve them from what users tell us.

  • Missing a field, or need another filter? Tell us in the Issues tab. If the data is there, we add it.
  • Found a bug or a wrong value? Post the run ID in the Issues tab. Wrong data is the thing we fix first.

If this Actor saved you time, a short review helps other people find it.