OLX.bg Real Estate Scraper
Pricing
from $1.20 / 1,000 results
Pricing
from $1.20 / 1,000 results
Rating
0.0
(0)
Developer
Unfenced Group
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
OLX.bg Scraper

Scrape real estate listings from OLX.bg — Bulgaria's largest classifieds platform — dominant in real estate. Filter by transaction type, Bulgarian region/city, property type, and price range. No API key required.
Why this scraper?
⚡ Fast & cost-efficient extraction
Pure REST API — no browser, no HTML parsing. Direct JSON responses from OLX.bg's official internal API.
🏠 Market coverage
60,000+ Bulgarian property listings across all 28 oblasts and Sofia-grad.
💰 Rich structured data
50 fields per listing: price (EUR + BGN), price per m², area, rooms, floor, construction type, heating, furnishing, amenities, GPS coordinates, promotion flags, contact flags, and more.
🔍 Flexible filters
Filter by transaction (sale/rent), property type, region/city, and price range. Multi-region splitting automatically bypasses the API's 1,000-item-per-query cap.
📍 Location & coverage
Covers all Bulgarian oblasts: Sofia, Plovdiv, Varna, Burgas, and all 28 regions.
🔗 Direct URL support
Pass any OLX.bg real estate search URL via startUrls — region and category are auto-detected.
Input parameters
| Parameter | Type | Description | Default |
|---|---|---|---|
transaction | string | sale or rent | sale |
propertyType | string | apartment, house, land, garage, office, commercial | apartment |
regions | array | City/region names, e.g. ["sofia","plovdiv","varna"] | [] (all Bulgaria) |
maxItems | integer | Maximum listings to scrape | 100 |
startUrls | array | Direct OLX.bg real estate URLs — overrides other filters | — |
minPrice | integer | Min price in EUR (client-side filter) | — |
maxPrice | integer | Max price in EUR (client-side filter) | — |
Regions / cities
Use common city names or full region slugs:
| City name | Region slug |
|---|---|
sofia | oblast-sofiya-grad |
plovdiv | oblast-plovdiv |
varna | oblast-varna |
burgas | oblast-burgas |
stara-zagora | oblast-stara-zagora |
ruse | oblast-ruse |
pleven | oblast-pleven |
All 28 Bulgarian oblasts are supported — use the oblast-{name} slug format for any region.
Output schema
{"id": "147756215","url": "https://www.olx.bg/d/ad/...","transaction": "sale","propertyType": "apartment","title": "Продавам 3-стаен апартамент","priceText": "183456.85 лв. / 93800 €","priceAmount": 93800,"priceCurrency": "EUR","negotiable": false,"pricePerM2": 2345,"city": "гр. Варна","citySlug": "varna","region": "Област Варна","district": "Общината","country": "BG","latitude": 43.19778,"longitude": 27.89139,"areaM2": 40,"rooms": 1,"apartmentType": "1 - стаен","floor": 5,"totalFloors": 6,"isNotLastFloor": false,"buildYear": 2010,"constructionType": "Тухла","heating": "Електричество","furnishing": "Обзаведен","hasPassage": false,"amenities": ["asansor", "klimatik", "parking", "saniran"],"images": ["https://frankfurt.apollo.olxcdn.com:443/v1/files/.../image;s=800x600"],"agencyName": null,"sellerName": "Иван","isBusiness": false,"hasPhone": true,"hasChat": true,"isPromoted": true,"isTopAd": true,"isUrgent": false,"publishDate": "2026-04-23","publishDateISO": "2026-04-23T14:30:20+03:00","pushedUpAt": "2026-05-05","lastRefreshDate": "2026-05-05","validToDate": "2026-05-23","isRepost": true,"categoryId": 524,"source": "olx.bg","scrapedAt": "2026-05-06T10:53:37.677Z","contentHash": "7b2b6a9783b722bf"}
New fields vs v1.0
| Field | Description |
|---|---|
pricePerM2 | Price per square metre (from API param ppsp) |
citySlug | City normalized slug, e.g. varna |
district | Sub-district name within the city |
isNotLastFloor | Whether the apartment is NOT on the top floor |
heating | Heating type (Електричество, ТЕЦ, etc.) |
furnishing | Furnishing status (Обзаведен, Необзаведен, etc.) |
hasPassage | Whether the apartment has a passage/through layout |
amenities | Array of feature slugs (asansor, parking, klimatik, etc.) |
sellerName | Seller's name |
isBusiness | true if listed by a business account |
hasPhone | Whether a phone number is available |
hasChat | Whether chat is available |
isPromoted | Highlighted or top-ad listing |
isTopAd | Paid top-ad placement |
isUrgent | Marked as urgent |
lastRefreshDate | Date the listing was last refreshed |
validToDate | Listing expiry date |
Examples
Apartments for sale in Sofia:
{ "transaction": "sale", "propertyType": "apartment", "regions": ["sofia"], "maxItems": 100 }
Rent apartments in Sofia + Plovdiv, filtered by price:
{ "transaction": "rent", "propertyType": "apartment", "regions": ["sofia", "plovdiv"], "minPrice": 400, "maxPrice": 800, "maxItems": 200 }
Houses for sale, all of Bulgaria:
{ "transaction": "sale", "propertyType": "house", "maxItems": 500 }
Via direct URL:
{ "startUrls": [{ "url": "https://www.olx.bg/nedvizhimi-imoti/prodazhbi/kaschi-vili/oblast-plovdiv/" }], "maxItems": 50 }
Daily feed of new listings (run on a schedule):
{"daysOld": 1,"maxItems": 500}
Schedule this input to run once a day in the Apify Scheduler — each run returns only listings added in the last 24 hours, ideal as a daily new-listings alert.
💰 Pricing
$1.50 per 1,000 results — you only pay for successfully retrieved listings. Failed retries are never charged.
| Results | Cost |
|---|---|
| 100 | ~$0.15 |
| 1,000 | ~$1.50 |
| 10,000 | ~$15.00 |
| 100,000 | ~$150.00 |
Flat-rate real estate data providers typically charge $99–$299/month regardless of usage. At 10,000 results/month, this scraper costs significantly less with no subscription.
Performance
| Run size | Estimated time |
|---|---|
| 100 listings | ~2–4 min |
| 500 listings | ~8–15 min |
| 1,000 listings | ~20–30 min |
Multi-region runs execute segments sequentially with respectful delays.
Known limitations
- Price currency: Some listings quote price in BGN only — the EUR equivalent shown uses OLX's own conversion label.
- Contact: Private seller phone numbers may be masked — full numbers require login.
- Language: All text fields are returned in Bulgarian Cyrillic.
- API cap: OLX.bg limits each category+region query to 1,000 results. For high-volume national scrapes, use the
regionsinput to split across oblasts (each with its own 1,000 cap). - Price filter: OLX.bg's API does not support server-side price filtering —
minPrice/maxPriceare applied client-side after fetching.
Technical details
- Method: OLX.bg REST API v1 (
/api/v1/offers/) — no browser, no HTML parsing - Memory: 256 MB
- Retry: Automatic retry on transient errors with exponential backoff
- Deduplication: Cross-run content hash prevents duplicate listings in repeated runs
- Output fields: 49 fields
Additional services
Need a custom actor, additional filters, scheduled runs, or integration support?.nl](mailto:info@unfencedgroup.nl) — we build on request.
Need a custom scraper?
Unfenced Group builds Apify actors for any website — for free.
If the site you need isn't in our portfolio yet, just ask. We scope, build, and publish it at no cost to you. You only pay for results — we absorb the compute and proxy costs ourselves. Same pay-per-result pricing, same quality, same standards as every actor in this portfolio.
Get in touch: www.unfencedgroup.nl