# Bezrealitky Property Scraper - Czech Real Estate Listings (`sian.agency/bezrealitky-property-scraper`) Actor

Scrape bezrealitky.cz, the Czech property portal where owners list without an agent. Flats, houses, land and cottages for rent or sale: price, monthly charges, deposit, floor area, layout, energy class, GPS, full description and every photo.

- **URL**: https://apify.com/sian.agency/bezrealitky-property-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** Real estate, Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.32 / 1,000 property searches

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Bezrealitky Scraper: Czech Owner Listings for Rent & Sale 🏠

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Sreality Scraper](https://img.shields.io/badge/Store-Sreality%20Scraper-CC0000)](https://apify.com/sian.agency/sreality-property-scraper?fpr=sian) [![Willhaben Property Scraper](https://img.shields.io/badge/Store-Willhaben%20Property%20Scraper-00A0E0)](https://apify.com/sian.agency/willhaben-property-scraper?fpr=sian) [![Otodom Property Scraper](https://img.shields.io/badge/Store-Otodom%20Property%20Scraper-1AE392)](https://apify.com/sian.agency/otodom-property-scraper?fpr=sian)

#### 🎉 Every owner listing on bezrealitky.cz, with rent, charges, deposit, photos and GPS in one row

##### For Prague renters, relocation desks, investors and analysts who want the part of the Czech market agencies never list

### 🔎 What is the Bezrealitky Scraper — and when should you use it?

The **Bezrealitky Scraper** turns public Czech property listings from bezrealitky.cz, the portal where owners rent and sell without an agent 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:** flats, houses, land, garages, offices or cottages in the Czech Republic for rent or for sale, and especially the owner-posted listings that agency portals do not carry. Every row has the price or monthly rent, with service charges, utilities and deposit in their own columns. It also carries the floor area, the Czech layout (1+kk, 2+1), furnished status, floor, energy class, the address with GPS, the full description and every photo. A flag says whether the owner posted it on the site or it came in from a partner feed.

**Use something else when:** you need agency listings or the whole Czech market. Use [Sreality Scraper](https://apify.com/sian.agency/sreality-property-scraper?fpr=sian) for the largest Czech portal, with agency stock and private sellers. This actor covers bezrealitky.cz listings only. Owners are contacted through the site's own messaging, so no phone number or e-mail is returned, and asking prices are not sold prices.

### 🤖 Use with AI agents

Already connected to the [Apify MCP server](https://mcp.apify.com)? Just ask for this Actor by name: sian.agency/bezrealitky-property-scraper

**Your agent can pay for its own runs.** This Actor is eligible for [agentic payments](https://docs.apify.com/platform/actors/publishing/monetize), so an agent can discover it, run it and settle the bill over [x402](https://www.x402.org/) (USDC on Base) or [Skyfire](https://www.skyfire.xyz/) — 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:

```text
I want Czech rental and sale listings posted by owners on bezrealitky.cz using the Apify Actor `sian.agency/bezrealitky-property-scraper`.

Use it when I need: flats, houses, land, garages, offices or cottages in the Czech Republic for rent or for sale, and especially the owner-posted listings that agency portals do not carry. Every row has the price or monthly rent, with service charges, utilities and deposit in their own columns. It also carries the floor area, the Czech layout (1+kk, 2+1), furnished status, floor, energy class, the address with GPS, the full description and every photo. A flag says whether the owner posted it on the site or it came in from a partner feed.

Don't use it when: you need agency listings or the whole Czech market — use sreality-property-scraper instead.

How to call it: set `operation` to `search`, pick `dealType` (`pronajem` for rent, `prodej` for sale) and `propertyType` (`byt`, `dum`, `pozemek`, `garaz`, `kancelar`, `nebytovy-prostor`, `chata-chalupa`), then choose `locations` from the list (`praha`, `brno`, `jihomoravsky-kraj`, `ceska-republika` and so on). Narrow with `dispositions`, `minPrice`, `maxPrice`, `minArea`, `maxArea`, `ownership`, `buildingTypes`, `furnished` and `postedDirectlyOnly`. For a town or Prague quarter that is not in the list, paste its bezrealitky.cz results page into `searchUrls`. To look up listings you already have, set `operation` to `detail` and pass `listingUrls`.

Start with this input:
{
  "operation": "search",
  "dealType": "pronajem",
  "propertyType": "byt",
  "locations": [
    "praha"
  ],
  "dispositions": [
    "2+kk",
    "2+1"
  ],
  "maxPrice": 30000,
  "postedDirectlyOnly": true,
  "maxResults": 200
}

Ask me which place and whether they want rentals or sales, and the rent or price ceiling, then run the Actor and summarise the results as a table.
```

**Things you can ask your agent for:**

- *List every furnished 2+kk flat for rent in Prague under 30,000 CZK that an owner posted, with the deposit and monthly charges.*
- *Pull all owner-listed flats for sale in Brno and rank them by price per square metre.*
- *Find Prague rentals whose price was cut, sorted by the biggest cut, with days on the market.*

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at [apify.com/sian.agency/bezrealitky-property-scraper.md](https://apify.com/sian.agency/bezrealitky-property-scraper.md).

### 📋 Overview

**Bezrealitky.cz is where Czech owners rent and sell without an agent.** This actor turns its listings into clean rows you can filter, export or feed to a spreadsheet, a database or an AI agent.

**What you get:**

- ✅ **The full listing in every search row**: description, every photo and every parameter come back with the search itself, so there is no second lookup to pay for
- 🧾 **The true monthly cost of a rental**: rent, service charges, utilities and deposit sit in separate columns
- 🙋 **Owner stock, flagged**: each row says whether the owner posted it on bezrealitky.cz or it arrived from a partner feed, and one checkbox keeps owners only
- 🎯 **Every filter the site has**: layout (1+kk, 2+1…), price, floor area, panel or brick, ownership, furnished, sort order
- 🗺️ **Places by name**: all 14 regions, the main cities and the Prague and Brno commuter districts are in a dropdown, and any other town works by pasting its page
- 💰 **Pay per listing**: you are charged for listings returned, never for a search that matched nothing or a URL we could not read

***

### ✨ Features

- 🏢 **Flats, houses, land, garages, offices, commercial space and cottages**, for rent or for sale
- 🧾 **Rent, charges, utilities, deposit and price per m²** as numbers, not text
- 🛋️ **Furnished, floor, lift, balcony, terrace, cellar, parking and garage** on every row that states them
- ⚡ **Energy class, building type, condition and ownership** (personal, cooperative or municipal)
- 📍 **Street, city district, ZIP, RÚIAN address code and GPS** for mapping and geocoding
- 🗓️ **Days listed, view count, available from and a price-cut flag** with the original price
- 🖼️ **Every photo URL**, the main photo as a thumbnail, and video links when the listing has them
- 🇬🇧 **English title and description** whenever the owner wrote one
- 🔗 **Listing lookup by URL** for listings you already track

***

### 🎬 Quick Start

Pick rent or sale, a property type and one or more places, then press Start. The run reads bezrealitky.cz's listings for those places and saves one row per listing. Use Max listings to decide how many you pay for.

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~bezrealitky-property-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"operation": "search", "dealType": "pronajem", "propertyType": "byt", "locations": ["praha"], "maxResults": 100}'
```

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Choose what to search

Pick For rent or For sale, a property type, and the places you care about.

#### Step 2: Narrow it down (optional)

Add layouts, a price or area band, furnished, building type, or tick Posted directly on Bezrealitky only.

#### Step 3: Run and export

Press Start, then download the dataset as JSON, CSV or Excel, or open the Processing Report.

**That's it. In under a minute you'll have:**

- Every matching listing with price, charges and floor area
- The address, district and GPS of each one
- The full description and photo set, ready to review

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| operation | string | No | `search` (default) or `detail` for listing URLs you already have |
| dealType | string | No | `pronajem` (rent, default) or `prodej` (sale) |
| propertyType | string | No | `byt`, `dum`, `pozemek`, `garaz`, `kancelar`, `nebytovy-prostor`, `chata-chalupa` |
| locations | array | No | Places from the list, e.g. `praha`, `brno`, `jihomoravsky-kraj`, `ceska-republika` |
| dispositions | array | No | Layouts such as `1+kk`, `2+1`, `3+kk` |
| minPrice / maxPrice | integer | No | Price band in CZK (monthly rent for rentals) |
| minArea / maxArea | integer | No | Floor-area band in m² |
| ownership | string | No | `any`, `osobni`, `druzstevni`, `obecni` |
| buildingTypes | array | No | `panel`, `brick`, `wood`, `stone`, `prefab`, `skeleton`, `mixed` |
| furnished | string | No | `any`, `vybaveny`, `castecne`, `nevybaveny` |
| postedDirectlyOnly | boolean | No | Keep only listings people posted on bezrealitky.cz themselves |
| sort | string | No | `newest`, `price_asc`, `price_desc`, `area_desc`, `area_asc`, `discount` |
| maxResults | integer | No | Stop after this many listings across the run (default 100); Property Detail ignores it |
| searchUrls | array | No | bezrealitky.cz results pages; place and the page's own filters are read from the address |
| listingUrls | array | No | Listing URLs for the Property Detail operation |

**Example: owner-posted 2+kk rentals in Prague under 30,000 CZK**

```json
{
  "operation": "search",
  "dealType": "pronajem",
  "propertyType": "byt",
  "locations": ["praha"],
  "dispositions": ["2+kk"],
  "maxPrice": 30000,
  "postedDirectlyOnly": true,
  "maxResults": 200
}
```

**Example: a Prague quarter that is not in the list**

```json
{
  "operation": "search",
  "searchUrls": [{ "url": "https://www.bezrealitky.cz/vypis/nabidka-pronajem/byt/praha-chodov" }]
}
```

**Example: listings you already have**

```json
{
  "operation": "detail",
  "listingUrls": [{ "url": "https://www.bezrealitky.cz/nemovitosti-byty-domy/1071664-nabidka-prodej-bytu-steinerova-praha" }]
}
```

***

### 📤 Output

Each listing is one row with **65+ fields**. The most useful ones:

| Field | Type | Description |
|-------|------|-------------|
| thumbnail | string | Main photo |
| propertyTitle | string | Listing title as shown on the site |
| price | number | Asking price, or monthly rent without charges |
| currency | string | CZK for Czech listings (EUR for the German partner listings) |
| monthlyCharges | number | Service charges plus utilities per month |
| deposit | number | Deposit asked by the owner |
| areaM2 | number | Floor area in m² |
| pricePerM2 | number | Price divided by floor area |
| disposition | string | Czech layout: 1+kk, 2+1, studio… |
| cityDistrict | string | City and district, e.g. "Praha - Nusle" |
| latitude / longitude | number | GPS position |
| furnished | string | furnished, partly furnished or unfurnished |
| energyClass | string | Energy label A to G |
| daysOnMarket | number | Days since the listing went up |
| postedDirectly | boolean | true when the owner posted it on bezrealitky.cz |
| partnerSource | string | Which partner feed the listing came from, if any |
| propertyText | string | Full description |
| imageUrls | array | Every photo |
| listingUrl | string | Link to the listing |

**Example row (trimmed):**

```json
{
  "listingId": "1064210",
  "listingUrl": "https://www.bezrealitky.cz/nemovitosti-byty-domy/1064210-nabidka-pronajem-bytu-lomnickeho-praha",
  "propertyTitle": "Pronájem bytu 2+kk 70 m²",
  "dealType": "rent",
  "propertyType": "flat",
  "disposition": "2+kk",
  "price": 16000,
  "currency": "CZK",
  "originalPrice": 18000,
  "isDiscounted": true,
  "monthlyCharges": 8000,
  "serviceCharges": 2000,
  "utilityCharges": 6000,
  "deposit": 24000,
  "areaM2": 70,
  "pricePerM2": 229,
  "floor": 5,
  "buildingType": "brick",
  "furnished": "unfurnished",
  "energyClass": "G",
  "cityDistrict": "Praha - Nusle",
  "street": "Lomnického",
  "zip": "140 00",
  "latitude": 50.0568146,
  "longitude": 14.4327211,
  "availableFrom": "2026-09-16",
  "daysOnMarket": 20,
  "viewCount": 1159,
  "imageCount": 5,
  "postedDirectly": true,
  "status": "success"
}
```

A search that matches nothing returns no rows and costs nothing beyond the run start. A listing URL we cannot read gets an error row with the reason, and error rows are never charged.

***

### 💼 Use Cases & Examples

#### 1. Prague rental market tracking

**Relocation agencies and analysts see the true monthly cost of a Prague flat.**

**Input:** For rent, Flats, Praha, sorted by newest.
**Output:** Rent, charges, deposit, m² and district for every listing.
**Use:** Rent per m² by district, updated weekly on a schedule.

#### 2. Owner-direct deal sourcing

**Buyers and small investors see owner sales the day they go up.**

**Input:** For sale, Flats, Brno, Posted directly on Bezrealitky only, Max listings 50, run daily.
**Output:** New owner listings with price per m², condition, ownership and photos.
**Use:** Contact owners before the listing collects a hundred messages.

#### 3. Tenant shortlists for relocation desks

**HR and relocation teams build shortlists without opening a single listing page.**

**Input:** For rent, Flats, Praha, 2+kk and 3+kk, Furnished, max 35,000 CZK.
**Output:** Furnished flats with availability date, deposit, floor and lift.
**Use:** A shortlist sent to the incoming employee the same afternoon.

#### 4. Price-cut and time-on-market signals

**Negotiators spot owners who are ready to move on price.**

**Input:** For sale, Flats, Praha, sorted by biggest price cut.
**Output:** Original price, current price, days listed and views.
**Use:** A call list of owners who have already cut once.

#### 5. Proptech and research datasets

**Researchers get a clean, geocoded owner-market sample.**

**Input:** All of Czechia, For rent and For sale in two runs.
**Output:** Rows with RÚIAN address codes and GPS, ready to join with public data.
**Use:** Compare owner asking prices against agency portals such as Sreality.

#### 6. Holiday cottage inventory

**Travel and rental businesses map cottages for rent by region.**

**Input:** For rent, Cottages, Liberecký kraj.
**Output:** Cottages with GPS, description and photos.
**Use:** A regional supply map for the holiday season.

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/bezrealitky-property-scraper').call({
    operation: 'search',
    dealType: 'pronajem',
    propertyType: 'byt',
    locations: ['praha'],
    maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/bezrealitky-property-scraper').call(
    run_input={'operation': 'search', 'dealType': 'prodej', 'propertyType': 'byt', 'locations': ['brno'], 'maxResults': 100}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item['propertyTitle'], item.get('price'), item.get('cityDistrict'))
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~bezrealitky-property-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"operation": "search", "dealType": "pronajem", "propertyType": "byt", "locations": ["praha"], "maxResults": 50}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: a daily schedule
2. **HTTP Request**: run the actor with Newest first and a small Max listings
3. **Process**: keep rows you have not seen, by `listingId`
4. **Action**: post them to Slack, a sheet or your CRM

***

### 📊 Performance & Pricing

#### FREE plan (try it now)

- **25 listings** per run with every field included
- 10 free runs a day on this actor (30 in total), reset at midnight UTC
- No credit card required

#### PAID plans (production)

- **Unlimited** listings per run
- Discounts on higher Apify plans
- Pay per listing returned; errors and empty searches are never charged

A run of 100 listings finishes in well under a minute, because one request returns 100 full listings.

🔗 [View current pricing](https://apify.com/sian.agency/bezrealitky-property-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: Do I need an account or an API key?**
A: No. Pick rent or sale, a property type and a place, then press Start.

**Q: Is this the same data as Sreality?**
A: Largely not. When we compared the same Prague, Brno and Ostrava searches on both sites, about four in five owner-posted rentals and roughly half of the owner-posted sales on bezrealitky.cz were not on Sreality. Our [Sreality Scraper](https://apify.com/sian.agency/sreality-property-scraper?fpr=sian) returns the same kind of row if you need both.

**Q: Why do some rows have no price?**
A: Some listings, mostly holiday cottages, are marked price on request, and a few carry a symbolic price under 100 CZK. Both come back with an empty price and priceOnRequest set to true, rather than a misleading number.

**Q: Why are some listings in Germany?**
A: The site also carries German owner listings from a partner. They appear only when you pick Germany, or paste a results page that names no place. Tick Posted directly on Bezrealitky only to leave out every partner feed.

**Q: Can I search a single Prague quarter such as Chodov?**
A: Yes. Open that quarter on bezrealitky.cz and paste the address of its results page into Search page URLs. Every row also carries the city district, so a whole-Prague run can be split afterwards.

**Q: Does it return the owner's phone number?**
A: No. Owners are contacted through bezrealitky.cz's own messaging, and their contact details are not public.

**Q: What does Property Detail cost compared with a search?**
A: A search row is already the full record. Property Detail is only for listing URLs you already have, and bills one Property Detail event per listing.

**Q: What export formats are available?**
A: JSON, CSV, Excel, XML and HTML, straight from the Apify dataset.

***

### 🐛 Troubleshooting

**The run returned no listings**

- The filters may be too narrow for that place: widen the price or area band, or remove a layout.
- Small towns have few owner listings; try the region instead of the city.

**A place I need is not in the list**

- Open it on bezrealitky.cz, copy the address of the results page and paste it into Search page URLs. Price, area, layout, building and furnished filters set on that page come along.

**A listing URL came back as an error row**

- The listing has been rented, sold or withdrawn. Error rows are not charged.

**I got fewer listings than I expected**

- Max listings applies to the whole run, across every place. Raise it, or run one place per run.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

Bezrealitky is a trademark of its owner. This actor is not affiliated with, endorsed by, or sponsored by Bezrealitky.

***

### 🤝 Support

**Join our active support community**

- For issues or questions, open an issue on the [Issues tab](https://apify.com/sian.agency/bezrealitky-property-scraper/issues)
- Check [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Changelog

This Actor's version history is a separate document: https://apify.com/sian.agency/bezrealitky-property-scraper/changelog.md

# Actor input Schema

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

Pick one per run. Property Search returns full listings for a deal type, property type and place, with every filter the site offers. Property Detail takes bezrealitky.cz listing URLs and returns the same full record for each.

## `dealType` (type: `string`):

About two thirds of the Czech flats for rent here are posted by their owners. Rent comes back as the monthly rent, with service charges, utilities and deposit in their own columns.

## `propertyType` (type: `string`):

Which section of the site to list. Flats carry the richest data. Cottage rentals are mostly holiday lets from a partner feed and often have no price.

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

One or more places. Each runs its own search. Pick All of Czechia for the whole country. For any other town or a Prague quarter, open it on bezrealitky.cz and paste the address into Search page URLs.

## `dispositions` (type: `array`):

Czech layouts to keep: 1+kk is one room with a kitchenette, 2+1 two rooms plus a separate kitchen. Leave it empty for every layout. Only flats and houses carry a layout.

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

Lowest price in Czech koruna. For rentals this is the monthly rent without charges. Leave it empty for no floor.

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

Highest price in Czech koruna. For rentals this is the monthly rent without charges. Leave it empty for no ceiling.

## `minArea` (type: `integer`):

Smallest floor area in square metres. Leave it empty for no minimum.

## `maxArea` (type: `integer`):

Largest floor area in square metres. Leave it empty for no maximum.

## `ownership` (type: `string`):

Personal ownership versus a cooperative share decides whether a Czech flat can be mortgaged. Mostly relevant for sales.

## `buildingTypes` (type: `array`):

Construction types to keep: panel, brick and so on. Leave it empty for all. Panel versus brick is the filter Czech buyers apply first.

## `furnished` (type: `string`):

Keep only furnished, partly furnished or unfurnished listings. Mostly relevant for rentals.

## `postedDirectlyOnly` (type: `boolean`):

Leave out listings the site takes in from partner feeds: holiday cottages, developer projects, rental companies and German owner listings. What is left is what people posted on bezrealitky.cz themselves.

## `sort` (type: `string`):

The order the site returns listings in. Combine Newest first with a small Max listings on a schedule to pick up new listings as they appear.

## `maxResults` (type: `integer`):

Stop after this many listings across every place in the run; the run stops exactly at this number. Free accounts stop at 25. Property Detail ignores it and returns every listing you pasted.

## `searchUrls` (type: `array`):

Paste bezrealitky.cz results pages instead of picking a place, for example https://www.bezrealitky.cz/vypis/nabidka-pronajem/byt/praha-chodov. Rent or sale, property type, place and the page's own price, area, layout, building and furnished filters are read from the address; a filter the actor cannot apply is reported instead of dropped.

## `listingUrls` (type: `array`):

Used by Property Detail: bezrealitky.cz listing addresses such as https://www.bezrealitky.cz/nemovitosti-byty-domy/1071664-nabidka-prodej-bytu-steinerova-praha. One per line.

## Actor input object example

```json
{
  "operation": "search",
  "dealType": "pronajem",
  "propertyType": "byt",
  "locations": [
    "praha"
  ],
  "dispositions": [],
  "ownership": "any",
  "buildingTypes": [],
  "furnished": "any",
  "postedDirectlyOnly": false,
  "sort": "newest",
  "maxResults": 100
}
```

# Actor output Schema

## `bezrealitkyListings` (type: `string`):

Every listing this run returned.

## `scrapingSummary` (type: `string`):

HTML summary showing successful and failed results with key metrics

# 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 = {
    "operation": "search",
    "dealType": "pronajem",
    "propertyType": "byt",
    "locations": [
        "praha"
    ],
    "dispositions": [],
    "ownership": "any",
    "buildingTypes": [],
    "furnished": "any",
    "postedDirectlyOnly": false,
    "sort": "newest",
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/bezrealitky-property-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 = {
    "operation": "search",
    "dealType": "pronajem",
    "propertyType": "byt",
    "locations": ["praha"],
    "dispositions": [],
    "ownership": "any",
    "buildingTypes": [],
    "furnished": "any",
    "postedDirectlyOnly": False,
    "sort": "newest",
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/bezrealitky-property-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 '{
  "operation": "search",
  "dealType": "pronajem",
  "propertyType": "byt",
  "locations": [
    "praha"
  ],
  "dispositions": [],
  "ownership": "any",
  "buildingTypes": [],
  "furnished": "any",
  "postedDirectlyOnly": false,
  "sort": "newest",
  "maxResults": 100
}' |
apify call sian.agency/bezrealitky-property-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sian.agency/bezrealitky-property-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/25DNVklR3Xiz2FOxb/builds/W4y8qVkgioqRIBZVb/openapi.json
