# Imoradar24 Scraper - Romania Real Estate Listings (`recordsdata/imoradar24-scraper`) Actor

Scrape imoradar24.ro, Romania's real estate aggregator: sale and rent listings with prices, coordinates, photos, price history, expired listings and market statistics. Export Romania property data to JSON, CSV or Excel.

- **URL**: https://apify.com/recordsdata/imoradar24-scraper.md
- **Developed by:** [RecordsData](https://apify.com/recordsdata) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $20.00 / 1,000 listing cards

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![RecordsData](https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3)

## 🏠 Imoradar24 Scraper - Romania Real Estate Listings, Price History and Market Stats - RecordsData

> 🚀 **Export imoradar24.ro real estate in minutes.** Search 283,550 live properties for sale and 118,713 for rent in 11 categories (apartments, studios, houses, land, commercial space, offices and more), read single listings by address or number, walk the site sitemaps and pull listing counts and price statistics per county. Every detailed listing returns price in EUR, coordinates, area, rooms, floor, year, amenities, nearby places, price history, all photos and the portals that carry the ad. No login, no browser and no proxy setup needed.

**Imoradar24 Scraper is an Apify Actor that collects public real estate listings from imoradar24.ro, the Romanian property aggregator that merges Imobiliare.ro, OLX.ro, Storia.ro, LaJumate.ro, publi24.ro and its own advertisers into one de-duplicated list.** A detailed listing has about 65 fields (up to 75), the dataset schema holds 114 columns across six record types, and a 3-listing run finishes in under 30 seconds.

### 📋 What the Imoradar24 Scraper does

The Actor reads the same public pages every visitor of imoradar24.ro sees. Each page carries its data as embedded JSON, so rows are exact and no browser is needed. Five modes cover the site.

- **search**: listings for a deal type (sale, rent or both), one or more property types and the places you name (a county such as `Cluj`, or a path such as `judetul-cluj/cluj-napoca` or `bucuresti/sector-3`). Rooms (2, 3, 4 or more), seller type (private owners or agencies), new builds, price and area limits are applied on every row.
- **urls**: paste listing addresses, search addresses or just listing numbers. Several kinds can be mixed.
- **sitemap**: every listing address the site publishes, newest first, with the date the site last changed it. Switch off **Open every listing** to get a cheap address list (address, photo, change date), or leave it on for full rows.
- **expired**: listings the site has taken down, with their last price, location and price history. Useful to measure how long homes stay on the market.
- **market**: listing count per place and property type plus price, price per m2 and area statistics from the first 60 listings of each search.

> 💡 **Why it matters:** one listing is often advertised on several portals. imoradar24.ro groups those copies into one property, so a run gives you the property once, with the list of portals and the price each one shows.

### 📊 Output

Every row has a `recordType`: `listing` (card data from the search page, fast), `listing-detail` (full listing page), `expired-listing`, `changed-listing` (monitor mode), `listing-url` (sitemap address) or `market-stat`. Fields without a value are left out, never filled with `null`. Column order is fixed: image first, identity and price next, then location, specifications, text, media, seller, and `scrapedAt` last. Yes/No flags are the strings `Yes` and `No`.

Real `listing-detail` row (rent, Brasov), shortened:

```json
{
  "imageUrl": "https://i.roamcdn.net/prop/rad/gallery-full-1200w-watermark/Syor9KeszPac71qtr0AW7A/.../67a6145b-8a75-4509-9636-e4926e7c8a65.jpg",
  "recordType": "listing-detail",
  "title": "Casă individuală cu 5 camere cu Canalizare în Noua",
  "listingId": "2432168",
  "url": "https://www.imoradar24.ro/oferta/casa-individuala-de-inchiriat-brasov-noua-mobilata-5-camere-2432168",
  "operation": "rent",
  "propertyType": "house",
  "price": 1500,
  "priceFormatted": "1.500 € / lună",
  "currency": "EUR",
  "priceHistory": [{ "date": "2026-10-09", "maxPrice": 1500, "minPrice": 1500 }, { "date": "2026-10-11", "maxPrice": 1500, "minPrice": 1500 }],
  "address": "Noua, Brașov",
  "region": "Județul Brașov",
  "city": "Brașov",
  "neighborhood": "Noua",
  "latitude": 45.613699,
  "longitude": 25.643883,
  "locationApproximate": "Yes",
  "rooms": 5,
  "areaUsable": 270,
  "areaLand": 250,
  "yearBuilt": 2019,
  "furnished": "Yes",
  "nearby": [{ "type": "transport", "category": "Mijloace transport", "name": "Strand Noua", "distance": "aprox. 150 m", "distanceM": 150 }],
  "imageCount": 33,
  "publishedAt": "2026-10-09",
  "daysOnMarket": 1,
  "sellerType": "agency",
  "commissionFree": "Yes",
  "sourcePortal": "Imobiliare.ro",
  "sources": [{ "portal": "Imobiliare.ro", "url": "https://www.imobiliare.ro/oferta/casa-individuala-de-inchiriat-brasov-noua-mobilata-5-camere-276083469", "price": 1500, "currency": "EUR", "postedAt": "2026-10-09", "sellerType": "agency" }],
  "scrapedAt": "2026-10-11T11:52:04.403Z"
}
```

Real `market-stat` row (apartments for sale, Timis), shortened:

```json
{
  "recordType": "market-stat",
  "url": "https://www.imoradar24.ro/apartamente-de-vanzare/judetul-timis",
  "operation": "sale",
  "propertyType": "apartment",
  "currency": "EUR",
  "region": "Județul Timiș",
  "listingCount": 12134,
  "sampleSize": 60,
  "medianPrice": 89495,
  "medianPricePerM2": 1915.26,
  "avgArea": 51.7,
  "privateSellerShare": 7.5
}
```

Field groups of a detailed row, with the type and a real value:

| Field | Type | Example |
|---|---|---|
| `listingId`, `url`, `title` | string | `2432168`, the `/oferta/` address, the ad title |
| `operation`, `propertyType`, `propertySubtype` | string | `rent`, `house`, `Detached house` |
| `price`, `currency`, `priceFormatted`, `pricePerM2`, `rentPeriod` | number or string | `1500`, `EUR`, `1.500 € / lună`, `month` |
| `priceHistory`, `lowestPrice`, `highestPrice` | array or number | dated points with `minPrice` and `maxPrice` |
| `address`, `region`, `city`, `district`, `neighborhood` | string | `Noua, Brașov` |
| `latitude`, `longitude`, `locationApproximate` | number or string | `45.613699`, `25.643883`, `Yes` |
| `rooms`, `bathrooms`, `areaUsable`, `areaBuilt`, `areaLand`, `floor`, `yearBuilt` | number | `5`, `4`, `270`, `250`, `2019` |
| `heating`, `furnished`, `parking`, `hasElevator`, `energyClass` | string | `Calorifere, Centrală proprie`, `Yes` |
| `amenities`, `nearby` | array | places with `distanceM` in meters |
| `sellerType`, `agencyName`, `commissionFree` | string | `agency`, `Yes` |
| `sources`, `similarListingIds` | array | portal, url, own price and posting date |

### 🔍 Input parameters

| Parameter | What it does |
|---|---|
| `mode` | `search`, `urls`, `sitemap`, `expired` or `market` (default `search`) |
| `operation`, `propertyTypes`, `locations` | Deal type, one or more of 11 categories, counties or site paths |
| `minPrice`, `maxPrice`, `minAreaM2`, `maxAreaM2` | Limits checked on every listing (EUR, m2) |
| `rooms`, `sellerType`, `newBuildOnly` | Room count (4 means four or more), owner or agency, new builds |
| `maxItems`, `maxPagesPerSearch` | Row cap (free plans 10) and list pages per search (max 10) |
| `startUrls`, `listingIds` | `urls` mode: listing or search addresses, or listing numbers |
| `modifiedSince`, `scrapeDetails` | Sitemap and expired date filter, and full rows or cheap address list |
| `onlyNew`, `trackPriceChanges`, `stateKey`, `resetSeen` | Monitor mode controls |
| `includeContactDetails`, `includeRaw`, `proxyConfiguration` | Agent names, raw site fields, optional proxy |

### 📈 How it compares to alternatives

No Actor on the Apify Store reads imoradar24.ro. These are the closest Romanian options, read on 2026-10-11:

| | This Actor | swerve/imobiliare-scraper | sourabhbgp/olx-scraper |
|---|---|---|---|
| Source | Aggregator of 5+ portals | Imobiliare.ro only | OLX, 5 countries |
| Fields | About 65 per detailed listing | 16 per listing | About 31 in sample |
| Coordinates | Yes, detailed listings | Not listed | Yes |
| Price history, expired ads | Yes, both | Not listed | Not listed |
| Monitor mode | Yes, new and price changes | Not listed | Not listed |
| Price per 1,000 | $20.00 cards, $40.00 full | $5.00 | $2.00 plus $0.01 start |

Cheaper single-portal Storia actors exist too, such as `studio-amba/storia-ro-scraper` from $1.20 and `logiover/storia-ro-scraper-romania-real-estate` from $1.50 per 1,000. If you need one portal at the lowest cost, one of those fits better. This Actor costs more per row than every Actor listed above, so it is not the budget choice. The higher price buys several portals without duplicates, about 65 fields, coordinates, price history, expired listings and monitor mode. It reads at most 300 listings per search and returns no phone numbers.

### 💰 Pricing and cost examples

Pay per event, read from the live Actor on 2026-10-11. You pay only for rows delivered.

| Event | Price | Per 1,000 |
|---|---|---|
| Listing card (search page) | $0.02 | $20.00 |
| Full listing (detail page) | $0.04 | $40.00 |
| Expired listing | $0.04 | $40.00 |
| Price change (monitor) | $0.04 | $40.00 |
| Sitemap address | $0.01 | $10.00 |
| Market statistics row | $0.05 | $50.00 |

- 300 full apartment listings in Cluj: 300 x $0.04 = **$12.00**.
- 1,000 cards for sale across Romania, split in four runs: **$20.00**.
- 10,000 sitemap addresses without details: **$100.00**.
- 100 market rows (place and type pairs): **$5.00**.
- A daily monitor finding 20 new full listings and 3 price changes: 23 x $0.04 = **$0.92** per day.

Free plans return up to 10 items per run. Runs that end with no match or an input error charge nothing.

### 🚀 How to use

1. Create a free account at [console.apify.com](https://console.apify.com) and open the Actor.
2. Choose **What to collect**. For a first test keep `search`, pick a property type and a deal type, and set **Maximum items** to 10.
3. Optionally name places (`Cluj`, `Brasov`, `bucuresti`, `judetul-cluj/cluj-napoca`) and add price, area, rooms or seller type limits.
4. Press **Start**. Open the dataset when the run finishes and download JSON, CSV, Excel, XML or HTML.
5. To watch a market, turn on **Only new listings** and **Report price changes**, give the search a **Monitor name** and schedule the Actor.

A minimal JSON input:

```json
{ "mode": "search", "propertyTypes": ["apartments"], "operation": "sale", "locations": ["Cluj"], "rooms": "3", "minPrice": 100000, "maxPrice": 250000, "maxItems": 50 }
```

### 💼 Business use cases

- 📈 **Investors and analysts**: asking price and price per m2 by county and type. Market mode gives one row per place, search mode gives the listings behind it.
- 🏢 **Agencies and proptech**: feed new listings into a CRM, see which portals carry a competitor's stock, split private owners from agencies.
- 🌍 **Relocation advisers**: shortlists with photos, floor, year and nearby transport.
- 🏗️ **Developers and lenders**: follow new builds and plots, spot price cuts, study expired listings.

### 🔌 Automating the Imoradar24 Scraper

Schedule runs in Apify Console and send results to Make, Zapier or n8n, Slack or e-mail alerts, Google Sheets or Airbyte, or a webhook. With the Python client:

```python
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("YOUR_USERNAME/imoradar24-scraper").call(run_input={"mode": "search", "locations": ["Cluj"], "maxItems": 30})
rows = client.dataset(run["defaultDatasetId"]).list_items().items
```

### 🤖 Use with AI agents through MCP

The Apify MCP server (`mcp.apify.com`) exposes this Actor as a tool, so Claude, ChatGPT or another MCP client can run it from a chat. The agent reads the input schema and fills the fields itself.

Example prompt: "Using the Imoradar24 Scraper, get 30 three-room apartments for sale in Cluj under 200,000 EUR with details, then sort them by price per square meter and tell me which ones had a price drop."

Tool description for an agent: "Collects public real estate listings from imoradar24.ro (Romania) for sale or rent. Input: mode (search, urls, sitemap, expired, market), operation, propertyTypes, locations, price, area and rooms limits, maxItems. Returns typed rows with price in EUR, coordinates, specifications, price history, photos and source portals."

### Frequently Asked Questions

#### 🏠 What data can I scrape from imoradar24.ro?

Real estate listings for sale and rent: apartments, studios, penthouses, duplexes, houses, detached houses, land, agricultural land, commercial spaces and offices. You can also read expired listings and listing counts with price statistics per county. Each detailed listing includes price, coordinates, specifications, amenities, price history, photos and the portals carrying the ad.

#### 🔎 How do I scrape listings for one city or county?

Add the place to **Places**: a county name such as `Cluj` or `bucuresti`, or the path as it appears in the site address, for example `judetul-cluj/cluj-napoca` or `bucuresti/sector-3`. A pasted search address works too. A place that does not exist returns one free error row that says so, and the run still ends as succeeded.

#### 🔢 How many listings can one search return?

Up to 300. The site's robots.txt only allows reading pages 2 to 10 of a search, 30 listings per page, so one search path stops at 300 listings, and new build searches stop at 30. To go deeper, split by county, city, area or rooms: three runs for Cluj, Bucharest and Brasov already reach 900. The sitemap mode has no such limit and lists about 150,000 live addresses.

#### 🧾 What is the difference between listing and listing-detail rows?

`listing` rows come from the search page: price, location, area, rooms, floor, year, a description preview, the photos shown and the source portals. `listing-detail` rows open the listing page and add coordinates, price history, the full description, specifications, amenities, nearby places and all photos. Cards cost $0.02 and detailed rows $0.04, so turn off **Open every listing** when cards are enough.

#### 📍 How accurate are the coordinates?

They are the map center shown on the listing page. `locationApproximate` is `Yes` when the site shows an area instead of the exact address. In a 48-listing check this was the case for 24 of 42 agency listings and none of 6 private-owner listings, so treat those points as the neighborhood, not the door. Cards from search pages carry no coordinates.

#### 💶 Which currency and language are used?

Prices keep the currency the site shows, almost always EUR, with the numeric `price` next to `priceFormatted` and a `currency` code. Location names and amenities stay in Romanian with diacritics, while field names and Yes/No flags are English. Fields without a value are left out of the row instead of being filled with null, so check for missing keys when you import to a table.

#### 🧑 Does it return names, phones or e-mails?

No private data. Owners are never named, phone numbers and e-mail addresses inside descriptions are replaced by `[contact removed]`, and phone numbers are never requested from the site. Agency names are output when the advertiser is a business. Many advertisers are individual agents, so their names stay hidden unless you turn on **Include agent names**.

#### 🔁 How do I get only new listings or price changes?

Turn on **Only new listings** and give the search a **Monitor name**. The next run skips listings it already delivered, and you are not charged for skipped ones. Add **Report price changes** to get a listing again, as a `changed-listing` row, with the previous price and the change in percent whenever its price moved. Schedule the Actor daily for an alert feed.

#### 🛡️ Do I need a proxy or an API key?

No. The site allows plain requests but limits one connection to about 60 to 75 requests per minute, so the Actor paces itself at 0.8 requests per second. A list page of 30 listings takes about 1.3 seconds and each detailed listing about 2.5 seconds. If the site asks a connection to pause, the Actor continues through the Apify datacenter proxy on its own.

#### 🧪 What happens if my input is wrong or nothing matches?

A wrong value, such as a place that is not a county, ends the run as succeeded with one free error row that says what to fix. A search with no matches ends as succeeded with no rows. Neither is charged. Free plans return up to 10 items per run and paid plans up to 1,000,000, and you can export JSON, CSV, Excel, XML, HTML or RSS.

### ⚖️ Limits and legal notes

- The Actor reads public pages that need no login and follows the robots.txt rules of the site.
- The site terms reserve the rights to its content: use the data in line with them and with the privacy law that applies to you. Photos are returned as links, never downloaded.
- Search depth is 300 listings per search path, and phone numbers are not available.

### 🔗 Recommended Actors

- [RecordsData collection](https://apify.com/RecordsData): other real estate and public data scrapers by the same team.

**🆘 Need help?** Write to <contact.punkrecordsdata@gmail.com> or open an issue in the Issues tab.

> **⚠️ Disclaimer:** This is an independent tool and is not affiliated with, endorsed by or sponsored by Imoradar24 or Realmedia Network. Imoradar24 is a trademark of its owner. It collects only publicly available data.

Last updated: 2026-10-11

# Actor input Schema

## `mode` (type: `string`):

search = live sale and rent listings for the property types and places below. urls = the imoradar24.ro listing or search addresses and listing numbers you list. sitemap = every listing address the site publishes in its sitemap, newest first. expired = listings the site has taken down (price, location and the date they went offline). market = listing counts and price statistics per place and property type.

## `maxItems` (type: `integer`):

Stops after this many rows (all record types together). Free plans are limited to 10 items per run.

## `operation` (type: `string`):

Sale, rent or both. Property types that do not exist for the chosen deal type are skipped with a warning.

## `propertyTypes` (type: `array`):

Which categories to read (search, market, sitemap and expired modes). Penthouses, land and agricultural land exist for sale only; offices exist for rent only. All property types reads the site's combined category.

## `locations` (type: `array`):

Optional. A county or Bucharest by name (Cluj, Brasov, bucuresti) or a path as it appears in imoradar24.ro addresses, for example judetul-cluj/cluj-napoca or bucuresti/sector-3. Empty means the whole country.

## `minPrice` (type: `integer`):

Only listings priced at or above this amount in euro. Leave empty or 0 for no limit. Listings priced in lei are compared by the euro price the site shows.

## `maxPrice` (type: `integer`):

Only listings priced at or below this amount in euro. Leave empty or 0 for no limit.

## `minAreaM2` (type: `integer`):

Only listings with at least this many square meters (usable area, or land area for plots). Leave empty or 0 for no limit.

## `maxAreaM2` (type: `integer`):

Only listings with at most this many square meters. Leave empty or 0 for no limit.

## `rooms` (type: `string`):

Number of rooms for apartments, houses and duplexes. 4 means four or more. Any means no room filter.

## `sellerType` (type: `string`):

owner = private sellers only (no agency commission), agency = agency listings only, all = both. Private sellers are never named in the output.

## `newBuildOnly` (type: `boolean`):

Only new construction. The site allows reading the first page (30 listings) of each new build search, so use places and property types to cover more.

## `maxPagesPerSearch` (type: `integer`):

Each list page holds 30 listings. The site allows at most 10 pages (300 listings) per search, so split large areas by place or rooms to go deeper.

## `startUrls` (type: `array`):

urls mode: imoradar24.ro listing addresses (https://www.imoradar24.ro/oferta/...) or search addresses (for example https://www.imoradar24.ro/apartamente-de-vanzare/judetul-cluj/cluj-napoca).

## `listingIds` (type: `array`):

urls mode: imoradar24.ro listing numbers (the digits at the end of a /oferta/ address).

## `modifiedSince` (type: `string`):

sitemap and expired modes: only listings the site changed on or after this date, written YYYY-MM-DD (for example 2026-10-01). Empty means no date limit.

## `scrapeDetails` (type: `boolean`):

On: open each listing page for the full description, all photos, coordinates, price history, amenities, nearby places and the portals that carry the ad (listing-detail-record). Off: card data only from the list page, about twice as fast (listing-record). In sitemap mode, off returns address, photo and change date only (listing-url-record).

## `includeContactDetails` (type: `boolean`):

Adds the name of the individual agent or seller account that posted the ad (agentName) and the seller account id (sellerId). Off by default; agency names are always included, private owners are never named. Phone numbers are never collected.

## `includeRaw` (type: `boolean`):

Adds a raw object with the unprocessed site fields that have no dedicated column.

## `onlyNew` (type: `boolean`):

Skip listings already delivered by an earlier run of the same search, so scheduled runs only return and charge for what is new. The memory is stored in your own Apify account.

## `trackPriceChanges` (type: `boolean`):

With Only new listings: also return a listing again when its price changed since the last run, with the previous price and the change in percent (changed-listing-record).

## `stateKey` (type: `string`):

Optional label to keep several monitors on the same search apart.

## `resetSeen` (type: `boolean`):

Clear the monitor memory for this search before the run, so everything counts as new.

## `maxConcurrency` (type: `integer`):

Parallel connections when a proxy is used. Without a proxy, requests are paced at about 0.8 per second to respect the site's rate limit, whatever this value is.

## `proxyConfiguration` (type: `object`):

Optional. Empty means direct requests, which work. If the site pauses a connection (Cloudflare rate limit), the actor switches to the Apify proxy on its own.

## Actor input object example

```json
{
  "mode": "search",
  "maxItems": 10,
  "operation": "sale",
  "propertyTypes": [
    "apartments"
  ],
  "locations": [
    "Cluj"
  ],
  "rooms": "any",
  "sellerType": "all",
  "newBuildOnly": false,
  "maxPagesPerSearch": 10,
  "startUrls": [
    "https://www.imoradar24.ro/apartamente-de-vanzare/judetul-cluj/cluj-napoca"
  ],
  "listingIds": [],
  "modifiedSince": "",
  "scrapeDetails": true,
  "includeContactDetails": false,
  "includeRaw": false,
  "onlyNew": false,
  "trackPriceChanges": false,
  "stateKey": "",
  "resetSeen": false,
  "maxConcurrency": 2,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields per row

## `fullData` (type: `string`):

Complete dataset with all fields

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10,
    "propertyTypes": [
        "apartments"
    ],
    "locations": [
        "Cluj"
    ],
    "minPrice": 0,
    "maxPrice": 0,
    "minAreaM2": 0,
    "maxAreaM2": 0,
    "startUrls": [
        "https://www.imoradar24.ro/apartamente-de-vanzare/judetul-cluj/cluj-napoca"
    ],
    "listingIds": [],
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/imoradar24-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "maxItems": 10,
    "propertyTypes": ["apartments"],
    "locations": ["Cluj"],
    "minPrice": 0,
    "maxPrice": 0,
    "minAreaM2": 0,
    "maxAreaM2": 0,
    "startUrls": ["https://www.imoradar24.ro/apartamente-de-vanzare/judetul-cluj/cluj-napoca"],
    "listingIds": [],
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/imoradar24-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "propertyTypes": [
    "apartments"
  ],
  "locations": [
    "Cluj"
  ],
  "minPrice": 0,
  "maxPrice": 0,
  "minAreaM2": 0,
  "maxAreaM2": 0,
  "startUrls": [
    "https://www.imoradar24.ro/apartamente-de-vanzare/judetul-cluj/cluj-napoca"
  ],
  "listingIds": [],
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call recordsdata/imoradar24-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/imoradar24-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/bMVjgrhgSLymgLDI3/builds/BEaHapTfG8iaek5vy/openapi.json
