# Cian Scraper — Russia Property Data & API (`sian.agency/cian-property-scraper`) Actor

Cian scraper & real estate data API for Russia's #1 property portal. Sale & rent listings nationwide — flats, rooms, houses, commercial & new builds: price, price/m², rooms, area, floor, metro, GPS, building, seller — clean JSON/CSV.

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

## Pricing

from $1.70 / 1,000 overview listings

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Cian Scraper — Russia Property Data & API 🏠

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Idealista](https://img.shields.io/badge/Store-Idealista-E60023)](https://apify.com/sian.agency/smart-idealista-scraper?fpr=sian) [![Zoopla](https://img.shields.io/badge/Store-Zoopla-7B1FA2)](https://apify.com/sian.agency/zoopla-property-scraper?fpr=sian) [![Immobiliare](https://img.shields.io/badge/Store-Immobiliare-1A8917)](https://apify.com/sian.agency/immobiliare-property-scraper?fpr=sian)

#### 🇷🇺 Turn Cian — Russia's #1 real-estate portal (~31M visits/month) — into clean, structured property data.

##### For investors, analysts, PropTech teams and lead-gen pros who need Moscow, St Petersburg & nationwide listings as JSON, CSV or Excel — no account, no API key.

***

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

The **Cian Scraper** turns sale and rent listings from the Russian property portal cian.ru 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:** price in roubles and price per square metre, rooms, and the total, living and kitchen area. Each listing also gives the floor and the building's floor count, the nearest metro station with walk time, coordinates, building material and year, and the new-build complex and developer where there is one. Seller type and phone number come through as well.

**Use something else when:** you want a different Russian portal, or a different country. Use [Avito Real Estate Scraper](https://apify.com/sian.agency/avito-property-scraper?fpr=sian) for Avito's Russian classifieds listings, including rooms, houses, commercial space and land. Use [Yandex Realty Scraper](https://apify.com/sian.agency/yandex-realty-scraper?fpr=sian) for Yandex Realty's sale and rent listings for Russia. This actor reads cian.ru only, so listings that sit on other Russian portals will not show up here.

### 🤖 Use with AI agents

Already connected to the [Apify MCP server](https://mcp.apify.com)? Just ask for this Actor by name: sian.agency/cian-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 Russian property data from Cian using the Apify Actor `sian.agency/cian-property-scraper`.

Use it when I need: price in roubles and price per square metre, rooms, and the total, living and kitchen area. Each listing also gives the floor and the building's floor count, the nearest metro station with walk time, coordinates, building material and year, and the new-build complex and developer where there is one. Seller type and phone number come through as well.

Don't use it when: you want a different Russian portal, or a different country — use avito-property-scraper or yandex-realty-scraper instead.

How to call it: pick a `searchMode` — `byApiLocation` (fastest: a free-text `location` such as a city, district or metro station, or a `latitude`/`longitude` pair with a `radius` in km), `bySearchUrl` (paste cian.ru search URLs into `searchUrls`, or build a search from `deal`, `offerType` and `region`), or `byListingUrl` (specific listing URLs, valid only with `scrapeMode: "detail"`). `scrapeMode` is `overview` (core fields off the search results) or `detail` (full listing page). Filters `rooms`, `minPrice`/`maxPrice`, `minArea`/`maxArea`, `newBuild` and `sort` apply across modes.

Start with this input:
{
  "searchMode": "byApiLocation",
  "location": "Москва",
  "deal": "sale",
  "offerType": "flat",
  "maxResults": 50
}

Ask me which city, district or metro station, and whether you want sale or rent, then run the Actor and summarise the results as a table.
```

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

- *Pull 1- and 2-room flats for sale in Хамовники and rank them by price per square metre.*
- *Compare asking rents near a Moscow metro station against sale prices in the same district.*
- *Track new-build listings from one developer in St Petersburg week over week.*

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

### 📋 Overview

**Cian (Циан) is the largest real-estate marketplace in Russia** — millions of for-sale and for-rent listings across flats, rooms, houses, land, commercial space and new-build complexes (ЖК). This scraper pulls them into a clean dataset you can analyze, enrich or feed straight into your own pipeline.

**What you get:**

- ✅ **Nationwide coverage**: Moscow, St Petersburg and any Cian region — by ID, filters, or pasted search URL.
- ⚡ **High throughput**: a full page of listings comes back per request, so a single run covers thousands of properties.
- 🌆 **Search by place name or map pin**: the fast **By API location** mode takes a free-text city, district or metro station — "Москва", "Хамовники", "м. Арбатская" — or **latitude/longitude/radius**, with **no region ID to look up**.
- 🎯 **Rich, structured fields**: price, price/m², rooms, area, floor, metro & walk time, GPS, building material/year, complex & developer, seller type — all normalized.
- 💸 **Transparent pay-per-result**: 25 listings free per run, then pay only for the listings you keep. Nothing is charged until your input is validated.
- 💎 **Two depths**: fast & cheap **Overview** (every core field from the search results) or full **Detail** (complete description, all photos, full building & seller data per listing).
- 🛏️ **Native filters & sort**: deal type, property type, rooms, price & area ranges, new-builds only, and Cian's own sort orders — exactly the levers you'd use on the site.

***

### ✨ Features

- 🧭 **Overview mode**: a full page of listings per request — price, ₽/m², rooms, area, floor, metro, GPS, building and seller, straight from the search results.
- 🔍 **Detail mode**: the full per-listing record — complete description, the whole photo gallery and the richest building & seller fields.
- 🌆 **By API location**: type a city, district, metro station or street and skip the region ID entirely. Or search around a map pin with latitude, longitude and a radius in km.
- 🔗 **By search URL**: build the search on Cian, paste the URL, keep every on-page filter.
- 🆔 **By listing URL**: hand it a list of specific listings and get the full record for each.
- 🎚️ **Native filters & sort**: deal type, property type, rooms, price range, area range, new-builds only, and Cian's own sort orders.
- 📊 **Price per m² on every row**, worked out from price and total area so you don't have to.
- 🚇 **Metro station and walk time** on every listing, for territory and commute analysis.
- 📄 **Run report on every run**: what you extracted, what failed and why, and an itemized charges statement.
- 📤 **Clean exports**: JSON, CSV, Excel, or the full Apify REST API.

***

### 🎬 Quick Start

Choose a scrape depth, choose how to search, set your filters, and run. Results stream into the Apify dataset as clean JSON, CSV or Excel.

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~cian-property-scraper/runs?token=[YOUR_TOKEN]" \
-H 'Content-Type: application/json' \
-d '{"scrapeMode":"overview","searchMode":"byApiLocation","location":"Москва","deal":"sale","offerType":"flat","maxResults":50}'
```

#### Paste a search URL

Build any search on Cian (set filters, sort, region), copy the URL from the address bar, and drop it into **Search URLs** — every on-page filter is preserved.

```
https://www.cian.ru/cat.php?deal_type=sale&engine_version=2&offer_type=flat&region=1&room2=1
```

#### ⚡ Fast search by location (no region ID)

Prefer a place name over a region ID? Set **Search by** to **By API location**, then type a **Location** — a city, district, metro station or street such as "Москва", "Санкт-Петербург" or "Хамовники" — or set **Latitude / Longitude / Radius** for a map-pin search. Your Deal type, Property type, Rooms, Price/Area range and Sort filters all still apply. This path is fast and light: it runs comfortably at **512 MB**, while the actor default stays 2 GB for the URL and region modes.

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Pick your scrape depth

**Overview** for a fast price and spec scan across a whole market, or **Detail** for the complete per-listing record.

#### Step 2: Choose how to search

**By API location** (type a city, district or metro station), **By search URL** (paste a Cian search link — filters honored), or **By listing URL** (Detail mode — drop in specific listings).

#### Step 3: Set filters and run

Deal type, property type, rooms, price range, area range, new-builds only, sort order, Max results — then hit **Start**.

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

- A clean dataset of Russian property listings (JSON / CSV / Excel)
- Price, ₽/m², rooms, area, floor, metro, GPS, building and seller on every row
- A repeatable, no-code real-estate data feed you can schedule

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|---|---|---|---|
| `scrapeMode` | string | No | `overview` (fast, all core fields) or `detail` (full per-listing fields). |
| `searchMode` | string | No | `bySearchUrl`, `byListingUrl` (detail only), or `byApiLocation` — fast search by place name or coordinates. |
| `deal` | string | No | `sale` or `rent`. |
| `offerType` | string | No | flat · room · house · townhouse · land · commercial. |
| `region` | integer | No | Cian region ID (1 = Moscow, 2 = St Petersburg, …). |
| `newBuild` | boolean | No | Restrict to new-build (ЖК) offers. |
| `rooms` | array | No | One or more room counts — `1`–`5`, or `6` for 6+ rooms. |
| `searchUrls` | array | No | Paste Cian search-results URLs — all filters preserved. |
| `listingUrls` | array | No | Detail mode: specific listing URLs to fetch. |
| `location` | string | No | API mode: free-text place — city, district, metro or street. |
| `latitude` / `longitude` / `radius` | number | No | API mode: map-pin search center and radius (km, default 5). |
| `minPrice` / `maxPrice` | integer | No | Price range in roubles. |
| `minArea` / `maxArea` | number | No | Area range in m². |
| `sort` | string | No | Price ↑ · Price/m² · Newest · Area · Walk time to metro. |
| `maxResults` | integer | No | Run cap. Free tier: 25/run. Paid: unlimited. |

**Example — fast search by place name:**

```json
{
  "scrapeMode": "overview",
  "searchMode": "byApiLocation",
  "location": "Москва",
  "deal": "sale",
  "offerType": "flat",
  "maxResults": 50
}
```

**Example — full records for specific listings:**

```json
{
  "scrapeMode": "detail",
  "searchMode": "byListingUrl",
  "listingUrls": [
    "https://www.cian.ru/sale/flat/317927888/"
  ]
}
```

***

### 📤 Output

Each listing is one clean record. Sample fields:

| Field | Example |
|---|---|
| `id` | `317927888` |
| `url` | `https://www.cian.ru/sale/flat/317927888/` |
| `deal_type` / `offer_type` | `sale` / `flat` |
| `price` / `currency` / `price_rub` | `44426100` / `rur` / `44426100` |
| `price_per_sqm` | `955400` |
| `rooms` / `area_total` / `floor` / `floors_total` | `1` / `46.5` / `12` / `18` |
| `is_new_building` / `building_material` / `building_year` | `true` / `monolith` / `2025` |
| `jk_name` / `developer_name` | `ЖК SHIFT` / … |
| `city` / `district` / `address` | `Москва` / … |
| `lat` / `lng` | `55.70` / `37.58` |
| `metro` / `metro_minutes` / `metro_transport` | `Ленинский проспект` / `10` / `walk` |
| `seller_type` / `seller_name` / `phone` | `developer` / … / `+7…` |
| `photos` / `photo_count` / `description` | `[ … ]` / `12` / `…` |

**Example row (trimmed):**

```json
{
  "id": 317927888,
  "url": "https://www.cian.ru/sale/flat/317927888/",
  "deal_type": "sale",
  "offer_type": "flat",
  "price_rub": 44426100,
  "price_per_sqm": 955400,
  "rooms": 1,
  "area_total": 46.5,
  "floor": 12,
  "floors_total": 18,
  "is_new_building": true,
  "jk_name": "ЖК SHIFT",
  "city": "Москва",
  "lat": 55.70,
  "lng": 37.58,
  "metro": "Ленинский проспект",
  "metro_minutes": 10,
  "seller_type": "developer"
}
```

Export as **JSON, CSV or Excel** from the dataset, or pull via the Apify API.

***

### 💼 Use Cases & Examples

#### 1. Investor and buyer lead-gen

**Pull fresh listings by region, price band and rooms, ranked and ready to call.**

**Input:** Overview mode, a region or place name, a price range and the room counts you buy.
**Output:** A ranked list with price, ₽/m², area, floor, metro and seller contact.
**Use:** A daily shortlist your acquisitions team can work through.

#### 2. Price-per-m² market analysis

**Track ₽/m² across districts, metro lines and new-build complexes.**

**Input:** The same search run for several districts or metro stations.
**Output:** `price_per_sqm` on every row, plus district, city, metro and GPS.
**Use:** District-level pricing benchmarks and heat maps.

#### 3. Realtor and developer intelligence

**Monitor who is listing what, by seller type.**

**Input:** Overview mode across a market you compete in.
**Output:** `seller_type`, `seller_name`, `is_agent` and `phone` on every listing.
**Use:** Market-share tracking by agency, developer or private owner.

#### 4. New-build (ЖК) tracking

**Follow developer inventory, completion deadlines and complex-level pricing.**

**Input:** New-builds only, filtered to a city or region.
**Output:** `jk_name`, `developer_name`, `building_deadline` and pricing per complex.
**Use:** A weekly view of what one developer is releasing and at what price.

#### 5. Rental-yield research

**Pair sale and rent pulls in the same area to model gross yield.**

**Input:** Two runs over the same location, one with `deal: "sale"` and one with `deal: "rent"`.
**Output:** Comparable rows with price, area and ₽/m² for both sides.
**Use:** Gross-yield estimates by district, building age or metro distance.

#### 6. Portfolio and competitor monitoring

**Watch a saved search and diff it run over run.**

**Input:** A scheduled run on a pasted Cian search URL.
**Output:** The same dataset shape every time, ready to compare.
**Use:** New listings, price cuts and withdrawals, detected automatically.

#### 7. Valuation and CMA data feeds

**Feed a valuation model with comparables that carry real attributes.**

**Input:** Detail mode on a set of comparable listings.
**Output:** Building material, build year, decoration, full area breakdown and photos.
**Use:** Defensible comparables for AVM and CMA work.

***

### 🔗 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/cian-property-scraper').call({
  scrapeMode: 'overview', searchMode: 'byApiLocation', location: 'Москва', deal: 'sale', offerType: 'flat', maxResults: 50,
});

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/cian-property-scraper').call(
    run_input={'scrapeMode': 'overview', 'searchMode': 'byApiLocation', 'location': 'Москва', 'deal': 'sale', 'offerType': 'flat', 'maxResults': 50}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~cian-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"scrapeMode":"overview","searchMode":"byApiLocation","location":"Москва","deal":"sale","offerType":"flat","maxResults":50}'
