Njuškalo Scraper - Croatia Property, Cars & Classifieds avatar

Njuškalo Scraper - Croatia Property, Cars & Classifieds

Pricing

from $1.14 / 1,000 listing searches

Go to Apify Store
Njuškalo Scraper - Croatia Property, Cars & Classifieds

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Ü

SIÁN OÜ

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

6 days ago

Last modified

Share

Njuškalo Scraper — Croatia Property, Cars & Classifieds 🇭🇷

Apify Actor Pricing Free tier Maintained by SIÁN

🎉 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 Sectionprodaja-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

FieldTypeDefaultWhat it does
operationselectsearchsearch walks a section; detail expands listing URLs you already have
categoryselectprodaja-stanovaWhich of the 27 sections to walk
locationstringCroatian county or city: zagreb, split, rijeka, istra. Property sections only
keywordstringSearch the whole site for a word instead of walking one section
maxResultsinteger100Stop after this many listings
includeDetailsbooleanfalseOpen every listing for GPS, description, attributes, photos and seller type
searchUrlsarrayPaste njuskalo.hr browse or search URLs; every filter in them is kept
listingUrlsarrayListing URLs to expand, for the detail operation
minPrice / maxPriceinteger0Price band in euros; 0 means no bound
onlyWithImagesbooleanfalseSkip listings with no photo
sortselectnewnew, 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.

FieldTypeDescription
listingIdnumberNjuškalo's own listing id
listingTitlestringListing headline as posted
pricenumberAsking price as a number
priceTextstringPrice as Njuškalo formats it, e.g. 171.500 €
currencystringAlways EUR
isPriceOnRequestbooleanTrue when the seller hid the price
urlstringDirect link to the listing
imageUrlstringThumbnail
locationstringTown and neighbourhood
postedAtstringISO timestamp of posting
summaryarrayThe short facts Njuškalo shows under the title
categorySlugstringSection the listing sits in
isPromotedbooleanWhether the seller paid for placement
hasVirtualTour / hasVideo / hasGroundPlanbooleanMedia the listing carries
listingDescriptionstringFull Croatian description
latitude / longitudenumberGPS coordinates
locationApproximatebooleanWhether Njuškalo blurred the pin
categoryPatharrayFull breadcrumb, including county and town
categoryIdnumberNjuškalo's category id
sellerTypestringagency or private
sellerNamestringSeller or agency name
sellerIdnumberNjuškalo seller id
sellerUrlstringLink to the seller's other listings
sellerRating / sellerRatingCountnumberSeller's rating and how many ratings it is from
attributesobjectFloor area, rooms, floor, build year, energy rating and the rest
featuresobjectGrouped features: heating, permits, parking, orientation
imageUrlsarrayEvery photo
imageCountnumberHow many photos
viewCountnumberTimes the listing has been viewed
publishedAtstringPublication date as Njuškalo displays it
listingStatusstringactive while the listing is live
sourceCategory / sourceKeyword / sourceUrlstringWhat produced the row
statusstringsuccess or error
_operation / _fetchedAtstringWhich 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 ApifyClient
client = 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
EventPrice (Bronze)What it covers
Listing Search$0.0013 per listingOne listing from a search — $1.30 per 1,000
Listing Detail$0.0022 per listingOne listing opened for GPS, description, attributes, photos and seller type
Actor Start$0.005 per runApify'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.

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


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.