Cian Real Estate Monitor
Pricing
from $2.50 / 1,000 real estate observations
Cian Real Estate Monitor
Monitor Moscow secondary apartments and commercial property for sale or rent with retained price history, suitability checks, and explicit collection coverage.
Pricing
from $2.50 / 1,000 real estate observations
Rating
0.0
(0)
Developer
Ivan Solovyev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
20 hours ago
Last modified
Categories
Share
🏢 Cian Real Estate Monitor
|
Track Moscow residential and commercial property over time Comparable prices, retained history, suitability checks, and explicit collection coverage. |
|
Price history Every successful observation is retained. |
Commercial screening Area, budget, floor, and preferred-use checks stay explainable. |
Safe monitoring A missing result is never labelled as sold or delisted. |
Overview
Cian Real Estate Monitor collects Moscow secondary apartments for sale and commercial property for sale or rent. It accepts a validated Cian search URL or structured filters, records comparable observations across runs, and keeps each watch isolated by stateKey.
For commercial rentals, price is normalized to the total monthly rent and priceUnit is MONTHLY_RENT_RUB. For sales, price is the total sale price and priceUnit is SALE_TOTAL_RUB. Source price fields remain available for audit.
The Dataset includes current property data, previous price, change classification, bounded history, and optional suitability checks. Contacts, phone numbers, owner data, and address-based identity matching are outside the dataset.
Supported markets
- Moscow secondary apartments: sale.
- Moscow commercial property: sale and rent.
- Maximum 5 result pages and 100 unique listings per run.
- Listing identity uses the Cian listing identifier, never the address alone.
How to use
- Choose
searchfor a current snapshot ormonitorfor a scheduled watch. - Provide either
searchUrlor structured property, deal, price, area, and room filters. - Keep the Residential proxy country set to RU.
- Reuse one stable
stateKeyonly for the same search contract. - Schedule repeated monitor runs to build history.
Pricing
$0.005per Actor start.$0.0025per observation written to the default Dataset.- Platform usage, including the default Residential RU proxy, is included.
In monitor mode, set emitUnchanged to false to write and pay only for new, updated, or reappeared observations. Successful observations still extend the retained history even when unchanged rows are not emitted.
Commercial rent example:
{"mode": "monitor","assetType": "commercial","dealType": "rent","minArea": 150,"maxArea": 400,"maxPrice": 800000,"preferredSpecialties": ["gymHall", "fitnessCentre"],"groundFloorOnly": true,"maxPages": 1,"maxItems": 20,"stateKey": "moscow-commercial-gym-watch","historyLimit": 20,"emitUnchanged": true,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "RU"}}
Input
mode:searchormonitor.searchUrl: optional HTTPS Cian URL for a supported Moscow market. Do not combine it with structured search filters.assetType:secondaryFlatorcommercialwhensearchUrlis empty.dealType:saleorrent. Apartment rent is not supported.rooms: optional room counts from 1 to 6 for secondary apartments.minPrice,maxPrice: total sale price or total monthly rent bounds in RUB.minArea,maxArea: total area bounds in square meters and suitability criteria.preferredSpecialties: optional Cian specialty codes or names, such asgymHallandfitnessCentre.groundFloorOnly: evaluates known floor data against a ground-floor requirement.maxPages: 1 to 5 result pages.maxItems: 1 to 100 unique listings.stateKey: optional observation identity. An automatic key is built from the normalized search and evaluation contract when empty.historyLimit: 2 to 100 retained observations per listing.emitUnchanged: includesUNCHANGEDrecords in the Dataset. History is updated either way.proxyConfiguration: Apify proxy settings. The default uses Residential with country RU.
The Actor rejects unsupported cities, new builds, unsupported deal and property combinations, non-Cian hosts, and plain HTTP. It does not silently rewrite an unsupported URL into another market.
Output
{"platform": "cian","id": "123456789","title": "Помещение свободного назначения, 220 м²","assetType": "commercial","dealType": "rent","price": 550000,"priceUnit": "MONTHLY_RENT_RUB","sourcePrice": 2500,"sourcePriceType": "squareMeter","paymentPeriod": "monthly","monthlyRent": 550000,"annualRentPerSqm": 30000,"totalArea": 220,"minArea": 150,"pricePerSqm": 2500,"address": "Москва, ул. Примерная, 10","url": "https://www.cian.ru/rent/commercial/123456789/","commercialType": "freeAppointment","specialtyTypes": ["gymHall"],"specialtyNames": ["Спортивный зал"],"suitabilityScore": 100,"suitabilityStatus": "MATCH","suitabilityChecks": [{"criterion": "minArea", "status": "MATCH", "expected": 150, "actual": 220}],"observedAt": "2026-10-03T10:00:00+00:00","runId": "example-run","firstSeenAt": "2026-10-02T10:00:00+00:00","lastSeenAt": "2026-10-03T10:00:00+00:00","previousPrice": 600000,"priceChange": -50000,"priceChangePct": -8.33,"changeType": "UPDATED","changedFields": ["price", "monthlyRent", "pricePerSqm"],"historyCount": 2}
changeType values:
NEW: first observation under this state key.UPDATED: one or more tracked fields changed.UNCHANGED: the listing was observed again with the same tracked fields.REAPPEARED: the listing returned to the monitored result set after an earlier complete comparable run did not contain it.
The Actor does not emit removed, expired, delisted, or sold events. A listing missing from a limited run is not classified as a market event.
Suitability checks
Suitability evaluates only data available in the listing. Every criterion is reported as MATCH, MISMATCH, or UNKNOWN; unknown values do not lower the percentage score. The result is a screening aid, not an engineering, legal, licensing, accessibility, electrical-capacity, ventilation, or noise assessment.
Commercial search pages can include promoted or grouped offers whose areas exceed requested bounds. The Dataset retains the source values and shows the result through suitability checks rather than hiding it.
Coverage and run summary
The default key-value store record RUN_SUMMARY contains:
pagesFetched,offersObserved,totalOffers, anditemsEmitted;limitReached,scanComplete, andcoverageScope;- counts for every
changeType; - run status and duration.
scanComplete is true only when unique collected listings cover the reported result total without an item or page limit. FULL_RESULT_SET, LIMITED_BY_MAX_ITEMS, LIMITED_BY_MAX_PAGES, PARTIAL_ERROR, and UNPROVEN make the coverage decision explicit.
Observation state is stored in the named key-value store cian-price-history-state. Record names are hashed from stateKey, and a short TTL lock protects the state update from overlapping runs of the same watch.
Local development
Python 3.12 is required.
python3.12 -m venv .venv.venv/bin/python -m pip install -r requirements-dev.txt.venv/bin/python -m pytest -q
RU / На русском
Актор собирает вторичные квартиры на продажу и коммерческие помещения на продажу или в аренду в Москве. Для аренды поле price означает полную месячную ставку, для продажи полную цену объекта. История сохраняет успешные замеры и отделяет новое, изменившееся, неизменившееся и повторно появившееся в выборке объявление.
Для коммерческих объектов можно проверять площадь, бюджет, этаж и назначение. Неизвестные значения не ухудшают оценку. Такая оценка помогает отобрать кандидатов, но не заменяет техническую, юридическую и эксплуатационную проверку помещения.
Полнота запуска отражена в RUN_SUMMARY. Ограниченная выдача не создаёт вывод о снятии объявления с продажи или аренды.