Mobile.bg Bulgaria Car Scraper
Pricing
Pay per event
Mobile.bg Bulgaria Car Scraper
Scrape used-car listings from Mobile.bg, Bulgaria's #1 car marketplace — make, model, year, price in EUR (with BGN), mileage, fuel type, gearbox, engine power, engine size, body type, color, location, seller, and photos. Export to JSON or CSV; enrich each listing from its detail page.
Pricing
Pay per event
Rating
0.0
(0)
Developer
DevilScrapes
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
🎯 What this scrapes
Mobile.bg is Bulgaria's largest used-car marketplace and ships no public API. This Actor scrapes the public listings — paste a filtered search URL or use the default cars-and-jeeps feed — and returns one clean, typed row per car: make, model, year, price (EUR, with the BGN amount kept too), mileage (km), fuel, gearbox, engine power, engine size, body type, color, and photo URLs. Optional detail-page enrichment fills in the full technical table, location, and seller type. Built on curl-cffi with browser TLS impersonation, correct windows-1251 Cyrillic decoding, and Apify residential proxies.
🔥 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
- Market pricing — track used-car asking prices by make, model, and year across Bulgaria.
- Dealer intelligence — monitor inventory and pricing moves from
seller_typeandlocation. - Cross-border arbitrage — compare Bulgarian prices against other EU markets to spot import deals.
- Depreciation modelling — build price-vs-mileage and price-vs-age curves per model.
- Lead generation — surface fresh private-seller listings the moment they post.
⚙️ 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 Mobile.bg search/results URL with filters already applied (e.g. https://www.mobile.bg/obiavi/avtomobili-dzhip |
maxResults | integer | no | 50 | Hard cap on dataset rows. |
enrichDetails | boolean | no | True | Fetch each listing's detail page for the full technical table, exact engine size, location, and seller type. Doubles the |
proxyConfiguration | object | no | {'useApifyProxy': True, 'apifyProxyGroups': ['RESIDENTIAL']} | Apify Proxy configuration. RESIDENTIAL group required — Mobile.bg 403s datacenter/direct exits. Run fails fast if unavailable. |
Example input
{"maxResults": 5,"enrichDetails": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
📤 Output
Every row is one dataset item.
| Field | Type | Notes |
|---|---|---|
listing_id | string | Mobile.bg listing ID. |
listing_url | string | Absolute URL to the listing detail page. |
title | string | Listing title (make + model). |
make | ['string', 'null'] | Car make (e.g. Audi). |
model | ['string', 'null'] | Car model (e.g. A3). |
year | ['integer', 'null'] | Manufacture year. |
price | ['integer', 'null'] | Asking price as an integer, in EUR. |
currency | ['string', 'null'] | ISO-4217 currency code — always EUR. |
price_bgn | ['integer', 'null'] | Asking price in Bulgarian lev (BGN), if shown. |
mileage_km | ['integer', 'null'] | Odometer reading in kilometres. |
fuel_type | ['string', 'null'] | Fuel type (Дизелов / Бензинов / Електрически / ...). |
transmission | ['string', 'null'] | Gearbox (Ръчна / Автоматична). |
engine_power_hp | ['integer', 'null'] | Engine power in metric horsepower (к.с.). |
engine_size_cc | ['integer', 'null'] | Engine displacement in cubic centimetres. |
body_type | ['string', 'null'] | Body type (Хечбек / Седан / Комби / ...). |
color | ['string', 'null'] | Exterior color. |
first_registration | ['string', 'null'] | Production / first-registration date (e.g. 'октомври 2010'). |
location | ['string', 'null'] | Seller location (city). Enrichment-only. |
region | ['string', 'null'] | Region. Enrichment-only. |
seller_type | ['string', 'null'] | Seller type — dealer or private. Enrichment-only. |
seller_name | ['string', 'null'] | Seller display name. Enrichment-only. |
photo_urls | array | List of listing photo URLs. |
description | ['string', 'null'] | Seller's free-text description. |
posted_date | ['string', 'null'] | Relative posting marker from the listing card (e.g. 'НОВА ОБЯВА'). |
scraped_at | string | ISO-8601 UTC timestamp when this row was recorded. |
Example output
{"listing_id": "11772628462288076","listing_url": "https://www.mobile.bg/obiava-11772628462288076-audi-a3-s-line-s3","title": "Audi A3 S-line S3","make": "Audi","model": "A3","year": 2010,"price": 7600,"currency": "EUR","price_bgn": 14864,"mileage_km": 255000,"fuel_type": "\u0414\u0438\u0437\u0435\u043b\u043e\u0432","transmission": "\u0420\u044a\u0447\u043d\u0430","engine_power_hp": 140,"engine_size_cc": 2000,"body_type": "\u0425\u0435\u0447\u0431\u0435\u043a","color": "\u0411\u044f\u043b","first_registration": "\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438 2010","location": "\u0433\u0440. \u0412\u0430\u0440\u043d\u0430","region": null,"seller_type": "private","seller_name": null,"photo_urls": ["//mobistatic1.focus.bg/mobile/photosorg/076/1/11772628462288076_t4.webp"],"description": "Audi A3 2.0 TDI ...","posted_date": "\u041d\u041e\u0412\u0410 \u041e\u0411\u042f\u0412\u0410","scraped_at": "2026-06-02T10: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 ≈ $2.05. No subscription, no minimum, no card to start — Apify gives every new account $5 of free credit.
🚧 Limitations
Mobile.bg paginates results and very deep queries can be truncated by the site. Detail enrichment doubles the request count and roughly doubles run time. Fuel-type, gearbox, body-type and color values are surfaced in the site's original Bulgarian (Cyrillic). Seller phone numbers behind the contact widget are not scraped. Location and seller type are only available with detail enrichment enabled.
Residential proxy is required. Mobile.bg returns 403 for datacenter and direct exits. The Actor enforces this — if the Apify Proxy RESIDENTIAL group is unavailable on your plan, the run will fail with a clear error message. Upgrade your Apify plan or contact support to enable residential proxy access.
❓ FAQ
Do I need a search URL?
No. Leave searchUrl empty and the Actor scrapes the default cars-and-jeeps feed. To target a make, model, or price band, apply the filters on mobile.bg and paste the resulting URL — the Actor scrapes exactly that result set.
What currency are prices in?
Euros. Mobile.bg shows the EUR price as primary (Bulgaria is adopting the euro); price is the integer EUR amount and currency is always EUR. The matching Bulgarian-lev amount is also kept in price_bgn.
What does detail enrichment add?
Setting enrichDetails to true fetches each listing's detail page for the full technical table, exact engine displacement, the seller's city, and seller type. Set it to false to halve the request count — you still get make, model, year, price, mileage, fuel, gearbox, power, engine size, body type, color, and photos from the listing card.
Is this an official Mobile.bg API?
No. Mobile.bg offers no public API. This Actor scrapes the public website politely and decodes its windows-1251 Cyrillic encoding correctly.
The labels are in Bulgarian — can I get English?
We map the core spec fields to standard English column names (make, model, year, mileage_km, fuel_type, ...). Bulgarian category values such as Дизелов or Автоматична are preserved as-is so nothing is lost in translation.
💬 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.