# HomeZZ.ro Romania Real Estate & Property Listings Scraper (`lum_invader/homezz-romania-real-estate-scraper`) Actor

Extract Romanian real estate listings, apartments, houses, commercial properties, GPS coordinates, specifications, and seller phone numbers from HomeZZ.ro.

- **URL**: https://apify.com/lum_invader/homezz-romania-real-estate-scraper.md
- **Developed by:** [Tobias Greyson](https://apify.com/lum_invader) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.50 / 1,000 homezz.ro romania real estate & property listings scrapers

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## HomeZZ.ro Romania Real Estate & Property Listings Scraper

Extract residential and commercial real estate listings, apartments, houses, land, exact GPS coordinates, property specifications, image galleries, and **unmasked seller/agency phone numbers** from **HomeZZ.ro** (`homezz.ro`), one of Romania's largest dedicated real estate marketplaces (61,000+ active property listings).

Built with lightweight, high-speed HTTP extraction (parsing HomeZZ's server-rendered `#adListing` JSON state and `schema.org/RealEstateListing` JSON-LD payloads with zero headless browser overhead), this Actor delivers structured Romanian real estate intelligence at a fraction of the cost of browser-based scrapers.

### What Data Does This Scraper Extract?

- **Listing & Pricing:** Unique HomeZZ ad ID, title, numeric price, currency (`EUR`/`RON`), transaction type (`vanzare` / `inchiriere`), property type (`apartamente`, `case_vile`, `terenuri`, etc.), relative listing timestamp, and ISO `datePosted`.
- **Geolocation & Address:** City / locality, County (`Judet`), and exact GPS `latitude` and `longitude` coordinates.
- **Property Specifications:** Usable floor area (`squareMeters`, e.g., `135 m²`), number of rooms, floor level, total building floors, construction year (`yearBuilt`), compartmentation (`decomandat` / `semidecomandat`), property condition, and the full 15+ key-value `specifications` map.
- **Direct Seller / Agency Contact:** Seller/agency display name (`sellerName`), seller type (`companie` / `proprietar`), and **unmasked telephone number (`sellerPhone`)**.
- **Media & Content:** Full property description text, primary image URL, and array of all high-resolution photo URLs.

### Common B2B Use Cases

1. **Real Estate Agency Lead Generation & FSBO Sourcing:** Identify newly listed owner (`proprietar`) and agency properties across Bucharest, Cluj-Napoca, Timisoara, Iasi, Brasov, and Constanta with direct phone numbers.
2. **Automated Valuation Models (AVM) & Yield Analytics:** Track price-per-square-meter trends by neighborhood, GPS coordinate cluster, construction year, and floor level across Romania.
3. **Property Portal Aggregation & PropTech Feeds:** Populate real estate comparison engines, investment dashboards, and AI property assistants with structured Romanian inventory.
4. **Mortgage, Insurance & Renovation B2B Outreach:** Target active residential and commercial property listings by transaction type and construction status (`in_constructie`, `nou`, `de_renovat`).

### Input Parameters

| Field | Type | Default | Description |
|---|---|---|---|
| `category` | String | `"vanzare-apartamente"` | Property category and transaction type (e.g., `"vanzare-apartamente"`, `"inchiriere-apartamente"`, `"vanzare-case-vile"`, `"vanzare-terenuri"`). |
| `startUrl` | String | `""` | Optional custom HomeZZ URL (e.g., `"https://homezz.ro/vanzare-apartamente/bucuresti-if"`). Overrides `category` when set. |
| `keyword` | String | `""` | Optional case-insensitive keyword filter matched against title, city, county, or description. |
| `includeDetails` | Boolean | `true` | Fetch each listing's detail page to extract unmasked seller phone number, agency name, full description, and complete specifications. |
| `maxItems` | Integer | `10` | Maximum number of listings to extract. |

### Example JSON Output

```json
{
  "id": 3673337,
  "title": "Apartament 5 camere, 135 mp, balcon, Bulevardul Muncii",
  "price": 312000,
  "currency": "EUR",
  "transactionType": "vanzare",
  "propertyType": "apartamente",
  "city": "Cluj-Napoca",
  "county": "Cluj",
  "latitude": 46.7965,
  "longitude": 23.634,
  "squareMeters": "135 m²",
  "rooms": "5",
  "floor": "2",
  "totalFloors": "2",
  "yearBuilt": "2009",
  "compartmentation": "semidecomandat",
  "condition": "buna",
  "sellerType": "companie",
  "sellerName": "BLITZ Romania",
  "sellerPhone": "0374538019",
  "listedAt": "3 săptămâni în urmă",
  "datePosted": "2026-10-02",
  "badges": [
    "standard",
    "premium"
  ],
  "specifications": {
    "square_meters": "135 m²",
    "total_rooms": "5",
    "floor": "2",
    "total_floors": "2",
    "Numar camere": "5",
    "Suprafata utila": "135 m²",
    "Compartimentare": "semidecomandat",
    "An finalizare constructie": "2009",
    "Tip imobil": "bloc_apartamente",
    "Numar niveluri imobil": "2",
    "Numar bai": "2",
    "Etaj": "2",
    "Stare proprietate": "buna",
    "Mobilat utilat": "partial",
    "Confort": "1",
    "Tip proprietate": "apartamente",
    "Tip tranzactie": "vanzare",
    "Tip vanzator": "companie"
  },
  "description": "Blitz va propune spre vanzare un apartament cu 5 camere, 135 mp...",
  "mainImageUrl": "https://homezz.ro/media/2025-11/3673337/3673337_1.jpg",
  "images": [
    "https://homezz.ro/media/2025-11/3673337/3673337_1.jpg",
    "https://homezz.ro/media/2025-11/3673337/3673337_2.jpg"
  ],
  "url": "https://homezz.ro/apartament-5-camere-135-mp-balcon-bulevardul-muncii-3673337.html"
}
```

### How to Call via Apify API, CLI & MCP Server

#### Apify CLI

```bash
apify call lum_invader/homezz-romania-real-estate-scraper -i '{"category": "vanzare-apartamente", "maxItems": 25}'
```

#### REST API (Synchronous Dataset Items)

```bash
curl -X POST "https://api.apify.com/v2/acts/lum_invader~homezz-romania-real-estate-scraper/run-sync-get-dataset-items?token=<APIFY_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{"category": "vanzare-apartamente", "includeDetails": true, "maxItems": 25}'
```

#### Apify MCP Server (`mcp.apify.com`)

Add `lum_invader/homezz-romania-real-estate-scraper` to your Claude Desktop, Cursor, or custom AI agent MCP configuration:

```json
{
  "mcpServers": {
    "apify": {
      "command": "npx",
      "args": [
        "-y",
        "@apify/actors-mcp-server",
        "--actors",
        "lum_invader/homezz-romania-real-estate-scraper"
      ],
      "env": {
        "APIFY_TOKEN": "<YOUR_APIFY_TOKEN>"
      }
    }
  }
}
```

# Actor input Schema

## `category` (type: `string`):

Select a HomeZZ.ro property category to scrape (Ignored if a custom Start URL is provided).

## `startUrl` (type: `string`):

Optional direct HomeZZ.ro search/city URL (e.g. 'https://homezz.ro/vanzare-apartamente/bucuresti-if'). Overrides the Category dropdown when set.

## `keyword` (type: `string`):

Optional case-insensitive keyword filter matched against listing title, city, county, or description.

## `includeDetails` (type: `boolean`):

When enabled, fetches each listing's detail page to extract the unmasked seller telephone number, seller/agency name, exact date posted, full description, and 15+ structured property specifications.

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

Maximum number of real estate listings to extract.

## Actor input object example

```json
{
  "category": "vanzare-apartamente",
  "startUrl": "https://homezz.ro/vanzare-apartamente",
  "keyword": "",
  "includeDetails": true,
  "maxItems": 10
}
```

# Actor output Schema

## `results` (type: `string`):

Dataset items containing extracted HomeZZ.ro real estate listings.

# 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 = {
    "category": "vanzare-apartamente",
    "startUrl": "https://homezz.ro/vanzare-apartamente",
    "keyword": "",
    "includeDetails": true,
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("lum_invader/homezz-romania-real-estate-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 = {
    "category": "vanzare-apartamente",
    "startUrl": "https://homezz.ro/vanzare-apartamente",
    "keyword": "",
    "includeDetails": True,
    "maxItems": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("lum_invader/homezz-romania-real-estate-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 '{
  "category": "vanzare-apartamente",
  "startUrl": "https://homezz.ro/vanzare-apartamente",
  "keyword": "",
  "includeDetails": true,
  "maxItems": 10
}' |
apify call lum_invader/homezz-romania-real-estate-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,lum_invader/homezz-romania-real-estate-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/OiPZDpoUKLp9gBjZ5/builds/CxONNwzYqpRDjPvCp/openapi.json
