Autovit.ro Used Car Listings Scraper
Pricing
$1.00 / 1,000 results
Autovit.ro Used Car Listings Scraper
Scrape every autovit.ro used-car listing - make, model, year, mileage, RON/EUR price, seller & location. Pay per result, no proxy. Anunturi auto RO.
Pricing
$1.00 / 1,000 results
Rating
0.0
(0)
Developer
Extractify Labs
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🚗 Autovit.ro Used Car Listings Scraper
Pull every used car on autovit.ro, Romania's biggest car marketplace, as one clean row per advert. You get the full spec sheet, the seller, the price in RON or EUR, the location, the photos and the VIN signal. You pay only for the rows you actually pull. No monthly subscription, and no proxy to go out and buy.
You don't supply any URLs. The Actor walks the whole Autoturisme (passenger cars / mașini second-hand) catalogue on its own, about 43,700 live adverts, straight off autovit.ro's own public listings data layer. It hands back one flat row per car with up to 127 fields each.
Want a slice instead of everything? Filter by make, model, year, price, mileage, fuel, gearbox, body type and seller type, pick how results are sorted, and set how many cars to collect. Leave the filters empty and you get the entire catalogue. Need the chassis number? Flip on the opt-in VIN toggle and the VIN and the first-registration date come back in cleartext, on a plain no-proxy run.
🔑 Romanian keywords: anunțuri auto România, mașini second-hand, autoturisme, dealer auto, preț mașini, scraper autovit, listări auto, VIN auto, date vânzător.
📌 Pe scurt (Română)
Acest Actor extrage anunțurile de mașini second-hand de pe autovit.ro (categoria Autoturisme) prin API-ul public al site-ului: aproximativ 43.700 de anunțuri, câte un rând pentru fiecare anunț, cu până la 127 de câmpuri fiecare. Fiecare rând include marca, modelul, anul, kilometrajul, prețul (RON sau EUR), combustibilul, cutia de viteze, caroseria, dotările, fotografiile, coordonatele geografice, datele vânzătorului și indicatorul de evaluare a prețului.
Poți filtra după marcă, model, an, preț, kilometraj, combustibil, cutie de viteze, caroserie și tip vânzător, alegi modul de sortare și câte mașini colectezi. Plătești doar pentru rândurile extrase, fără abonament și fără proxy de cumpărat.
VIN-ul și data primei înmatriculări sunt afișate de site doar după un pas de dezvăluire. Le poți obține în clar cu opțiunea (dezactivată implicit) extractVin (VIN + data înmatriculării), cu o cerere suplimentară per anunț, pe o rulare fără proxy. Numărul de telefon al vânzătorului este publicat doar pe pagina HTML de detaliu (blocată pentru serverele Apify), așa că Actorul nu îl decodează în clar: primești doar indicatorul de prezență (phone_available) și token-ul criptat al site-ului (phone_token). Numele și locația vânzătorului rămân în clar și sunt date cu caracter personal: folosește-le conform temeiului tău legal (GDPR).
Acoperă doar Autoturisme (mașini de pasageri). Alte categorii de pe autovit.ro (autoutilitare, camioane, motociclete, piese, remorci, utilaje) nu sunt incluse.
Instrument independent, neoficial. Fără nicio legătură cu autovit.ro sau OLX Group.
👤 Who it's for
- 🏷️ Used-car dealers, flippers and price aggregators. See who's listing what, at what RON or EUR price, with which market-position badge, across the whole country. Price your own stock against the live market every morning.
- 📈 Market analysts watching supply, pricing and dealer activity in the Romanian and wider CEE used-car scene.
- 🤖 Data-science and ML teams who need a clean, complete, numeric-heavy corpus of Romanian used-car listings to train or backtest a price model.
✅ What you get
- The whole advert, not a thin scrape. Up to 127 structured fields per car, one flat row per listing. Drop it straight into a spreadsheet or a database.
- 💸 Price intelligence baked in. The price in the ad's own currency (EUR or RON, whatever the seller chose), a gross/net (TVA) flag, a market-position price-evaluation indicator (below / above / in market), and a 30-day price-drop marker.
- 🔧 A complete spec sheet. Make, model, version, generation, year, mileage, body type, doors, seats, colour, fuel, engine size and power, gearbox, drivetrain, emissions, plus battery capacity and range for EVs.
- 📋 Condition and history flags. Damaged, no-accident, first-owner, full service book, imported, country of origin.
- 🔑 VIN and registration date on demand. One opt-in toggle pulls the chassis number and the first-registration date in cleartext when you need them, on a plain no-proxy run. It stays off by default so the fast run stays fast and cheap.
- 🛡️ Trust signals. The RAR / CEPIK government-database verification badge and the list of fields it covers.
- 🎛️ The full equipment list. Grouped and flat feature lists (audio, comfort, electronics, performance, safety) captured wholesale, so nothing gets thrown away.
- 📸 Photos and a map pin. Full-resolution photo URLs, a photo count, and listing latitude / longitude on the standard run.
- 🏢 Complete seller and dealer info. Seller name, id, type (dealer vs private), dealer profile URL, website, package, active-ad count, badges, working hours and services.
- ⚙️ Filters that actually work. 11 server-side filters (make, model, year range, price range, max mileage, fuel, gearbox, body type, seller type) and 8 sort modes.
- ⚡ Fast and cheap out of the box. Runs with no proxy by default (a polite single-IP crawl). Apify Proxy is there if you want it, billed to your own account.
📦 What's in scope (and what isn't)
This Actor covers Autoturisme only: passenger cars, the mașini second-hand section of autovit.ro. That's category 29, the part of the site most buyers mean when they say "autovit listings."
autovit.ro also runs several other sections that this Actor does not touch:
| Section on autovit.ro | Covered here? |
|---|---|
| Autoturisme (passenger cars) | ✅ Yes |
| Autoutilitare (vans / light commercials) | ❌ Not covered |
| Camioane (trucks) | ❌ Not covered |
| Motociclete (motorcycles) | ❌ Not covered |
| Piese (parts) | ❌ Not covered |
| Remorci (trailers) | ❌ Not covered |
| Utilaje agricole / Agro | ❌ Not covered |
| Utilaje construcții (construction machinery) | ❌ Not covered |
Those are different catalogues with different fields, so they belong in their own dedicated Actors rather than being bolted onto a passenger-car tool. They're on the roadmap as companion Actors. If a passenger-car feed is what you're after, this is the one.
⌨️ Input
Everything is optional. Leave it all on the defaults and the Actor does a small, fast test crawl: the 10 cheapest cars, no proxy. Add filters to narrow things down, and raise Maximum results when you want the full catalogue.
| Field | Type | Description |
|---|---|---|
make | string | Manufacturer, as the lowercase autovit.ro slug (audi, bmw, dacia, volkswagen, ford…). Empty = all makes. |
model | string | Model slug, paired with make (a4, golf…). Empty = all models. |
yearFrom | integer | Only cars from this production year or later. |
yearTo | integer | Only cars from this production year or earlier. |
priceFrom | integer | Minimum price, in the listing's own currency (EUR or RON, set per ad). |
priceTo | integer | Maximum price, in the listing's own currency (EUR or RON, set per ad). |
mileageTo | integer | Only cars at or below this many kilometres on the clock. |
fuelType | string | One fuel type: petrol, diesel, hybrid, plugin-hybrid, electric, lpg, cng, hydrogen, ethanol. Empty = all. |
gearbox | string | manual or automatic. Empty = both. |
bodyType | string | One body style: sedan, compact, station-wagon, suv, coupe, cabrio, minivan, city-cars, pickup. Empty = all. |
sellerType | string | private or dealer (professional). Empty = both. |
sortBy | string | Result order: price low→high (default), price high→low, mileage low/high, engine power low/high, newest first, or most relevant. |
maxItems | integer | Stop after this many cars. Default 1000; the prefilled test run uses 10. Lower it for a quick test, raise it for the whole catalogue. |
extractVin | boolean | Pull the cleartext VIN (chassis number) and the first-registration date for each car. One extra request per ad, so it's slower, but it works fine on a No proxy crawl. Leave it off and you still get the has_vin / registered presence flags. Default false. |
proxyType | string | none (fastest, cheapest, recommended) or apify (route through Apify Proxy on your own account, only if you want to rotate IPs). Default none. |
proxyConfiguration | object | Apify Proxy settings. Only used when proxyType is apify; charged to your own Apify account. |
Example 1: the default test run
This is exactly the prefilled input. Run it as-is. It grabs the 10 cheapest listings with no proxy and the VIN toggle off, and it's done in a few seconds.
{"maxItems": 10,"sortBy": "filter_float_price:asc","extractVin": false,"proxyType": "none"}
Example 2: a filtered crawl with VIN + registration date (diesel Audis from 2016, up to €15,000)
extractVin adds the cleartext chassis number and first-registration date and still runs on No proxy.
{"make": "audi","fuelType": "diesel","yearFrom": 2016,"priceTo": 15000,"maxItems": 100,"sortBy": "filter_float_price:asc","extractVin": true,"proxyType": "none"}
📊 Output
Every result is one used-car advert, flattened into a single object. Results land in the run's dataset and export to JSON, CSV, Excel, or pull them over the API.
A quick look at the headline fields
| Field | Type | Description |
|---|---|---|
id | string | Numeric advert ID. The stable primary key and the dataset dedup key. |
url | string | Direct link to the advert detail page. |
title | string | Advert headline. |
make | string | Manufacturer slug. |
model | string | Model. |
version | string | Trim / version (seller-optional). |
year | integer | Production year. |
mileage | integer | Odometer reading, in kilometres. |
price_value | number | Price in the ad's own currency. No conversion. |
currency | string | The ad's currency: EUR or RON. |
price_evaluation | string | Market position: BELOW, ABOVE, IN or NONE. |
fuel_type | string | petrol, diesel, hybrid, electric, and so on. |
gearbox | string | manual or automatic. |
engine_power | integer | Power in horsepower (CP). |
body_type | string | Body style (sedan, suv, coupe…). |
location_city | string | Listing city. |
location_region | string | Listing region (județ). |
location_lat / location_lon | number | Latitude / longitude. |
seller_type | string | PROFESSIONAL (dealer) or PRIVATE. |
seller_name | string | The seller / dealer name shown on the listing. |
cepik_verified | boolean | Government-database (RAR/CEPIK) verification badge. |
has_vin | boolean | Flag that a VIN exists on the ad. |
vin | string | Cleartext VIN, when extractVin is on. |
phone_available | boolean | Flag that the ad carries a seller phone number. |
photos | array | Full-resolution photo URLs. |
photo_count | integer | How many photos the listing has. |
scrapeDate | string | UTC date (YYYY-MM-DD) the listing was collected. |
That's the short list for orientation. The complete field reference (all 127) is further down. The dataset also ships three ready-made views (Car listings, Pricing analysis and Seller & contact) that surface the right columns for each job.
Sample output item
A real row from a local default run (the 10-cheapest test crawl). Because the default run leaves the VIN toggle off, the cleartext vin and date_registration come back null here, exactly as they should. Turn the toggle on (Example 2) and those two fields fill in. Photo URLs trimmed for readability; every value is exactly as the Actor pulled it, all of it shown publicly on autovit.ro.
{"sourceUrl": "https://www.autovit.ro/autoturisme/anunt/bmw-seria-1-ver-118i-sport-line-ID7HPhli.html","website": "autovit.ro","scrapeDate": "2026-06-17","country": "RO","currency": "EUR","id": "7060533668","status": null,"title": "BMW Seria 1 118i Sport Line","url": "https://www.autovit.ro/autoturisme/anunt/bmw-seria-1-ver-118i-sport-line-ID7HPhli.html","short_description": "Revizii efectuate la timp in service-uri BMW ( ultima in mai 2026), fa","description": null,"price_value": 10000.0,"price_evaluation": "IN","created_at": "2026-05-26T20:46:32Z","category_id": "29","category_name": "Autoturisme","make": "bmw","model": "seria-1","version": "ver-118i-sport-line","generation": "gen-f20-f21-2011-2019","year": 2017,"mileage": 81000,"color": "white","door_count": 5,"nr_seats": 5,"body_type": "compact","fuel_type": "petrol","engine_capacity": 1499,"engine_power": 136,"gearbox": "manual","transmission": "rear-wheel","co2_emissions": 116,"new_used": "used","condition_damaged": false,"is_imported_car": false,"has_vin": true,"vin": null,"date_registration": null,"photos": ["https://ireland.apollo.olxcdn.com/v1/files/<id-1>/image","https://ireland.apollo.olxcdn.com/v1/files/<id-2>/image"],"photo_count": 8,"thumbnail": "https://ireland.apollo.olxcdn.com/v1/files/<id-1>/image","location_city": "Bucuresti","location_region": "Bucuresti","location_district": "Sectorul 1","location_lat": 44.43783,"location_lon": 26.09464,"seller_type": "PRIVATE","seller_id": "1250649","seller_name": "Adri","equipment_flat": ["has_vin", "hands_free_system", "multi_functional_steering_wheel","rear_view_camera", "antilock_brake_system", "esp", "rain_sensor"],"vin_token": null,"date_registration_token": null,"phone_token": null,"phone_available": null,"vin_revealed": false,"date_registration_revealed": false,"phone_revealed": false}
🔑 VIN, registration date and seller phone (a straight answer)
Three datapoints on autovit.ro sit behind a reveal step: the vehicle VIN, the first-registration date and the seller's phone number. We're upfront about exactly what the Actor does with each.
- VIN + first-registration date come back in cleartext when you turn on
extractVin. It costs one extra request per ad and works on a plain No proxy crawl. The values land invinanddate_registration, andvin_revealed/date_registration_revealedflip totrue. - Seller phone number is published only on the ad's HTML detail page, which autovit fronts with CloudFront and does not serve to Apify's datacenter network. So the Actor does not return the cleartext number. What you do get for every ad is the presence flag
phone_available(whether a phone number exists on the ad) and the site's own encrypted tokenphone_token, stored byte-for-byte as the site returns it.phone_revealedis therefore alwaysfalse. - The VIN toggle is off by default. On the fast default run,
vinanddate_registrationstaynull. You still get the presence flags (has_vin,registered,phone_available) and the site's own encrypted tokens (vin_token,date_registration_token,phone_token), stored byte-for-byte as the site returns them.
To be clear about what's always in cleartext, no toggle required: the seller name, the seller type (dealer vs private), and the location (city, region, coordinates). Those are shown openly on the listing.
🔐 Responsible use. The seller name, location and other seller details are personal data under the GDPR. You are responsible for collecting and using them with a valid legal basis and in line with applicable data-protection law.
Full field reference
Everything below shows up in the dataset. Rows marked (opt-in) fill in only when extractVin is on, which fetches each ad's detail record; rows marked (detail page) also come from that detail record and so populate on the same extractVin run. Every other field is there on the standard (fastest) run. The lone exception is description, called out in its own row below: it lives only on a page Apify's servers can't reach, so it always comes back null.
Source & identity
| Field | Type | Description |
|---|---|---|
sourceUrl | string | Canonical detail-page URL the listing came from. |
website | string | Source host (autovit.ro). |
scrapeDate | string | UTC date (YYYY-MM-DD) the listing was collected. |
country | string | ISO country of the marketplace (RO). |
id | string | Numeric primary key of the advert. The dataset dedup key. |
advert_details_id | string | Base-62 short id, also embedded in the URL slug. (detail page) |
origin_ad_id | string | Set for OLX cross-listed ads; usually null. (detail page) |
origin_site_code | string | Source-platform code for cross-listed ads. (detail page) |
status | string | Advert lifecycle status (e.g. ACTIVE). (detail page) |
title | string | Advert headline. |
url | string | Direct link to the advert detail page. |
short_description | string | One-line listing teaser. |
description | string | The long free-text ad description. It lives only on the source's HTML detail page, which isn't reachable from Apify's servers, so this Actor does not populate it and the value is always null. Every other field is captured. |
Price
| Field | Type | Description |
|---|---|---|
currency | string | The ad's own currency, set by the seller (EUR or RON). |
price_value | number | Listing price in that currency. No conversion applied. |
price_minor_amount | integer | Current price in minor units (e.g. cents). (detail page) |
price_is_under_budget | boolean | Price-on-request style flag. (detail page) |
price_labels | array | Net/gross annotation labels; usually empty. (detail page) |
price_gross_net | string | Derived from the VAT param: gross (TVA included) or net. |
price_evaluation | string | Market position (BELOW / ABOVE / IN / NONE). |
price_drop | object | Lowest 30-day price before a drop, as {price, currency}; null when there's no recent drop. (detail page) |
Timestamps & category
| Field | Type | Description |
|---|---|---|
created_at | string | ISO8601 publish/activation timestamp. |
original_created_at | string | First-publish timestamp (vs a created_at re-bump). (detail page) |
updated_at | string | Last-modified timestamp. (detail page) |
valid_to | string | Ad expiry timestamp. (detail page) |
category_id | string | 29 = Autoturisme (passenger cars). |
category_name | string | Category label (Autoturisme). |
is_parts | boolean | True for parts ads. (detail page) |
is_used_car | boolean | Mirrors new_used. (detail page) |
Vehicle identity
| Field | Type | Description |
|---|---|---|
make | string | Vehicle manufacturer (normalized slug). |
model | string | Vehicle model. |
version | string | Trim / version (seller-optional). |
version_label | string | Human-readable version mirror. (detail page) |
cant_see_my_version | boolean | Seller flagged "version not found". |
generation | string | Model generation. |
catalog_urn | string | Eurotax catalog reference. (detail page) |
year | integer | Production year. |
mileage | integer | Odometer reading, in kilometres. |
color | string | Exterior colour (normalized slug). |
colour_type | string | Metallic / non-metallic. |
door_count | integer | Number of doors (2–5). |
nr_seats | integer | Number of seats. |
body_type | string | Body style (sedan, suv, coupe…). |
vin | string | Cleartext VIN (17-char chassis number). Populated only when extractVin is on (opt-in, one extra request per ad); null otherwise. Presence on the ad is flagged by has_vin. (opt-in) |
Engine & drivetrain
| Field | Type | Description |
|---|---|---|
fuel_type | string | Fuel type (petrol, diesel, hybrid, electric…). |
engine_capacity | integer | Engine displacement, in cm³. |
engine_power | integer | Engine power, in horsepower (CP). |
gearbox | string | Transmission type (manual / automatic). |
transmission | string | Drive layout (front-wheel / rear-wheel / all-wheel). |
pollution_standard | string | Euro emissions standard (e.g. euro-6). |
urban_consumption | number | Fuel consumption, urban cycle (l/100km). (detail page) |
extra_urban_consumption | number | Fuel consumption, extra-urban cycle (l/100km). (detail page) |
co2_emissions | integer | CO2 emissions, in g/km. |
battery_capacity | number | EV battery capacity (electric vehicles only). |
electric_range | integer | EV driving range (electric vehicles only). |
rhd | boolean | Right-hand-drive flag. |
Condition, history & commercial flags
| Field | Type | Description |
|---|---|---|
new_used | string | Condition class (used / new). |
condition_damaged | boolean | Damaged-vehicle flag (Avariată). |
no_accident | boolean | No-accident-history flag. |
original_owner | boolean | Seller is the first / original owner. |
service_record | boolean | Full service book available. |
is_imported_car | boolean | Whether the car was imported. |
country_origin | string | Origin country code. |
historical_vehicle | boolean | Vintage / historical-vehicle flag. |
tuning | boolean | Vehicle has been tuned. |
registered | boolean | Presence flag that a first-registration date exists on the ad. The cleartext date itself is returned in date_registration when extractVin is on. |
date_registration | string | Cleartext first-registration date (YYYY-MM-DD). Populated only when extractVin is on (opt-in, one extra request per ad); null otherwise. Presence on the ad is flagged by registered. (opt-in) |
has_vin | boolean | Presence flag that a VIN exists on the ad. The cleartext VIN itself is returned in vin when extractVin is on. |
vat | boolean | TVA included in price (drives price_gross_net). |
financial_option | boolean | Financing / credit offered. |
vendors_warranty_months | integer | Dealer warranty duration, in months. (detail page) |
autorenew | boolean | Seller auto-renew flag. |
Gated tokens & reveal-state flags
| Field | Type | Description |
|---|---|---|
vin_token | string | Server-encrypted VIN token, stored verbatim. The cleartext VIN is also returned in vin when extractVin is on. Presence flagged by has_vin. (opt-in / detail page) |
date_registration_token | string | Server-encrypted first-registration-date token, stored verbatim. The cleartext date is also returned in date_registration when extractVin is on. Presence flagged by registered. (opt-in / detail page) |
phone_token | array | Server-encrypted seller phone token(s), stored verbatim. This is the maximal phone representation the Actor returns: the cleartext number itself is NOT decoded, because it lives only on the CloudFront-gated HTML detail page, which Apify's network can't reach. Presence flagged by phone_available. |
phone_available | boolean | Presence flag that a seller phone number exists on the ad. The number itself is not decoded; you get the encrypted phone_token instead. |
vin_revealed | boolean | true when the cleartext VIN was decoded into vin (i.e. extractVin was on); false otherwise. |
date_registration_revealed | boolean | true when the cleartext registration date was decoded into date_registration (extractVin on); false otherwise. |
phone_revealed | boolean | Always false on this Actor: the seller phone number is not decoded into cleartext (its only source is the CloudFront-gated detail page, which isn't collected). The encrypted phone_token and the phone_available flag are still returned. |
Media
| Field | Type | Description |
|---|---|---|
photos | array | Full-resolution photo URLs. |
photo_count | integer | Number of photos on the listing. |
thumbnails | array | Sized thumbnail URLs. (detail page) |
thumbnail | string | Listing thumbnail image URL. |
video | object | Ad video metadata when present; usually absent. (detail page) |
Location
| Field | Type | Description |
|---|---|---|
location_city | string | Listing city. |
location_region | string | Listing region (județ). |
location_district | string | Listing district (often null). |
location_address | string | Dealer/seller street address shown publicly (when present). (detail page) |
location_postal_code | string | Dealer/seller postal code shown publicly (when present). (detail page) |
location_lat | number | Listing latitude. |
location_lon | number | Listing longitude. |
location_canonicals | object | {city, region, subregion} SEO slug metadata. (detail page) |
Seller / dealer
| Field | Type | Description |
|---|---|---|
seller_type | string | PROFESSIONAL (dealer) or PRIVATE. |
seller_id | string | Seller identifier shown publicly. |
seller_uuid | string | Seller UUID shown publicly (stored verbatim as returned). (detail page) |
seller_name | string | Seller / dealer name shown publicly. |
seller_url | string | Dealer inventory / profile page URL shown publicly. (detail page) |
seller_website | string | External dealer website shown publicly. (detail page) |
seller_logo | array | Dealer logo image URL(s). (detail page) |
seller_features_badges | array | Dealer feature badges (authorized-dealer, fast-reply…). (detail page) |
seller_benefits | array | Dealer package entitlements. (detail page) |
seller_package | object | Dealer package {id, name} (e.g. Expert). (detail page) |
seller_active_ads | integer | Dealer's live-ad count (an inventory-size signal). |
seller_working_hours | array | Per-weekday dealer working hours. (detail page) |
seller_services | array | Dealer services (financing / repair / ITP / insurance / buyback). (detail page) |
Equipment & parameters
| Field | Type | Description |
|---|---|---|
equipment | array | Grouped feature universe (audio / comfort / electronics / performance / security). (detail page) |
equipment_flat | array | Flat boolean feature keys. |
details | array | Human-formatted spec rows. (detail page) |
details_groups | object | Layout grouping metadata. (detail page) |
parameters_dict | object | Raw dict of all parameters: a catch-all so no parameter gets dropped. (detail page) |
main_features | array | Headline chips (year, km, cm³, fuel). (detail page) |
ad_features | array | Ad-level toggles / metadata. (detail page) |
Promotion, verification, AI & relationships
| Field | Type | Description |
|---|---|---|
badges | array | Promo / quality badges; often empty. |
value_added_services | array | Promo flags (highlighted / top / bumped). |
is_promoted | boolean | Derived from promo-service presence. |
topad | boolean | Top-ad placement. (detail page) |
urgent | boolean | Urgent-listing flag. (detail page) |
highlighted | boolean | Highlighted-listing flag. (detail page) |
packages | array | Ad promotion packages applied. (detail page) |
cepik_verified | boolean | RAR / CEPIK government-database verification badge. |
verified_car_fields | array | Which fields were government-DB verified. (detail page) |
ai_insight | object | AI make/model summary, maintenance, safety, reviews. (detail page) |
h2v | object | OLX cross-listing metadata ({} when not cross-listed). (detail page) |
financing | object | Financing flag plus loan-simulator rate if present. |
breadcrumbs | array | Category → make → model trail. (detail page) |
similar_ads | array | Related ads. (detail page) |
seo_data | object | SEO title / description / canonical. (detail page) |
🔄 How it works
The Actor reads autovit.ro's own public listings data layer, the same data the website pulls to render search results, and pages through the Autoturisme catalogue, deduplicating on the advert ID. Because it works against structured JSON instead of fragile page markup, it keeps running when the site reshuffles its visual layout. There's no result-window cap either, so one run can cover the whole catalogue end to end.
Run it on a schedule (daily works well) to keep a fresh snapshot. The marketplace adds, removes and re-prices cars all day long, and every row carries created / updated / valid-to timestamps plus a 30-day price-drop marker, so you can age out the stale rows yourself.
💸 Pricing
This Actor is pay-per-result: you're charged a small fixed amount for each car listing returned, and nothing else. No monthly subscription, and no separate charge just for starting a run.
- No proxy needed. The default run uses no proxy, so there's no proxy cost at all. Opt into Apify Proxy if you want to rotate IPs, and that traffic is billed to your own Apify account, by Apify.
- Free-tier friendly. The Actor respects your account's charging limit and stops politely when it's reached. It won't crash, and it won't run up a surprise bill.
- You set the ceiling. Use Maximum results to cap exactly how many cars (and therefore how much) a run collects.
❓ FAQ
How many results can I pull? The whole Autoturisme catalogue is roughly 43,700 active adverts. A single run can take all of them (there's no result-window cap), or you can cap it with Maximum results and narrow it with the filters.
How fast is it? The default test run (10 cars, no proxy, VIN toggle off) is done in seconds. A full-catalogue crawl runs on the order of minutes on a single IP. Turning on VIN extraction adds one extra request per car, so that run is slower. Leave it off for the quickest, cheapest crawl.
How fresh is the data? Each run is a snapshot of the live catalogue at crawl time. Listings change constantly, so schedule the Actor (daily, say) for a rolling feed. Every row carries created / updated / valid-to timestamps and a 30-day price-drop marker.
Does it cover vans, trucks, motorcycles or parts? No. It's passenger cars only (Autoturisme). The van, truck, motorcycle, parts, trailer and machinery sections of autovit.ro have different fields and aren't in scope here. They're planned as separate companion Actors.
Do I need a proxy?
No. The default No proxy setting works for the whole Actor, the listing crawl and the VIN / registration-date detail path alike, and it's the fastest, cheapest option. Apify Proxy is there only if you specifically want to rotate IPs; it's routed through and billed to your own Apify account.
Can I get the VIN?
Yes, in cleartext, via the opt-in extractVin toggle. It returns the VIN and the first-registration date (vin, date_registration) and works on No proxy. It adds one extra request per ad and is off by default. With it off, you still get the has_vin and registered presence flags.
Can I get the seller's phone number?
Not as a cleartext number. autovit publishes the seller phone only on the ad's HTML detail page, which sits behind CloudFront and isn't served to Apify's network, so the Actor doesn't decode it. For every ad you do get the presence flag phone_available (whether a phone exists) and the site's own encrypted phone_token, stored exactly as returned. The seller's name, type and location come back in cleartext as usual.
What about the long ad description?
The free-text description field stays in the dataset for completeness, but it always comes back null. That text is published only on the ad's HTML detail page, the same page Apify's network can't reach, so the Actor doesn't return it. Everything else on the ad is captured.
Is collecting seller data allowed? Seller name, location and similar contact details are personal data under the GDPR. The Actor only collects what autovit.ro displays publicly, but using that data is on you: collect and process it with a valid legal basis and in line with the applicable data-protection law for your jurisdiction and use case.
What currency are the prices in?
Each price is in the currency the seller chose for that ad, either EUR or RON, reported as-is in price_value and currency, with no conversion.
How does the billing work, exactly? Pay-per-result. You're billed per car returned to the dataset, full stop. Set Maximum results to control the spend on any given run.
Is this legal? The Actor collects only data that autovit.ro displays publicly, through a passive, read-only, politely-paced crawl. It doesn't log in, submit forms, or get past any access control. You're responsible for using the resulting data in line with the applicable laws (including data-protection rules such as the GDPR) for your jurisdiction and use case.
⚖️ Disclaimer
This is an independent, unofficial tool. It is not affiliated with, endorsed by, sponsored by, or connected to autovit.ro, OLX Group, or any of their subsidiaries. "Autovit", "autovit.ro", "OLX" and all related names and trademarks belong to their respective owners and are used here only for description and reference. This Actor ships no third-party logos or trademarks. It collects only publicly available information and is meant for legitimate, compliant use; making sure your use of the data complies with all applicable laws and the source website's terms is up to you.