Njuskalo.hr Property Scraper
Pricing
from $3.50 / 1,000 results
Njuskalo.hr Property Scraper
Scrape real estate listings from Njuskalo.hr — Croatia's #1 classifieds portal. Extract apartments, houses, land, commercial space and garages (sale or rent) by city or county, with price (EUR), surface area, rooms, parsed Croatian address (city → district → micro-location), image and listing labels
Pricing
from $3.50 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Njuskalo.hr Property Scraper — Croatia Real Estate Listings to JSON, CSV & Excel

Scrape real estate listings from Njuskalo.hr, Croatia's #1 classifieds portal, into a clean, structured dataset. This Njuskalo scraper extracts apartments, houses, land, commercial space, garages, rooms and vacation homes — for sale or rent — filtered by Croatian city or county, price in EUR, surface area and room count. No login and no API key required: just set your search and export Croatia property data to JSON, CSV or Excel.
Whether you are building a real-estate price index, sourcing investment leads, or feeding a property aggregator, this Actor turns Njuskalo search pages into ready-to-use structured records with parsed addresses, EUR pricing and price-per-m².
✨ What this Actor does / Key features
- 🇭🇷 Croatia-wide coverage — every Njuskalo county and city slug is supported (Grad Zagreb, Split, Rijeka, Osijek, Zadar, Pula, Istra, Primorsko-goranska and more). Leave the location list empty to scrape nationwide.
- 💰 Native EUR pricing with an auto-computed
pricePerSqmfor fast comparison and valuation work. - 🏘️ Hierarchical location parsing — city, district and micro-location are parsed from the search slug plus each listing's "Lokacija" string into a clean address chain.
- 🛏️ Room count extraction — Njuskalo doesn't expose room counts on result cards, so the Actor parses Croatian shorthand (
2 soban,3s,Trosobni,garsonjera, …) from listing titles. - 🏷️ Sponsored / VauVau / SuperVau detection — premium tier flags exposed via
isExclusiveandlabels. - 🛡️ Anti-bot bypass via headless Chromium — Playwright with fingerprint rotation, residential proxy, cookie-banner handling, asset blocking and session retirement on block detection.
- 🔁 De-duplication & dynamic pagination — crawling stops automatically when a page returns no new listing IDs.
- 🎯 Server- and client-side filtering — price, area and room filters are applied both in the URL and again in-memory, so results stay correct.
- 📦 Structured, export-ready output — every record is flat JSON, downloadable as CSV or Excel, with pre-built Overview and Full Detail dataset views.
🔍 Input
| Field | Type | Description |
|---|---|---|
locationSlugs | array of strings | Njuskalo city / county slugs (e.g. zagreb, split). Each slug becomes its own scraping task. Leave empty for nationwide. Default ["zagreb"]. |
transaction | string (enum) | sale (prodaja) or rent (iznajmljivanje). Default sale. |
propertyType | string (enum) | apartment, house, land, commercial, garage, room or vacation. 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 | integer | Minimum room count. 0 = no minimum. |
roomsMax | integer | Maximum room count. 0 = no maximum. |
maxListings | integer | Total cap across all location tasks. 0 = unlimited. Default 200. |
maxPagesPerTask | integer | Pagination depth per location (~25 listings per page). Default 10. |
requestDelay | integer (ms) | Delay between sequential page requests. Keep ≥ 2000 ms. Default 2500. |
maxRetries | integer | Retries per request on errors / block detection (rotates session and proxy IP). Default 3. |
proxyConfiguration | object | Required. Apify Proxy with RESIDENTIAL group and country HR is mandatory — datacenter IPs are blocked instantly. |
🚀 Example input
{"locationSlugs": ["zagreb", "split"],"transaction": "sale","propertyType": "apartment","priceMin": 100000,"priceMax": 350000,"areaMin": 40,"areaMax": 100,"roomsMin": 2,"roomsMax": 4,"maxListings": 500,"maxPagesPerTask": 25,"requestDelay": 2500,"maxRetries": 3,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "HR"}}
📦 Output
One Apify dataset record per Njuskalo 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 | Njuskalo numeric listing ID |
detailUrl | Full URL to the listing page |
title | Listing title |
shortDescription | Property type + floor snippet (e.g. "Stan u stambenoj zgradi, 1. kat") |
transactionType | sale / rent |
propertyType | apartment / house / land / … |
advertType | Owner / agency advert type when present |
price | Price in EUR (number) |
priceCurrency | EUR (rare legacy HRK listings handled) |
pricePerSqm | Price per m² (parsed or computed) |
areaSqm | Usable surface area (m²) |
terrainAreaSqm | Plot / terrain area (houses, land) |
rooms | Room count parsed from the title |
roomsLabel | Raw room shorthand text |
floor / totalFloors | Floor info when present on the card |
buildingType / heatingType / yearBuilt | When present on the card |
country / city / municipality / district / microLocation | Parsed location hierarchy |
street / fullAddress | Street and composed full address |
latitude / longitude | Coordinates (detail-page only — null from search) |
mainImageUrl / imageUrls / imageCount | Cover photo and gallery info |
advertiserId / advertiserName / advertiserUrl / advertiserType | Advertiser info when available |
isRegistered, hasElevator, hasParking, hasGarage, hasTerrace, hasBalcony, isFurnished | Feature flags (detail-page only) |
isExclusive | true for sponsored / VauVau / SuperVau cards |
labels | Tier tags (VauVau, SuperVau, Premium, Featured, Top, …) |
datePosted / dateValidFrom | Listing dates |
searchTransaction / searchPropertyType / searchLocation / searchUrl | Echo of the input search parameters |
scrapedAt | ISO-8601 scrape timestamp |
Detail-only fields —
latitude,longitude, the fullimageUrlsgallery,street, advertiser fields and feature flags live on the individual listing page, not the search results, so the search scraper leaves themnull.
💡 Use cases
- Real-estate analysts & valuers — build Croatian price-per-m² indices and track market trends by city, county and property type.
- Property investors & flippers — monitor new apartments and houses for sale under a target budget the moment they are posted.
- Real-estate agencies & portals — feed an aggregator or CRM with fresh Njuskalo inventory.
- Lead generation — surface owner and agency listings for outreach.
- Researchers & journalists — quantify housing supply, rental prices and sponsored-listing share across Croatia.
- PropTech & data products — power dashboards, alerts and comparison tools with structured Croatia real estate data.
❓ Frequently Asked Questions
Is scraping Njuskalo.hr legal? The Actor collects only publicly visible listing data — no login or account is required. As with any scraping, use the data responsibly, respect Njuskalo's terms, and avoid republishing copyrighted text or images verbatim. You are responsible for how you use the output.
Do I need an API key or a Njuskalo account? No. There is no official Njuskalo API. The Actor works entirely from public search pages — no login, no API key.
Why is a proxy required?
Njuskalo runs aggressive, Cloudflare-grade bot detection. Datacenter IPs are blocked instantly, so Apify Proxy with the RESIDENTIAL group and country HR is mandatory. The Actor rotates IPs and retires flagged sessions automatically.
How much data can I get and how fast? A clean 200-listing run takes about 75 seconds; with anti-bot retries it can reach 4–5 minutes. A 1,000-listing run typically takes 8–15 minutes. New content is rare past page 50, so narrow wide queries with price and area filters instead of crawling very deep.
Can I filter by price, area, rooms or property type? Yes. You can filter by transaction (sale/rent), property type, price range in EUR, surface area range and room count. Filters are applied both in the URL and again in-memory for accuracy.
Why are some fields like latitude, longitude or parking always null?
Those fields only exist on individual listing detail pages, not on the search-results cards this Actor reads. They are intentionally left null.
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 Croatia 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 Njuskalo 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.