Njuškalo Scraper - Croatia Property, Cars & Classifieds
Pricing
from $1.14 / 1,000 listing searches
Njuškalo Scraper - Croatia Property, Cars & Classifieds
Scrape Njuškalo.hr listings: apartments, houses, land, cars and marketplace ads with EUR prices, GPS, seller type and photos. No login, no API key.
Pricing
from $1.14 / 1,000 listing searches
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Njuškalo Scraper — Croatia Property, Cars & Classifieds 🇭🇷
🎉 Every listing on Croatia's biggest marketplace — 52,000 apartments, 50,000 cars, 2,000+ pages deep — with GPS and agency-or-private on every row
🔎 What is the Njuškalo Scraper — and when should you use it?
The Njuškalo Scraper turns public listings from Njuškalo.hr, Croatia's biggest classifieds marketplace into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.
Use it when you need: Croatian listings as rows: title, asking price in euros, photos, location, post date and the direct listing URL. Property sections carry floor area, room count, floor, build year and energy rating; the car, boat and marketplace sections carry their own attribute sets. Switch on full listing pages and each row also gains GPS coordinates, the complete Croatian description, the seller's name and whether they are an agency or a private owner.
Use something else when: the listing is not on Njuškalo. Use Craigslist Listings Scraper for the same kind of general classifieds in the US, Canada and the UK. Use Immobiliare Property Scraper for Italian property, where Njuškalo covers Croatia. Use Avito Property Scraper for Russian classifieds with the same private-seller mix. This actor covers the public listing sections of njuskalo.hr in Croatia only. Seller phone numbers sit behind a session-gated click and are not returned, and Njuškalo carries asking prices on live listings rather than what anything sold for.
🤖 Use with AI agents
Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/njuskalo-property-scraper
Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.
Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:
I want listings and prices from Njuškalo in Croatia using the Apify Actor `sian.agency/njuskalo-property-scraper`.Use it when I need: Croatian listings as rows: title, asking price in euros, photos, location, post date and the direct listing URL. Property sections carry floor area, room count, floor, build year and energy rating; the car, boat and marketplace sections carry their own attribute sets. Switch on full listing pages and each row also gains GPS coordinates, the complete Croatian description, the seller's name and whether they are an agency or a private owner.Don't use it when: the listing is not on Njuškalo — use craigslist-scraper or immobiliare-property-scraper or avito-property-scraper instead.How to call it: pick a `category` (`prodaja-stanova` for apartments for sale, `prodaja-kuca` for houses, `auti` for used cars — 27 sections in all) and optionally a `location` such as `zagreb`, `split` or `istra`. Narrow with `minPrice`, `maxPrice`, `onlyWithImages` and `sort`. `includeDetails` adds GPS, the full description, the attribute table and the agency-or-private seller type for an extra charge per listing. Use `keyword` to search the whole site instead of one section. To expand listings you already have, set `operation` to `detail` and pass `listingUrls`; to reuse a search you built on njuskalo.hr, paste it into `searchUrls`.Start with this input:{"category": "prodaja-stanova","location": "zagreb","maxResults": 100,"includeDetails": true}Ask me which section and which Croatian county or city to search, and whether they want the full listing pages with GPS and seller type, then run the Actor and summarise the results as a table.
Things you can ask your agent for:
- Pull every apartment for sale in Zagreb under 250,000 euros and show me price per square metre by neighbourhood.
- Find houses for sale in Istria listed by private owners rather than agencies, newest first.
- Compare asking prices for used BMWs across Croatia and show mileage against price.
Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/njuskalo-property-scraper.md.
📋 Overview
Njuškalo.hr is where Croatia buys and sells. It carries more property than any Croatian portal, more used cars than any Croatian dealer network, and a marketplace that runs from phones to farm machinery. None of it has a public API.
This Actor turns any of it into rows. Pick a section and a county, or paste a search you built in your browser, and you get back clean records: title, asking price in euros, photos, location, post date and the direct listing URL. Turn on full listing pages and every row also carries GPS coordinates, the complete Croatian description, the attribute table, and whether the seller is an agency or a private owner.
There is no ceiling to work around. Apartments for sale exposes all 2,094 pages of its 52,329 listings, so a whole Croatian vertical is one run rather than a weekend of orchestration.
✨ Features
- 🏠 27 sections — apartments, houses, land, commercial space, holiday homes, new builds, garages and rooms, plus cars, motorcycles, commercial vehicles, boats and eleven marketplace verticals
- 📍 County and city filtering matched against the list Njuškalo publishes itself, so a location it adds tomorrow works tomorrow
- 🪙 Prices in euros, parsed to real numbers — Croatian formatting reads
171.500 €as one hundred and seventy-one thousand, not as 171.5 - 🌐 GPS on every enriched listing, so you can map a market instead of reading it
- 🏪 Agency or private owner on every enriched listing, taken from the page rather than guessed from the wording
- 📄 Full Croatian descriptions and the complete attribute table — floor area, rooms, floor, build year, energy rating, heating, permits
- 🖼️ Every photo on the listing — the whole gallery, rather than the cover shot alone
- 🔗 Paste your own URLs to keep filters this form does not expose — floor area, heating, year built, search radius
- 🎚️ Price band, photos-only and sort applied by Njuškalo before rows are returned, so you never pay for listings outside your filter
- 🆓 25 listings free, then $1.30 per 1,000
🎬 Quick Start
{"category": "prodaja-stanova","location": "zagreb","maxResults": 100,"includeDetails": true}
Every apartment for sale in Zagreb, with GPS, seller type and the full description on each row.
🚀 Getting Started (3 Simple Steps)
Step 1: Choose what to scrape
Leave What do you want to scrape on Listing Search and pick a Section — prodaja-stanova for apartments for sale is the default. Add a County or city if you want one region rather than the whole country.
Step 2: Decide how deep to go
Set Max listings. Switch on Fetch full listing pages if you need GPS, the full description and the agency-or-private seller type — that is what most people are here for, and it bills one extra event per listing.
Step 3: Run it
Press Start. Results arrive in the dataset tab and export as JSON, CSV, Excel or XML. The Processing Report in the Output tab shows what ran, what was returned and exactly what you were charged for.
📥 Input Configuration
| Field | Type | Default | What it does |
|---|---|---|---|
operation | select | search | search walks a section; detail expands listing URLs you already have |
category | select | prodaja-stanova | Which of the 27 sections to walk |
location | string | — | Croatian county or city: zagreb, split, rijeka, istra. Property sections only |
keyword | string | — | Search the whole site for a word instead of walking one section |
maxResults | integer | 100 | Stop after this many listings |
includeDetails | boolean | false | Open every listing for GPS, description, attributes, photos and seller type |
searchUrls | array | — | Paste njuskalo.hr browse or search URLs; every filter in them is kept |
listingUrls | array | — | Listing URLs to expand, for the detail operation |
minPrice / maxPrice | integer | 0 | Price band in euros; 0 means no bound |
onlyWithImages | boolean | false | Skip listings with no photo |
sort | select | new | new, old, cheap or expensive |
Sections available: prodaja-stanova · iznajmljivanje-stanova · prodaja-kuca · iznajmljivanje-kuca · prodaja-zemljista · prodaja-poslovnih-prostora · iznajmljivanje-poslovnih-prostora · vikendice · novogradnja · prodaja-garaza · iznajmljivanje-soba · turisticki-smjestaj · auti · novi-auti · motori · gospodarska-vozila · nautika · mobiteli · informatika · audio-video-foto · sve-za-dom · sportska-oprema · strojevi-alati · djecji-svijet · posao · usluge · kucni-ljubimci
📤 Output
One row per listing. Search rows always carry the first block; the second block arrives when Fetch full listing pages is on, or on any detail run.
| Field | Type | Description |
|---|---|---|
listingId | number | Njuškalo's own listing id |
listingTitle | string | Listing headline as posted |
price | number | Asking price as a number |
priceText | string | Price as Njuškalo formats it, e.g. 171.500 € |
currency | string | Always EUR |
isPriceOnRequest | boolean | True when the seller hid the price |
url | string | Direct link to the listing |
imageUrl | string | Thumbnail |
location | string | Town and neighbourhood |
postedAt | string | ISO timestamp of posting |
summary | array | The short facts Njuškalo shows under the title |
categorySlug | string | Section the listing sits in |
isPromoted | boolean | Whether the seller paid for placement |
hasVirtualTour / hasVideo / hasGroundPlan | boolean | Media the listing carries |
listingDescription | string | Full Croatian description |
latitude / longitude | number | GPS coordinates |
locationApproximate | boolean | Whether Njuškalo blurred the pin |
categoryPath | array | Full breadcrumb, including county and town |
categoryId | number | Njuškalo's category id |
sellerType | string | agency or private |
sellerName | string | Seller or agency name |
sellerId | number | Njuškalo seller id |
sellerUrl | string | Link to the seller's other listings |
sellerRating / sellerRatingCount | number | Seller's rating and how many ratings it is from |
attributes | object | Floor area, rooms, floor, build year, energy rating and the rest |
features | object | Grouped features: heating, permits, parking, orientation |
imageUrls | array | Every photo |
imageCount | number | How many photos |
viewCount | number | Times the listing has been viewed |
publishedAt | string | Publication date as Njuškalo displays it |
listingStatus | string | active while the listing is live |
sourceCategory / sourceKeyword / sourceUrl | string | What produced the row |
status | string | success or error |
_operation / _fetchedAt | string | Which mode produced the row, and when |
💼 Use Cases & Examples
1. Croatian Property Market Tracking
Walk apartments, houses or land for one county and get asking price, floor area, room count, build year and GPS on every row. Run it weekly and you have a price series for Zagreb, Split or Istria that nobody publishes.
{ "category": "prodaja-stanova", "location": "split", "maxResults": 2000, "includeDetails": true }
2. Agency vs Private Seller Analysis
Every enriched listing says whether an agency or a private owner posted it, and names the agency. Split a section by sellerType to see what share of a market the agencies hold and which of them are winning listings.
{ "category": "prodaja-kuca", "location": "istra", "maxResults": 5000, "includeDetails": true }
3. FSBO & New-Listing Lead Generation
Sort newest first, keep the row limit small, and run it on a schedule: each run pays only for what appeared since the last one. Filter the output to sellerType: "private" and you have owners selling without an agent, with the full description they wrote.
{ "category": "prodaja-stanova", "sort": "new", "maxResults": 200, "includeDetails": true }
4. Used Car & Marketplace Pricing
The cars, boats, phones and computing sections read exactly like the property ones. Pull a model across the whole country to see the real spread of asking prices before you buy or list.
{ "keyword": "bmw serija 5", "maxResults": 1000, "includeDetails": true }
5. Coastal Rental & Holiday-Home Research
Holiday homes and tourist accommodation with coordinates on every row, so you can map yield against location instead of guessing from a listing page.
{ "category": "vikendice", "minPrice": 100000, "maxResults": 1000, "includeDetails": true }
6. Commercial Property Sweeps
Commercial space for sale and for rent, across the whole country or one county, with floor area and the full description.
{ "category": "prodaja-poslovnih-prostora", "maxResults": 1000, "includeDetails": true }
7. Reusing a Search You Already Built
Njuškalo has filters this form does not expose — heating type, year of renovation, parking, search radius. Build the search in your browser, then paste the address.
{ "searchUrls": ["https://www.njuskalo.hr/prodaja-stanova/zagreb?price[max]=200000&livingArea[min]=60&buildingInfo[lift]=1"], "maxResults": 500 }
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('sian.agency/njuskalo-property-scraper').call({category: 'prodaja-stanova',location: 'zagreb',maxResults: 100,includeDetails: true,});const { items } = await client.dataset(run.defaultDatasetId).listItems();const privateSellers = items.filter((i) => i.sellerType === 'private');console.log(`${privateSellers.length} of ${items.length} listed by owners`);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("sian.agency/njuskalo-property-scraper").call(run_input={"category": "prodaja-stanova","location": "zagreb","maxResults": 100,"includeDetails": True,})rows = list(client.dataset(run["defaultDatasetId"]).iterate_items())priced = [r for r in rows if r.get("price")]print(f"median asking price: {sorted(r['price'] for r in priced)[len(priced) // 2]:,} EUR")
cURL
curl -X POST "https://api.apify.com/v2/acts/sian.agency~njuskalo-property-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"category":"prodaja-stanova","location":"zagreb","maxResults":100,"includeDetails":true}'
Automation Workflows (N8N / Zapier / Make)
Point an HTTP Request node at the run-sync-get-dataset-items endpoint above and you have a Croatian property feed inside your workflow. A common shape: run it nightly with sort: "new" and a small maxResults, filter to sellerType: "private", and push each new row into your CRM or a Slack channel. Apify's own N8N, Zapier and Make integrations work too, if you would rather not build the HTTP call yourself.
📊 Performance & Pricing
One page request returns 25 listings, and a search page answers in under a second, so a 1,000-listing sweep is 40 requests and about a minute. Turning on full listing pages adds one request per listing — that is the slow and the expensive part, so leave it off when you only need prices.
FREE Tier (Try It Now)
- 25 listings per run, so you can see the real output before paying anything
- Every field is available — including GPS, seller type and full descriptions
- No credit card, no API key, no proxy to configure
PAID Tier (Production Ready)
| Event | Price (Bronze) | What it covers |
|---|---|---|
| Listing Search | $0.0013 per listing | One listing from a search — $1.30 per 1,000 |
| Listing Detail | $0.0022 per listing | One listing opened for GPS, description, attributes, photos and seller type |
| Actor Start | $0.005 per run | Apify's per-run start event |
Higher Apify plan tiers pay less per row. You are only charged for rows that were actually returned — a search that matched nothing, a listing that had been sold, and any input that could not be read all cost you nothing.
❓ Frequently Asked Questions
Do I need an API key, a login or a proxy? No. Pick a section and press Start. There is nothing to configure and nothing to buy on top.
Which currency are the prices in?
Euros. Croatia finished the kuna changeover in 2023 and Njuškalo re-denominated its whole back catalogue — 180 prices sampled across six sections in August 2026 were euro-denominated without exception. Croatian formatting uses a dot for thousands, so 171.500 € is 171,500 euros; the price field gives you that as a number.
How many listings can one run return? As many as the section holds. Njuškalo does not cap paging — apartments for sale exposes all 2,094 pages of its 52,329 listings. Your Max listings setting is the only ceiling.
Can I scrape cars and marketplace ads as well as property? Yes. Cars, motorcycles, commercial vehicles, boats, phones, computing, home, sports, tools, kids, jobs, services and pets are all in the picker, and any other Njuškalo URL can be pasted in. They return the same row shape.
Does it return seller phone numbers? No. Njuškalo puts phone numbers behind a click that needs a logged-in session, so a phone column would be empty most of the time. You get the seller's name, whether they are an agency or a private person, their profile URL and their rating — plus whatever they typed into the description.
What does the full-listing-page option cost? It opens each listing, so it bills one Listing Detail event per enriched row on top of the search row. Leave it off and you pay for search rows only.
Can I paste a search URL from my browser? Yes, and it is the best way to reach the fine-grained filters. Build the search on Njuškalo with whatever filters you like — floor area, heating, year built, radius — and paste the URL into Search URLs. Every parameter is preserved.
Can I monitor a market for new listings?
Yes. Schedule the Actor with sort: "new" and a modest Max listings. Each run returns the newest listings first, so you pay for a small window rather than re-reading the whole section.
🐛 Troubleshooting
The run returned fewer rows than Max listings. The section ran out of listings that match your filters. The log prints how many matched and how many pages exist — if that number is small, widen the price band or drop the county.
The run stopped saying my county is not one Njuškalo lists.
Deliberate: a county the Actor cannot honour stops the run instead of quietly searching the whole country and billing you for it. The error names every county that section does have. Njuškalo's slugs are not always the county name — Istarska lives at istra — so type the name and let the Actor match it, or copy a slug from the error. Leave the field empty to search the whole country on purpose.
A county filter did nothing on a car or marketplace run. Only the property sections carry a county filter. For cars, paste a search URL from njuskalo.hr with the location filter already applied.
Some listings have no price.
The seller chose to hide it. Those rows carry isPriceOnRequest: true and a null price — they are real listings, not parse failures.
A listing URL came back as an error row. It had been sold or withdrawn. Error rows are never charged.
Njuškalo is challenging automated requests. The site occasionally challenges a session mid-crawl. The Actor drops that session, starts a fresh one and carries on by itself, so you normally only see this in the log. If a run still fails on it, wait a few minutes and run again.
⚖️ Is it legal to scrape data?
Yes — collecting publicly available information is legal in the EU and the US, and has been repeatedly upheld in court. This Actor reads only pages any visitor can open without logging in, and it collects no personal data beyond the seller name and profile link that Njuškalo itself publishes on every listing.
You are responsible for what you do with the data. Direct marketing to individuals in Croatia is governed by the GDPR, so treat private-seller names as personal data and have a lawful basis before you contact anyone. Apify's ethical web scraping guide is a good starting point.
🤝 Support
- 🐛 Something broken? Open an issue — we read every one
- ⭐ Working well? Leave a 5-star review — it is what gets the next feature built
- 🔍 Need another market? Browse the SIÁN Agency store — property and classifieds scrapers for Italy, Germany, Spain, Brazil, Argentina, Russia and more
Njuškalo is a trademark of Njuškalo d.o.o. This Actor is not affiliated with, endorsed by, or sponsored by Njuškalo. It collects only publicly available listing data.