Cian.ru Property Scraper
Pricing
from $0.99 / 1,000 listings
Cian.ru Property Scraper
Scrape Cian.ru real estate listings by city, filters, or search URL. Extract price, rooms, area, floor, building, address, metro, coordinates, photos, description and contacts. JSON, CSV, Excel.
Pricing
from $0.99 / 1,000 listings
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Cian.ru Property Scraper
Scrape real estate listings from Cian.ru — Russia's largest property portal — by city, filters, or a pasted search URL. Extract price, rooms, area, floor, building details, full address, metro, coordinates, photos, description and contacts.
| Search any Russian city or region for flats, rooms, houses, land, commercial or new buildings — filter by deal type, price, rooms and area, or paste a Cian URL and every filter is read straight from it. Export JSON, CSV, Excel. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Apify Actor: parsebird/cian-ru-property-scraper — scrapes Cian.ru (cian.ru) property listings through Cian's public search API. Call: ApifyClient("TOKEN").actor("parsebird/cian-ru-property-scraper").call(run_input={"propertyType":"flat","dealType":"sale","locations":["Москва"],"minPrice":5000000,"maxPrice":20000000,"rooms":["1","2"],"sort":"newest","scrapeDetails":true,"maxResults":500,"proxyConfiguration":{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"],"apifyProxyCountry":"RU"}}). Inputs: startUrls[] (Cian search or listing URLs — override the filters), dealType ("sale"|"rent"), propertyType ("flat"|"room"|"house"|"land"|"commercial"|"newbuilding"), locations[] (Russian city/region names in Cyrillic, searched separately), minPrice/maxPrice (RUB), rooms[] ("studio","1".."4","5+"), minArea/maxArea (m²), sort ("newest"|"price_asc"|"price_desc"|"price_per_meter"), scrapeDetails (bool — full row vs lean core row), maxResults (int, you are only charged for returned results). Output per listing: listingId, url, dealType, propertyType, title, price, currency, priceText, pricePerMeter, rooms, totalArea, livingArea, kitchenArea, floor, totalFloors, buildingYear, buildingMaterial, address, region, city, district, metro, metroDistance, latitude, longitude, description, coverImage, images[], imageCount, agentName, agencyName, sellerType, agentPhone, publishedAt, scrapedAt. Any field Cian does not publish comes back null. API docs: https://docs.apify.com/api/v2 Token: https://console.apify.com/settings/integrations
What does Cian.ru Property Scraper do?
Give it a city and filters, or a Cian search URL. The Cian.ru Property Scraper queries Cian's own search backend and returns one structured row per listing:
- 🏷️ Price —
price(RUB number),priceText("14 900 000 ₽"),pricePerMeter - 📐 Size & rooms —
rooms,totalArea,livingArea,kitchenArea - 🏢 Building —
floor,totalFloors,buildingYear,buildingMaterial(panel, brick, monolith, …) - 📍 Location — full
address,region,city,district,metro,metroDistance,latitude,longitude - 🖼️ Media & text —
coverImage,images[],imageCount, fulldescription - 👤 Contact —
agentName,agencyName,sellerType(agency / owner / developer),agentPhone,publishedAt
With scrapeDetails off you get a lean core row (id, URL, deal type, property type, title, price, price text, rooms, total area, address) for fast, lightweight exports. Any field Cian does not publish for a given listing comes back null — never a fabricated zero.
Why scrape Cian.ru?
- Market analysis — price, ₽/m² and room-mix trends for any Russian city or district
- Comps and valuation — pull recent listings around a subject property with coordinates
- Lead generation — active listings with agent, agency and phone
- Monitoring — schedule a search and capture new inventory sorted by
newest - Data pipelines — clean JSON of listings, photos and geodata for your database or map
Run it on a schedule, pull results through the Apify API, connect it to Make, Zapier, Google Sheets or Slack, and export to JSON, CSV, Excel or HTML.
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
startUrls | array | Moscow flats-for-sale URL | Cian search-result or listing URLs. When set, the filters below are ignored — every filter is read from each URL. |
dealType | string | sale | sale or rent. |
propertyType | string | flat | flat, room, house, land, commercial, newbuilding. |
locations | array | [] | Russian city / region names in Cyrillic (Москва, Санкт-Петербург, Новосибирск, Московская область). Each is searched separately. |
minPrice / maxPrice | integer | — | Price bounds in Russian rubles. |
rooms | array | [] | studio, 1, 2, 3, 4, 5+ (applies to flats and new buildings). |
minArea / maxArea | integer | — | Total area bounds in m². |
sort | string | newest | newest, price_asc, price_desc, price_per_meter. |
scrapeDetails | boolean | false | Full detail row vs lean core row. |
maxResults | integer | 100 | Max listings across all searches. You are only charged for returned results. |
Examples
Search one city:
{ "propertyType": "flat", "dealType": "sale", "locations": ["Москва"], "maxResults": 100 }
Filtered rental search:
{"propertyType": "flat", "dealType": "rent", "locations": ["Санкт-Петербург"],"rooms": ["1", "2"], "minPrice": 30000, "maxPrice": 80000,"sort": "newest", "maxResults": 500}
Paste a Cian URL:
{ "startUrls": ["https://www.cian.ru/cat.php?deal_type=sale&engine_version=2&offer_type=flat®ion=1"], "maxResults": 1000 }
Output example
{"listingId": "302345678","url": "https://www.cian.ru/sale/flat/302345678/","dealType": "sale","propertyType": "flat","title": "2-комн. кв., 54,3 м², 5/12 этаж","price": 14900000,"currency": "RUB","priceText": "14 900 000 ₽","pricePerMeter": 274401,"rooms": 2,"totalArea": 54.3,"livingArea": 30.1,"kitchenArea": 9.5,"floor": 5,"totalFloors": 12,"buildingYear": 2008,"buildingMaterial": "monolith","address": "Москва, ЦАО, р-н Хамовники, ул. Льва Толстого, 16","region": "Москва","city": "Москва","district": "Хамовники","metro": "Парк культуры","metroDistance": "7 мин. пешком","latitude": 55.735124,"longitude": 37.587891,"description": "Продается светлая двухкомнатная квартира в тихом центре...","coverImage": "https://images.cdn-cian.ru/images/2345678901-1.jpg","images": ["https://images.cdn-cian.ru/images/2345678901-1.jpg"],"imageCount": 24,"agentName": "Ирина Смирнова","agencyName": "Этажи","sellerType": "agency","agentPhone": "+74951234567","publishedAt": "2024-05-18T09:42:00","scrapedAt": "2024-05-20T14:03:11Z"}
Download the dataset in JSON, CSV, Excel or HTML from the Storage tab or the API.
How it works
- Each location name is resolved to a Cian region/city ID; the filters become a Cian search query.
- The actor pages through Cian's search backend (28 listings per page) and de-duplicates by listing ID.
- When a single query has more results than Cian's page window allows, the search walks the price axis to keep collecting.
startUrlsskip the filters: search URLs are read for their embedded query, listing URLs are fetched individually.maxResultscaps the run — you are charged only for the rows returned.
How much does it cost to scrape Cian.ru?
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
listing | $0.00129 | $0.00119 | $0.00109 | $0.00099 |
One event per listing returned. 1,000 listings on the Free plan ≈ $1.29, and ≈ $0.99 on the Gold plan.
Related actors
- Trulia Property Scraper — US for-sale and rental listings
- HouseSigma Scraper — Canadian real estate listings
- Otodom Scraper — Polish property listings
FAQ
Do I need a proxy? Cian blocks datacenter IPs. The default is Apify Proxy, RESIDENTIAL group, country RU, which works out of the box.
How do I target a district, metro station, or street?
Open that search on Cian, copy the URL, and pass it in startUrls. Filters in a URL are always respected exactly.
How many listings can I get per search?
A single query returns up to roughly 1,500 listings through Cian's paging. The actor walks the price range to go beyond that; splitting by locations or price also helps for very large areas.
Does scrapeDetails cost extra?
No. It only changes how much of each row is written — full detail row vs lean core row. Both cost one event per listing.
Can I scrape rentals and new buildings?
Yes. Set dealType to rent, or propertyType to newbuilding, house, land, room or commercial.
Can I schedule it?
Yes. Use Apify Schedules to re-run a newest-sorted search and track new listings.
Something looks wrong. Open an issue on the Issues tab with your input and the run URL.
Legal and compliance
This actor collects publicly available real-estate listing data from Cian.ru search pages. It does not log in, access private accounts, or bypass paywalls. You are responsible for using the exported data in compliance with Cian's terms and applicable laws. Use it for lawful purposes such as market research and analytics. See Apify's guide on the legality of web scraping.