Cian.ru Property Scraper avatar

Cian.ru Property Scraper

Pricing

from $0.99 / 1,000 listings

Go to Apify Store
Cian.ru Property Scraper

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

ParseBird

Maintained by Community

Actor 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 (), 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:

  • 🏷️ Priceprice (RUB number), priceText ("14 900 000 ₽"), pricePerMeter
  • 📐 Size & roomsrooms, totalArea, livingArea, kitchenArea
  • 🏢 Buildingfloor, totalFloors, buildingYear, buildingMaterial (panel, brick, monolith, …)
  • 📍 Location — full address, region, city, district, metro, metroDistance, latitude, longitude
  • 🖼️ Media & textcoverImage, images[], imageCount, full description
  • 👤 ContactagentName, 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

ParameterTypeDefaultDescription
startUrlsarrayMoscow flats-for-sale URLCian search-result or listing URLs. When set, the filters below are ignored — every filter is read from each URL.
dealTypestringsalesale or rent.
propertyTypestringflatflat, room, house, land, commercial, newbuilding.
locationsarray[]Russian city / region names in Cyrillic (Москва, Санкт-Петербург, Новосибирск, Московская область). Each is searched separately.
minPrice / maxPriceintegerPrice bounds in Russian rubles.
roomsarray[]studio, 1, 2, 3, 4, 5+ (applies to flats and new buildings).
minArea / maxAreaintegerTotal area bounds in m².
sortstringnewestnewest, price_asc, price_desc, price_per_meter.
scrapeDetailsbooleanfalseFull detail row vs lean core row.
maxResultsinteger100Max 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&region=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

  1. Each location name is resolved to a Cian region/city ID; the filters become a Cian search query.
  2. The actor pages through Cian's search backend (28 listings per page) and de-duplicates by listing ID.
  3. When a single query has more results than Cian's page window allows, the search walks the price axis to keep collecting.
  4. startUrls skip the filters: search URLs are read for their embedded query, listing URLs are fetched individually.
  5. maxResults caps the run — you are charged only for the rows returned.

How much does it cost to scrape Cian.ru?

EventFreeBronzeSilverGold
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.

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.

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.