Polovni Automobili Car Scraper
Pricing
Pay per event
Polovni Automobili Car Scraper
Scrape used-car listings from polovniautomobili.com — Serbia's #1 car marketplace. Returns make, model, year, price (RSD/EUR), mileage, fuel, transmission, engine power, body type, color, seller, location and photos. Enriches each ad from its detail page. Export to JSON or CSV.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
🎯 What this scrapes
Polovni Automobili is Serbia's largest used-car marketplace and ships no public API. This Actor wraps a polite scrape — pull the search/results page, parse every car ad, and (optionally) enrich each one from its detail page: full price and currency, mileage, gearbox, engine power, registration, seller name and city, plus the photo gallery. Built on curl-cffi with rotating browser TLS impersonation and residential proxy support, so the target sees a real browser instead of a script.
🔥 What we handle for you
- 🛡️ Browser fingerprint rotation —
curl-cffiimpersonates real Chrome / Firefox / Safari TLS handshakes so the target sees a browser, not Python. - 🌐 Residential proxy rotation via Apify Proxy — fresh session and exit IP on every block.
- 🔁 Retries with exponential backoff on
408 / 429 / 5xx— up to 5 attempts per page,Retry-Afterhonoured. - 🧱 Rate-limit-aware pacing — when the target pushes back, we slow down instead of getting banned.
- 🧊 Clean, typed dataset rows — Pydantic-validated, ISO-8601 timestamps, stable IDs, JSON / CSV / Excel export straight from the Apify Console.
- 💰 Pay-Per-Event pricing — you only pay for results that hit your dataset. No data, no charge.
💡 Use cases
- Used-car market analytics — track asking prices by make, model, and year across the Serbian market.
- Dealer intelligence — build a directory of dealers from
seller_name,seller_type, andlocation. - Price monitoring — diff successive runs to catch reductions on the models you watch.
- Lead sourcing — surface private sellers of a specific make in a specific region.
- Inventory enrichment — pull mileage, gearbox, engine power, and photos for an existing watchlist of ads.
⚙️ How to use it
- Click Try for free at the top of the page.
- Fill in the input form — most fields have sensible defaults.
- Click Start. Output streams into the run's dataset.
- Export from Storage → Dataset as JSON, CSV, or Excel — or fetch via the API.
📥 Input
| Field | Type | Required | Default | Notes |
|---|---|---|---|---|
searchUrl | string | no | '—' | Full polovniautomobili.com search/results URL with your filters already applied (e.g. https://www.polovniautomobil |
maxResults | integer | no | 50 | Hard cap on dataset rows. |
enrichDetails | boolean | no | True | Fetch each ad's detail page for full price + currency, gearbox, engine power, registration, color, seller name and city, |
proxyConfiguration | object | no | {'useApifyProxy': True, 'apifyProxyGroups': ['RESIDENTIAL']} | Apify Proxy spec. Residential exits are safest — the site can show a captcha under load. |
Example input
{"maxResults": 5,"enrichDetails": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
📤 Output
Every row is one dataset item.
| Field | Type | Notes |
|---|---|---|
listing_id | string | Numeric ad ID from polovniautomobili.com. |
listing_url | string | Absolute URL to the ad detail page. |
title | string | Ad title (Serbian, kept as published). |
make | ['string', 'null'] | Vehicle make / brand (e.g. BMW, Audi). |
model | ['string', 'null'] | Vehicle model (e.g. X6, Q5). |
year | ['integer', 'null'] | Production year. |
price | ['integer', 'null'] | Asking price as an integer in the listing's own currency. |
currency | ['string', 'null'] | ISO-4217 currency code (EUR or RSD). |
mileage_km | ['integer', 'null'] | Odometer reading in kilometres. |
fuel_type | ['string', 'null'] | Fuel type (e.g. Dizel, Benzin). |
transmission | ['string', 'null'] | Gearbox type (e.g. Manuelni, Automatski). |
engine_power_hp | ['integer', 'null'] | Engine power in metric horsepower (KS). |
engine_size_cc | ['integer', 'null'] | Engine displacement in cubic centimetres. |
body_type | ['string', 'null'] | Body style (e.g. Džip/SUV, Limuzina). |
color | ['string', 'null'] | Exterior colour. Enrichment-only. |
first_registration | ['string', 'null'] | Registered-until date as shown on the ad. Enrichment-only. |
location | ['string', 'null'] | Seller city. Enrichment-only. |
region | ['string', 'null'] | Seller region / district. Enrichment-only. |
seller_type | ['string', 'null'] | dealer or private. |
seller_name | ['string', 'null'] | Dealer or seller display name. Enrichment-only. |
photo_urls | array | Photo gallery URLs (full-size). Enrichment-only. |
description | ['string', 'null'] | Free-text ad description. Enrichment-only. |
posted_date | ['string', 'null'] | Last renewed / posted timestamp. Enrichment-only. |
scraped_at | string | ISO-8601 UTC timestamp when this row was recorded. |
Example output
{"listing_id": "29352765","listing_url": "https://www.polovniautomobili.com/auto-oglasi/29352765/bmw-x6-indv-mhev-iconic-hk","title": "BMW X6 INDV MHEV ICONIC H/K","make": "BMW","model": "X6","year": 2021,"price": 65500,"currency": "EUR","mileage_km": 139869,"fuel_type": "Dizel","transmission": "Automatski / poluautomatski","engine_power_hp": 286,"engine_size_cc": 2993,"body_type": "D\u017eip/SUV","color": "Bela","first_registration": "12.2026.","location": "Sombor","region": "Zapadno-ba\u010dki","seller_type": "dealer","seller_name": "TIM CARS DOO","photo_urls": ["https://gcdn.polovniautomobili.com/user-images/thumbs/2935/29352765/1fb12874ac74-1920x1080-dw.jpg"],"posted_date": "2026-06-01 23:34:59","scraped_at": "2026-06-02T00:00:00+00:00"}
💰 Pricing
Pay-Per-Event — you pay only when these events fire:
| Event | USD | What it is |
|---|---|---|
actor-start | $0.05 | One-off warm-up charge per run |
result-row | $0.002 | PPE event |
Example: 1 000 results at the rates above ≈ $0.05. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.
🚧 Limitations
We scrape only the public listing surface. Some private-seller ads hide the phone number behind a click-to-reveal widget, so seller_name may be null for individuals. Color, gearbox, registration, photos, and seller details require enrichDetails (detail-page fetch). Very large result sets are paginated by the site and capped by maxResults.
❓ FAQ
Do I need a search URL?
No. Leave searchUrl empty and the Actor scrapes the default used-car listing page. To filter, apply filters on the site, copy the resulting URL, and paste it in.
What currency are prices in?
Both EUR and RSD appear on the site. We capture the price as an integer plus the matching currency code (EUR or RSD) so you never have to guess.
Is detail enrichment optional?
Yes — set enrichDetails to false to halve the request count. You still get make, model, year, price, mileage, fuel, body type, and engine from the listing page; color, gearbox, registration, seller, and photos come only from the detail page.
Is this an official API?
No. Polovni Automobili offers no public API. This Actor scrapes the public website politely — respect the site's terms before commercial use.
Will it get blocked?
The site can show a captcha under load. We rotate browser TLS fingerprints and residential proxy exits, and back off on rate limits, to keep runs flowing.
💬 Your feedback
Spotted a bug, hit a weird edge case, or need a new field? Open an issue on the Actor's Issues tab on Apify Console — we ship fixes weekly and we read every report.