Cian RU icon

Cian RU

Collect property listings from Cian.ru by search filters or direct URLs. Returns structured rows with listing URL, title, price, address, rooms, area,…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

Cian RU at a glance

Cian RU is a ready-to-run Apify actor from abotapi for collecting real estate data. Its documented output includes id, url, title, price and pricevalue, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
Real Estate, Developer Tools, Automation
Region
Europe
Pricing
$2.20 per 1,000 results (Free plan), from $1.50 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
45 options

Collect property listings from Cian.ru by search filters or direct URLs. Returns structured rows with listing URL, title, price, address, rooms, area, floors, photos, visible contact fields, coordinates when available, and optional detail-page enrichment.

What Cian RU can do

  • Two ways in. Search by location and filters, or paste Cian search result URLs directly.
  • Every row comes ready to use. Price, address, rooms, area, floor, coordinates, photos, description and contact phone numbers are included on every saved listing, no extra step.
  • An optional detail step. Turn on Fetch listing details for fields that only live on the listing page itself: agent and agency identity, a running view count, BTI-verified build year, renovation type, and more.
  • Covers the whole market. Flats, rooms, houses, new buildings, and commercial categories, for sale or for rent.
  • Built for monitoring. Resume one interrupted crawl, or track a saved search across a schedule and get back only what changed.
  • A power-user escape hatch. Pass Cian's own raw filter fields when the built-in filters aren't enough.

Choose what to collect

These inputs let you configure Cian RU - Property Listings, Search Filters & URLs. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestring · requiredChoose search filters or direct listing/search URLs.

Choices: search, url

maxItemsinteger · requiredMaximum matching rows to save. Fewer rows can be returned when the selected source and filters match fewer live records.
urlsarrayCian listing URLs or search-result URLs. Used only in URL mode. Encode any filters directly in the URL, because the search filters below are ignored in URL mode.
locationstringSearch mode only. Type a city name (Москва, Санкт-Петербург, Казань). It is resolved through the site's own city pages; the run stops with a clear error when no city matches.
regionIdintegerSearch mode only. Optional Cian region ID. Moscow is 1, Saint Petersburg is 2. Leave empty to resolve from Location when possible.
operationTypestringSearch mode only. Deal type for search mode.

Choices: sale, rent

categorystringSearch mode only. Listing category. Choose Any to let operation and property type decide.

Choices: , flatSale, flatRent, roomSale, roomRent, newBuildingFlatSale, houseSale, houseRent, commercialLandSale, commercialLandRent, freeAppointmentObjectSale, freeAppointmentObjectRent, officeSale, officeRent, shoppingAreaSale, shoppingAreaRent, warehouseSale, warehouseRent, garageSale, garageRent

Show 38 more inputs
More input fields
InputWhat it controls
sortstringSearch mode only. Sort results when supported by the selected source.

Choices: default, priceAscending, priceForMeter, priceForMeterDesc, area, date, walkingTime, creationDateAsc, totalAreaAsc

roomsarraySearch mode only. Room counts for flats and rooms.
includeStudiobooleanSearch mode only. Include studio listings together with selected room counts.
minPriceintegerSearch mode only. Minimum price in rubles.
maxPriceintegerSearch mode only. Maximum price in rubles.
minAreaintegerSearch mode only. Minimum total area in square meters.
maxAreaintegerSearch mode only. Maximum total area in square meters.
minFloorintegerSearch mode only. Minimum floor.
maxFloorintegerSearch mode only. Maximum floor.
minFloorsintegerSearch mode only. Minimum floors in the building.
maxFloorsintegerSearch mode only. Maximum floors in the building.
minLivingAreaintegerSearch mode only. Minimum living area in m2.
maxLivingAreaintegerSearch mode only. Maximum living area in m2.
minHouseYearintegerSearch mode only. Earliest building year.
maxHouseYearintegerSearch mode only. Latest building year.
minCeilingHeightnumberSearch mode only. Minimum ceiling height in metres.
maxCeilingHeightnumberSearch mode only. Maximum ceiling height in metres.
isByHomeownerbooleanSearch mode only. Only listings placed by the owner.
fromDeveloperbooleanSearch mode only. Only listings placed by the developer.
isFirstFloorbooleanSearch mode only. Only first-floor listings.
notLastFloorbooleanSearch mode only. Exclude top-floor listings.
hasVideobooleanSearch mode only. Only listings with a video.
withLayoutbooleanSearch mode only. Only listings with a layout drawing.
shortTermRentbooleanSearch mode only. With operation Rent, only daily-rental listings.
repairarraySearch mode only. Cian renovation codes (1 none, 2 cosmetic, 3 euro, 4 designer).
publishPeriodstringSearch mode only. Only listings published in this window.

