Njuškalo Scraper — Croatia Classifieds & Prices
Pricing
from $1.69 / 1,000 listings
Njuškalo Scraper — Croatia Classifieds & Prices
Njuškalo scraper for Croatian classifieds. Each row has the EUR price, location, seller, description, and photos for apartments, cars, phones, and jobs. Export JSON or monitor new ads.
Pricing
from $1.69 / 1,000 listings
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
19 days ago
Last modified
Categories
Share
Njuškalo Scraper
Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by Njuškalo d.o.o. or its affiliates. Data is read from publicly accessible search, category, and listing pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.
Njuškalo scraper for Croatian classifieds. Each row is one listing: asking price in EUR, location, seller, description, and photos. Search by keyword or category, or paste a results URL. Use it as a Njuskalo scraper and Njuskalo.hr API alternative from Python, Node.js, cURL, or Apify MCP, and export the dataset as JSON.
Best for: apartment and house comps, used cars, phones, job leads, and a scheduled run that saves only new ads and price changes.
| Actor | Role |
|---|---|
| Njuškalo Scraper ◄── you are here | Croatia classifieds: EUR price, location, seller, new-ad monitor |
| Kleinanzeigen Scraper | Germany classifieds |
| Tutti.ch Scraper | Switzerland classifieds |
| Gumtree Scraper | UK classifieds |
| Leboncoin Scraper | France classifieds |
| Marktplaats Scraper | Netherlands classifieds |
| eBay Sold Listings Scraper | Sold comps for the same goods |
When to use this Actor
- A keyword — Set Keyword to iphone and leave Search URLs empty. Category is ignored while a keyword is set.
- Apartments, cars, phones, or jobs — Pick the category and leave Keyword empty.
- A results page you already opened — Paste the category or search URL. Keyword and category are ignored when Search URLs is set.
- One listing — Paste the listing URL. The run saves that page.
- New ads and price cuts — Turn on monitor mode and schedule the same search. The first run stores a baseline and saves nothing. Later runs save new listing ids and price changes.
When not to use this Actor
- Hidden phone numbers — The reveal button is not called. A number the seller typed into the description stays inside
description. - A national dump in one run — Cap
maxItems(200). Split by category or keyword. - Logged-in seller tools — This Actor reads public pages only.
Key features
- Search and listing pages — Title, EUR price, location, seller, description, and photos. Default 256 MB. Datacenter proxy. No browser.
- Keyword or category — Apartments for sale, apartments for rent, houses, cars, motorbikes, phones, and jobs.
- Pasted URL — Category paths, search URLs, and single listing pages.
- Private versus business —
sellerTypeisprivateorbusinesswhen the page says so. - Monitor — Named key-value store of listing id and last price for that search. The seed run does not open listing pages.
Input
| Field | Required | Default | What it does |
|---|---|---|---|
| Search or listing URLs | No | iPhone search | Wins over the filters below. |
| Keyword | No | — | Site search when URLs are empty. Overrides Category. |
| Category | No | Apartments for sale | Section used when URLs and Keyword are empty. |
| Sort | No | Newest | Applied when the Actor builds the URL. |
| Open listing pages | No | on | Description, photos, attributes, and public seller fields. Same saved row. |
| Maximum listings | No | 40 | Rows to save, up to 200. |
| Monitor mode | No | off | Baseline first, then new ids and price changes. |
| Monitor state store | No | njuskalo-monitor | Named store for the baseline. |
| Proxy | No | Datacenter | Listing pages need it. Switch to residential if a run is blocked. |
{"keyword": "iphone","sort": "new","includeListingDetails": true,"maxItems": 40,"monitorMode": false,"proxyConfiguration": {"useApifyProxy": true}}
Output
| Field | Meaning |
|---|---|
id | Listing id |
url | Public listing page |
title | Listing title |
price | Asking price in EUR |
location | Place on the card or listing page |
postedAt | Publish time |
livingAreaM2 | Square meters when the listing shows them |
rooms | Room count on property listings |
sellerType | private or business |
sellerName | Display name on the listing page |
sellerAddress, sellerEmail | Printed on the listing page when present |
description | Listing description |
image, images | First photo, then the photo list |
attributes | Attribute pairs from the listing page |
changeType | new or price_change on monitor runs |
previousPrice | Prior asking price when changeType is price_change |
scrapedAt | UTC timestamp |
{"id": "51355151","url": "https://www.njuskalo.hr/nekretnine/stan-oglas-51355151","title": "Stan Grižanska","price": 148000,"currency": "EUR","location": "Grad Zagreb, Gornja Dubrava","livingAreaM2": 34.83,"rooms": "1-sobni","sellerType": "business","sellerName": "Moj dom nekretnine","description": "Sunčan stan s balkonom."}
Use cases
- Compare asking prices for apartments in one district and keep
livingAreaM2andsellerTypeso agencies are separate from private sellers. - Pull used cars or phones with the public price, location, and description.
- Schedule monitor mode each morning and export only listings whose price moved.
- For sold comps on the same goods, run eBay Sold Listings Scraper. For Switzerland, run Tutti.ch Scraper.
Integration examples
Replace APIFY_TOKEN. The slug below is the Store name.
Node.js
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor("crawloop/njuskalo-scraper").call({keyword: "iphone",maxItems: 40,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
import osfrom apify_client import ApifyClientclient = ApifyClient(os.environ["APIFY_TOKEN"])run = client.actor("crawloop/njuskalo-scraper").call(run_input={"category": "apartments","maxItems": 40,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(len(items))
cURL
curl -X POST "https://api.apify.com/v2/acts/crawloop~njuskalo-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"category":"apartments","maxItems":40}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP.
Connect your Apify account, then call this Actor by its Store name crawloop/njuskalo-scraper.
Example prompts:
- "Run Njuškalo Scraper for apartments and return price, location, and living area as JSON"
- "Scrape Njuškalo cars and summarize asking price and location"
- "Run Njuškalo Scraper in monitor mode for iphone, then use eBay Sold Listings Scraper for sold comps"
Suite next step
This Actor covers Croatian classifieds. For sold prices on the same goods, run eBay Sold Listings Scraper. For another country’s classifieds, run Tutti.ch Scraper or Gumtree Scraper.
FAQ
Does this open every listing page? Yes, when Open listing pages is on. Monitor seed runs skip those pages and save nothing. Turn the option off to keep the search card only.
Which categories are included? Apartments for sale, apartments for rent, houses for sale, cars, motorbikes, phones, and jobs. A pasted category URL can target any public section.
What if the run is blocked? Leave the datacenter proxy on and retry. If the run still fails, switch the proxy to residential.
What does monitor mode skip? Listing ids already stored for that same search, unless the asking price changed. A quiet tick writes zero rows. The first run only fills the baseline.
Are phone numbers included?
The reveal button is not called. Public email, address, and website are saved when the listing page prints them. A number written in the description stays in description.
How do I export the rows? The run writes one listing per dataset row. Download JSON, CSV, or Excel from that dataset, or read it with the Node.js, Python, and cURL examples.