Halooglasi.com Property Scraper — Serbia Real Estate
Pricing
from $2.00 / 1,000 results
Halooglasi.com Property Scraper — Serbia Real Estate
Scrape real estate listings from Halooglasi.com — Serbia's #1 property portal. Extract apartments, houses, land, commercial, garages and rooms (sale or rent) by location, EUR price, m², rooms and owner type. Returns price, area, GPS-ready address, advertiser and image gallery per ad.
Pricing
from $2.00 / 1,000 results
Rating
5.0
(1)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
8
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Halooglasi.com Property Scraper — Serbia Real Estate Listings to JSON, CSV & Excel

Scrape real estate listings from Halooglasi.com, Serbia's #1 property portal, into a clean, structured dataset. This Halooglasi scraper extracts apartments, houses, land, commercial space, garages and rooms — for sale or rent — filtered by city, transaction type, price in EUR, surface area, room count and owner type. No login and no API key required: set your search and export Serbia real estate data to JSON, CSV or Excel.
Each record includes EUR price, price-per-m², a four-level Serbian address (city → municipality → district → micro-location), advertiser details and an image gallery — ready for analysis, lead generation or feeding a property aggregator.
✨ What this Actor does / Key features
- 🇷🇸 Serbia-wide coverage — every Halooglasi location slug is supported, including all Belgrade (Beograd) municipalities, Novi Sad, Niš, Kragujevac and more. Leave the location list empty for nationwide scraping.
- 💰 Native EUR pricing with an auto-computed
pricePerSqmfor valuation and comparison work. - 🏘️ Four-level location chain — city, municipality (opština), district and micro-location parsed into separate fields plus a composed
fullAddress. - 🛏️ Serbian room-count handling in 0.5 increments (
garsonjera,jednosoban,dvosoban,troiposoban, …) returned as both a numeric value and a Serbian label. - 🏢 Advertiser data — agency / owner / investor name, profile URL, advertiser ID and owner type.
- 🖼️ Image gallery per listing, with agency logo banners automatically filtered out.
- 🏷️ Card tier labels captured (
Premium,Top,VIP,Ekskluziva, …). - 🛡️ Cloudflare-resilient — HTTP fetch via residential proxy with automatic retry on 403 / 429 / 503 responses.
- 🔁 De-duplication & loop detection across paginated result pages.
- 📦 Structured, export-ready output — flat JSON downloadable as CSV or Excel, with pre-built Overview and Full Detail dataset views.
🔍 Input
| Field | Type | Description |
|---|---|---|
locationSlugs | array of strings | Halooglasi URL location slugs (e.g. beograd, novi-sad, beograd-vracar). Each slug becomes its own scraping task. Leave empty for nationwide. Required. Default ["beograd"]. |
transaction | string (enum) | sale (prodaja) or rent (izdavanje). Default sale. |
propertyType | string (enum) | apartment, house, land, commercial, garage or room. Default apartment. |
priceMin | integer (EUR) | Minimum price in EUR. 0 = no minimum. |
priceMax | integer (EUR) | Maximum price in EUR. 0 = no maximum. |
areaMin | integer (m²) | Minimum surface area. 0 = no minimum. |
areaMax | integer (m²) | Maximum surface area. 0 = no maximum. |
roomsMin | number | Minimum room count, 0.5 increments (garsonjera=0.5, dvosoban=2, 5+). 0 = no minimum. |
roomsMax | number | Maximum room count, 0.5 increments. 0 = no maximum. |
ownerType | string (enum) | all, agency, owner or investor. Default all. |
sort | string (enum) | latest, price_asc, price_desc, area_asc or area_desc. Default latest. |
maxListings | integer | Total cap across all location tasks. 0 = unlimited. Default 200. |
maxPagesPerTask | integer | Pagination depth per location (~20 listings per page). Default 10. |
requestDelay | integer (ms) | Delay between sequential page requests. Keep ≥ 800 ms. Default 1000. |
maxRetries | integer | Retries per request on HTTP errors (rotates proxy IP). Default 3. |
proxyConfiguration | object | Apify Proxy strongly recommended. Halooglasi is Cloudflare-protected — RESIDENTIAL with country RS is recommended; datacenter IPs often get 403. |
🚀 Example input
{"locationSlugs": ["beograd-novi-beograd", "beograd-vracar"],"transaction": "sale","propertyType": "apartment","priceMin": 80000,"priceMax": 250000,"areaMin": 40,"areaMax": 80,"roomsMin": 1.5,"roomsMax": 3,"ownerType": "agency","sort": "latest","maxListings": 500,"maxPagesPerTask": 25,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "RS"}}
📦 Output
One Apify dataset record per Halooglasi listing. Records are flat JSON and can be exported to CSV, Excel, JSON or XML, or pulled via the Apify API. Two dataset views are pre-configured: Overview (compact) and Full Detail.
| Field | Description |
|---|---|
adId | Halooglasi 13-digit listing ID |
detailUrl | Full listing URL |
title | Listing title |
shortDescription | Card-level description snippet |
transactionType | sale / rent |
propertyType | apartment / house / land / … |
advertType | Raw Agencija / Vlasnik / Investitor |
price | Total price in EUR |
priceCurrency | EUR |
pricePerSqm | Price per m² (read from card or computed) |
areaSqm | Usable surface area (kvadratura) |
terrainAreaSqm | Plot / terrain area (houses, land) |
rooms | Numeric room count (0.5 increments) |
roomsLabel | Serbian room label (garsonjera, dvosoban, …) |
floor / totalFloors | Floor and total floors in building |
buildingType / heatingType / yearBuilt | Construction details when present |
country / city / municipality / district / microLocation | Parsed location hierarchy |
street / fullAddress | Street and composed full address |
latitude / longitude | Coordinates (detail-page only — null from list) |
mainImageUrl / imageUrls / imageCount | Cover photo and gallery |
advertiserId / advertiserName / advertiserUrl / advertiserType | Advertiser info |
isRegistered, hasElevator, hasParking, hasGarage, hasTerrace, hasBalcony, isFurnished | Feature flags (detail-page only — typically null) |
isExclusive | true when the card carries the Ekskluziva tier tag |
datePosted / dateValidFrom | Listing dates when available |
labels | Tier tags (Premium, Top, VIP, …) |
searchTransaction / searchPropertyType / searchLocation / searchUrl | Echo of the input search parameters |
scrapedAt | ISO-8601 scrape timestamp |
Sample record
{"adId": "5425647088741","detailUrl": "https://www.halooglasi.com/nekretnine/prodaja-stanova/fontana-svetao-za-adaptaciju/5425647088741?kid=4","title": "Fontana, svetao, za adaptaciju","transactionType": "sale","propertyType": "apartment","advertType": "Agencija","price": 220000,"priceCurrency": "EUR","pricePerSqm": 3548,"areaSqm": 62,"rooms": 2,"roomsLabel": "dvosoban","floor": "IX","city": "Beograd","municipality": "Opština Novi Beograd","district": "Fontana","microLocation": "Pariske komune","fullAddress": "Pariske komune, Fontana, Opština Novi Beograd, Beograd, Srbija","advertiserName": "BELIGRAD","advertiserType": "Agencija","labels": ["Premium"],"scrapedAt": "2026-05-05T14:22:17.392Z"}
💡 Use cases
- Real-estate analysts & valuers — build Serbian price-per-m² indices and track market trends by city, municipality and property type.
- Property investors — monitor new apartments and houses for sale under a target budget the moment they appear.
- Real-estate agencies & portals — feed an aggregator, CRM or comparison site with fresh Halooglasi inventory.
- Lead generation — filter by owner type to surface direct-from-owner listings or agency contacts for outreach.
- Researchers & journalists — quantify housing supply, rental prices and advertiser composition across Serbia.
- PropTech & data products — power dashboards and price alerts with structured Serbia real estate data.
❓ Frequently Asked Questions
Is scraping Halooglasi.com legal? The Actor collects only publicly visible listing data — no login or account is required. As with any scraping, use the data responsibly, respect Halooglasi's terms, and avoid republishing copyrighted text or photos verbatim. You are responsible for how you use the output.
Do I need an API key or a Halooglasi account? No. There is no official Halooglasi API. The Actor works entirely from public search pages — no login, no API key.
Why is a residential proxy recommended?
Halooglasi sits behind Cloudflare and returns 403 from datacenter IPs. Apify Proxy with the RESIDENTIAL group and country RS gives reliable runs; the Actor automatically retries 403 / 429 / 503 responses with a fresh proxy session.
How much data can I get and how fast? About 200 listings in roughly 70 seconds with a residential proxy, including Cloudflare retries. Halooglasi displays up to ~9,000 results per location query — for a deep sweep, narrow with price and area ranges and run multiple tasks.
Can I filter by price, area, rooms, owner type or sort order? Yes. You can filter by transaction (sale/rent), property type, price range in EUR, surface area, room count and owner type (agency / owner / investor), and choose the sort order.
Why are coordinates and feature flags like parking always null?
Those fields are only populated by Halooglasi's listing detail pages, not the search-results list this Actor reads. They are kept in the schema as null so you can merge in detail-page data later if needed.
What output formats are supported? Every run produces a structured dataset you can export to JSON, CSV, Excel or XML, or access through the Apify API.
⏰ Scheduling & integration
Schedule this Actor on Apify to refresh Serbia property data daily or hourly, and export results to JSON, CSV or Excel with one click. Use the Apify API, webhooks or integrations to push new Halooglasi listings straight into Google Sheets, a database, your CRM or a downstream data pipeline.
License
Apache-2.0
Changelog
- 2026-05-25 — Maintenance & reliability pass: pulled the latest source and rebuilt the Actor on the current base image; build verified.
Last reviewed: 2026-05-25.