Choices: , lastHour, halfDay, today, last24Hours, lastWeek, lastMonth

advancedFiltersobjectSearch mode only. Raw Cian query objects merged into the search, e.g. {"repair":{"type":"terms","value":[2,3]}}. For power users who know Cian's query field names.
maxPagesintegerNo page limit when set to 0. The run stops at Max items.
fetchDetailsbooleanLoad each saved listing's own detail page for richer fields not on the search card: agent/agency name, total view count, BTI-verified build year, renovation type, window view, balcony count, bathroom counts, parking type, and amenities. Billed as a detail-enrichment surcharge.
resumeFromRunIdstringContinue ONE interrupted crawl: paste a previous run ID (or dataset ID) and this run skips listings it already saved, appending only new ones. For recurring monitoring of the SAME search across scheduled runs instead, use Incremental mode below.
incrementalModebooleanRemember this search's results between scheduled runs and report only what changed (NEW / UPDATED / REAPPEARED / EXPIRED) instead of re-saving everything every time. Distinct from Resume from run above, which continues one specific interrupted crawl rather than tracking a recurring search.
stateKeystringIncremental mode only. Optional manual key identifying this tracked search. Leave empty to derive one automatically from mode/filters/URLs, so identical searches share a baseline and different ones never mix.
emitUnchangedbooleanIncremental mode only. Also save and CHARGE for listings that did not change since the last run. Off by default so recurring runs only pay for what actually changed.
emitExpiredbooleanIncremental mode only. Also save and CHARGE a row for previously-tracked listings no longer found, marked changeType EXPIRED. Only fires after a run that scanned the full tracked search with no cap, resume, or unreadable URL truncating it early.
ignoreFieldsForChangesarrayIncremental mode only. Field names that must NOT count as a change, e.g. imageUrls or description (dotted paths such as a.b reach nested fields). The fields stay in every saved row; they are only left out of the NEW/UPDATED comparison, so a change in them alone never produces an UPDATED row. scrapedAt and addedLabel are always ignored. Price, area, address and the other listing fields are compared unless listed here.
mcpConnectorsarrayOptionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. The connector receives a condensed, human-readable summary per item (title + key fields), not the full JSON. The complete record stays in the dataset. Leave empty to skip. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerMaximum saved records to export to selected MCP connectors.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