```

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

1. **Trigger**: Schedule (e.g. daily) or webhook
2. **HTTP Request**: Call the actor API
3. **Process**: Handle the JSON results
4. **Action**: Save to a sheet or database, notify, or transform

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **25 listings** per run — full feature access, same fields, same quality
- No credit card required
- Perfect for testing and small projects

#### PAID Tier (Production Ready)

- **Unlimited** listings per run
- Pay-per-result: you are charged per listing extracted, never for failed fetches
- Overview and Detail are priced separately, so you only pay for the depth you use

💰 **Overview from $2.50 per 1,000 listings** on paid plans, dropping further on higher plans — Detail priced separately for the full per-listing record.

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

***

### ❓ Frequently Asked Questions

**Q: How many listings can I extract?**
A: FREE tier: 25 per run. PAID tier: unlimited.

**Q: Do I need a Cian account or API key?**
A: No. Just configure the input and run.

**Q: Which regions are supported?**
A: Any Cian region — pick the region ID off a Cian search URL (1 = Moscow, 2 = St Petersburg, and so on). Don't want to hunt for an ID? Use **Search by → By API location** and just type the place name, or drop in latitude and longitude.

**Q: Overview vs Detail — which should I use?**
A: Start with **Overview**: it already carries price, rooms, area, floor, metro, GPS, building and seller fields for most use cases. Switch to **Detail** only when you need the complete description, the full photo gallery and the richest per-listing data.

**Q: How is pricing calculated?**
A: Pay-per-result: you are charged per listing extracted, with a free tier to try it out. Your input is validated **before** any charge.

**Q: Can I filter by price, rooms or new-builds?**
A: Yes — all native Cian filters are exposed, or paste a search URL with the filters already applied.

**Q: What output formats are available?**
A: JSON, CSV, Excel — export directly from the Apify dataset, or pull them over the API.

**Q: Does it work for both sale and rent?**
A: Yes — set **Deal type** to sale or rent. Run both over the same area to model rental yield.

***

### 🐛 Troubleshooting

**No results returned**

- Check the place-name spelling in **By API location** ("Москва", not "Moscow"), or paste a working Cian search URL instead.
- Loosen your filters — a tight price or area range combined with a small district can legitimately return zero listings.

**Fewer results than expected**

- The FREE tier is capped at 25 listings per run. Upgrade for unlimited, or raise **Max results**.
- Cian caps how deep a single search paginates. Slice a big market into several narrower searches (by district, price band or room count) and run them separately.

**Listing URLs seem to be ignored**

- **By listing URL** only works with **Scrape mode: detail**. Set both, and put the URLs in **Listing URLs**, not **Search URLs**.

**Some listings failed**

- Open the run's **Processing Report**: each failed item is listed with the reason and a ready-made retry input you can paste straight back into the JSON input tab. Failed fetches are never charged.

***

### ⚖️ 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/).

*Independent tool, not affiliated with, endorsed by, or sponsored by Cian (Циан). All trademarks belong to their respective owners. Use responsibly and in line with applicable terms and laws.*

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

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

***

### 🔗 More by SIÁN Agency

- [Avito Real Estate Scraper](https://apify.com/sian.agency/avito-property-scraper?fpr=sian) — Russia's largest classifieds marketplace
- [Yandex Realty Scraper](https://apify.com/sian.agency/yandex-realty-scraper?fpr=sian) — the other national Russian portal
- [Smart Idealista Scraper](https://apify.com/sian.agency/smart-idealista-scraper?fpr=sian) — Spain/Italy/Portugal property
- [Zoopla Scraper](https://apify.com/sian.agency/zoopla-property-scraper?fpr=sian) — UK sale & rent
- [Immobiliare.it Scraper](https://apify.com/sian.agency/immobiliare-property-scraper?fpr=sian) — Italy's #1 portal
- [Browse all SIÁN actors →](https://apify.com/sian.agency?fpr=sian)

⭐ **Love this actor?** Leave a [5-star review](https://apify.com/sian.agency/cian-property-scraper/reviews) — it helps us build more features for you.

***

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

# Actor input Schema

## `scrapeMode` (type: `string`):

⚡ **OVERVIEW** — fast, cheap, ungated. Pulls every core field straight from Cian's search results (price, price/m², rooms, area, floor, metro, GPS, building, seller).

🔍 **DETAIL** — full fields per listing, loaded from the listing page. Slower and priced higher per result.

**TIP:** Start with Overview — upgrade to Detail only when you need the extra fields.

## `searchMode` (type: `string`):

🧭 How to tell the scraper what to fetch. **Usually leave this blank — it is auto-inferred** from which inputs you provide:

- **By search URL** — paste one or more Cian search-results URLs (or build a search with the filters below). The default for Overview.
- **By listing URL** — Detail mode only: paste specific listing URLs to fetch those exact properties.
- **By API location** ⚡ — the fast, browserless path: type a free-text **Location** (e.g. `Москва`, a district, a metro station) *or* set **Latitude/Longitude/Radius** below. Honors the Deal type, Property type, Rooms, Price/Area range and Sort filters. No region ID needed.

**NOTE:** *By listing URL* is valid only when Scrape mode = Detail.

## `deal` (type: `string`):

🤝 Whether to scrape properties **for sale** or **for rent**.

## `offerType` (type: `string`):

🏠 Which kind of property to search.

## `region` (type: `integer`):

🌍 Cian region ID to search. Common: **1** = Moscow · **2** = St Petersburg. Find any region's ID by opening a search on Cian and reading the `region=` value off the URL.

## `newBuild` (type: `boolean`):

🏗️ Restrict to new-build (ЖК) offers only. Leave off to include secondary-market listings.

## `rooms` (type: `array`):

🛏️ Optional. Room counts to filter by — pick any combination, leave empty for any. **6+** covers six rooms and above.

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

🔗 Cian search-results URLs to scrape. Used when **Search by = By search URL**.

**TIP:** Build any search on Cian (set your filters, sort order, region), then copy the URL from the address bar — every on-page filter is honored.

**BULK EDIT:** Click "Bulk edit" to paste many URLs, one per line.

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

🆔 **Detail mode only.** Specific Cian listing URLs to fetch as full property pages.

**BULK EDIT:** Click "Bulk edit" to paste many URLs, one per line.

## `location` (type: `string`):

🏙️ Free-text place to search — a city, district, metro station or street, e.g. `Москва`, `Санкт-Петербург`, `Хамовники`, `м. Арбатская`. **Used when Search by = By API location.** No region ID required — the fast API resolves the place for you. Combine with the Deal type, Property type, Rooms, Price/Area range and Sort filters above.

## `latitude` (type: `number`):

📍 Center latitude for a **coordinate** search, e.g. `55.75`. Provide together with Longitude (and optional Radius). Ignored when a Location is set.

## `longitude` (type: `number`):

📍 Center longitude for a **coordinate** search, e.g. `37.61`. Provide together with Latitude.

## `radius` (type: `number`):

📏 Search radius in kilometres around the Latitude/Longitude center. Defaults to `5`.

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

🔢 Maximum listings to extract this run.

- **FREE tier:** capped at 25 listings per run.
- **PAID tier:** unlimited — set as high as you need.

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

↕️ How Cian orders the search results before they are scraped.

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

💸 Optional. Minimum price filter in roubles.

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

💰 Optional. Maximum price filter in roubles.

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

📐 Optional. Minimum total area in square metres.

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

📐 Optional. Maximum total area in square metres.

## Actor input object example

```json
{
  "scrapeMode": "overview",
  "searchMode": "byApiLocation",
  "deal": "sale",
  "offerType": "flat",
  "region": 1,
  "newBuild": false,
  "searchUrls": [
    "https://www.cian.ru/cat.php?deal_type=sale&engine_version=2&offer_type=flat&region=1"
  ],
  "listingUrls": [
    "https://www.cian.ru/sale/flat/317927888/"
  ],
  "location": "Москва",
  "radius": 5,
  "maxResults": 100
}
```

# Actor output Schema

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

Scraped Cian listings (JSON/CSV/Excel).

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

Run summary: listings extracted, what was searched, failed items with fixes, and an itemized charges statement.

# 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 = {
    "searchMode": "byApiLocation",
    "location": "Москва"
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/cian-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 = {
    "searchMode": "byApiLocation",
    "location": "Москва",
}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/cian-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 '{
  "searchMode": "byApiLocation",
  "location": "Москва"
}' |
apify call sian.agency/cian-property-scraper --silent --output-dataset

```

## MCP server setup

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