idID (text)
urlURL (link)
titleTitle (text)
pricePrice (text)
priceValuepriceValue
addressAddress (text)
roomsCountRooms (number)
totalAreaArea (number)
floorNumberFloor (number)
floorsCountFloors (number)
dealTypedealType
categorycategory
Show 23 more fields
agentNameAgent (text)
agentCompanyNameAgency (text)
phoneNumbersPhones (array)
latitudeLatitude (number)
longitudeLongitude (number)
imageUrlsImages (array)
viewsTotalViews (number)
houseBuildYearBuild year (BTI) (number)
repairTypeRenovation (text)
detailStatusDetail (text)
scrapedAtScraped (date)
changeTypeChange (text)
changedFieldsChanged fields (array)
firstSeenAtFirst seen (date)
lastSeenAtLast seen (date)
creationDatecreationDate
formattedFullInfoformattedFullInfo
mainImagemainImage
agentagent
geogeo
siteUrlsiteUrl
formattedAddressformattedAddress
formattedFullPriceformattedFullPrice

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "id": 123456789,
  "url": "https://www.cian.ru/sale/flat/123456789/",
  "sourceUrl": "https://www.cian.ru/sale/flat/123456789/",
  "title": "2-комн. кв., 54 м², 5/9 эт.",
  "jkName": null,
  "price": "12 500 000 ₽",
  "priceValue": 12500000,
  "pricePerMeter": 231481,
  "currency": "rur",
  "address": "Москва, Пресненский р-н, ул. Ленина, 10",
  "district": "Пресненский",
  "metro": "Баррикадная",
  "metroTime": 7,
  "metroLineId": 3,
  "metroLineColor": "00701A",
  "roomsCount": 2,
  "totalArea": 54,
  "livingArea": 32,
  "kitchenArea": 10,
  "floorNumber": 5,
  "floorsCount": 9,
  "buildYear": 2015,
  "materialType": "monolith",
  "dealType": "sale",
  "category": "flatSale",
  "offerType": "flat",
  "isFromDeveloper": false,
  "isPremium": false,
  "isApartments": false,
  "phoneNumbers": [
    "+79991234567"
  ],
  "latitude": 55.7601,
  "longitude": 37.6103,
  "description": "Просторная квартира с ремонтом, рядом метро",
  "imageUrls": [
    "https://img.cian.site/a.jpg",
    "https://img.cian.site/b.jpg"
  ],
  "mainImage": {
    "full": "https://img.cian.site/a.jpg"
  },
  "siteUrl": "https://www.cian.ru/sale/flat/123456789/",
  "formattedAddress": "Москва, Пресненский р-н, ул. Ленина, 10",
  "formattedFullPrice": "12 500 000 ₽",
  "ceilingHeight": 2.8,
  "agent": {
    "userId": 141493134,
    "accountType": "agency",
    "agencyName": "Компания PIONEER",
    "isAgent": true,
    "isBuilder": true
  },
  "geo": {
    "coordinates": {
      "lat": 55.7601,
      "lng": 37.6103
    }
  },
  "creationDate": "2026-09-20T10:00:00+03:00",
  "addedLabel": "вчера, 14:40",
  "scrapedAt": "2026-09-28T08:00:00.000Z"
}

Ways to use this data

  • Real estate agencies and brokers: build and refresh a listings feed for a market segment, building complex, or client search.
  • Price and market research: track price per square meter, floor, and room count trends across districts and cities.
  • Property investment monitoring: watch a saved search over time and get back only the new, updated, or delisted properties.
  • Lead generation and outreach: collect agent and agency names alongside contact phone numbers and listing details.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does Cian RU return?

The documented output for Cian RU includes id, url, title, price, pricevalue, address, rooms and area. Availability of each field depends on the source page and the selected mode.

How much does Cian RU cost?

It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new or changed listings on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then classifies every listing as new, updated, unchanged, reappeared, or expired against the previous run of the same search, and unchanged listings are not billed unless you turn that on too.

What is the difference between Resume from run and Incremental mode?

Resume from run continues ONE specific interrupted crawl: it skips listing ids already saved in a past run's dataset so that run can finish without duplicates. Incremental mode is for a recurring, scheduled search: it keeps its own state between separate runs and reports what changed each time. They can combine to bootstrap a monitoring baseline from an interrupted crawl's dataset, but not once that baseline already has tracked listings, in which case the run stops with a message asking you to remove Resume from run or set a different State key.

Why did my run fail instead of returning an empty dataset?

A run fails when it cannot read the site at all after several attempts, when none of the pasted URLs could be read, or when the search matched no listings whatsoever, since the actor treats a completely empty result as indistinguishable from a blocked run and stops with a clear message rather than guessing. Run it again, try broader filters, or try a different region. The one case where a successful run can still save nothing is Incremental mode finding every previously tracked listing unchanged.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear, Airtable, or Apify.

Ready to collect with Cian RU?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.