Domclick RU Property Scraper at a glance
Domclick RU Property Scraper is a ready-to-run Apify actor from abotapi for collecting real estate data. Its documented output includes id, url, change, changed fields and deal, 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, Lead Generation, Automation
- Pricing
- $2.20 per 1,000 results (Free plan), from $1.50 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 39 options
Extract property listings from domclick.ru, one of Russia’s largest real estate portals. Search by city or use listing/search URLs. Returns 70+ fields including price, area, rooms, floor, address, GPS, metro info, photos, seller and agency details, developer data, discounts, and mortgage flags.
What Domclick RU Property Scraper can do
- 70+ fields per listing. Price, price per square meter, area, rooms, floor, build year, full address, GPS, metro stations, photos, seller and agency details, verification badges, and new building and developer info.
- Two ways to start. Build a search from city, deal type, and filters, or paste Domclick search or listing links directly.
- All of Russia. Any city or region name is resolved automatically, or paste an address GUID directly.
- Sale and rent. Residential, commercial, and garage categories, plus secondary market flats and new building layouts.
- Server side filters. Filter by rooms, price, area, and floor, and sort seven ways, so counts stay accurate.
- Optional extra details. A market valuation estimate, nearby points of interest, and agent deal history, added on demand.
Choose what to collect
These inputs let you configure Domclick RU Property Scraper - Listings, Prices & Agent Data. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Pick how to start: build a search from filters, or paste Domclick URLs. |
locationsarray | City or region names to search, for example "Москва", "Санкт-Петербург", "Сочи". Each name is resolved automatically. You can also paste an address GUID directly. Only applies in Search mode. |
dealTypestring | Sale or rent. |
categorystring | Property category. |
offerTypestring | Flat (secondary market) or layout (new building plan). |
roomsarray | Filter by number of rooms. Choose any combination. 4 or more includes five and above; 5 or more means five and above only. |
minPriceinteger | Minimum price in rubles. |
Show 32 more inputs
| Input | What it controls |
|---|---|
maxPriceinteger | Maximum price in rubles. |
minAreainteger | Minimum total area in square meters. |
maxAreainteger | Maximum total area in square meters. |
minFloorinteger | Minimum floor. |
maxFloorinteger | Maximum floor. |
minBuildYearinteger | Only listings in buildings built in or after this year, for example 2015. |
maxBuildYearinteger | Only listings in buildings built in or before this year, for example 1990. |
minBuildingFloorsinteger | Only listings in buildings with at least this many floors. |
maxBuildingFloorsinteger | Only listings in buildings with at most this many floors. |
minKitchenAreainteger | Minimum kitchen area in square metres. |
minPricePerM2integer | Minimum price per square metre in rubles. |
maxPricePerM2integer | Maximum price per square metre in rubles. |
maxMetroWalkMinutesinteger | Only listings within this many minutes on foot of a metro station. |
wallTypearray | Filter by building wall material. Choose any combination; leave empty for all. |
notFirstFloorboolean | Skip listings on the first floor. |
notLastFloorboolean | Skip listings on the top floor of the building. |
onlyWithPhotoboolean | Skip listings that have no photos. |
apartmentsstring | The site lists legally non-residential apartment units next to ordinary flats. Include both, show apartments only, or leave them out. |
sortBystring | Result ordering. |
urlsarray | Paste Domclick search links (domclick.ru/search?...), including filtered, sorted and paged links (offset=N or page=N start at that page), or listing links (domclick.ru/card/...). Multi-URL supported. Filter fields above are ignored in URL mode. Only applies in URL mode. |
fetchDetailsboolean | Adds a market valuation estimate, nearby points of interest count, and agent deal stats to each listing. This loads each listing's full card page, so it is significantly slower and bills a per-listing surcharge. Best-effort: a listing whose card does not load in time keeps its base fields and is not charged for enrichment. |
maxPagesinteger | How many result pages (about 30 listings each) to walk per city or URL. Leave empty to walk every result page (the item cap and end-of-catalogue detection still bound the run). |
maxListingsinteger | Overall cap across all targets. 0 means unlimited. |
resumeFromRunIdstring | Paste a previous run ID or dataset ID to continue a full-catalogue walk across separate runs. Listings already collected there (matched by listing id) are skipped, so this run only saves the new ones. Leave empty for a normal fresh run. See also Incremental mode below. |
incrementalModeboolean | For scheduled/recurring runs against the SAME search: remembers what this actor saw last time and only returns NEW, UPDATED, or (if enabled below) EXPIRED listings on later runs, instead of the full result set every time. Off by default so a one-off run behaves exactly as before. See also resumeFromRunId above, which continues one specific interrupted run instead. |
stateKeystring | Only used when Incremental mode is on. Identifies which saved baseline this run compares against. Leave empty to derive it automatically from your search filters (so two different searches never share a baseline); set it manually to reuse or separate a baseline explicitly. |
emitUnchangedboolean | Only used when Incremental mode is on. By default, listings with no changes since the last run are skipped and not returned or billed. Turn this on to also return them (marked changeType: UNCHANGED), this returns and bills every listing every run, not just the changes. |
emitExpiredboolean | Only used when Incremental mode is on. Turn this on to also return a row for a previously-seen listing that is no longer found (marked changeType: EXPIRED), this returns and bills an extra row per removed listing. Only fires after a run that scans every result page with no page/item cap and no resume in effect; otherwise it is safely skipped so a partial run never wrongly marks a listing as gone. |
ignoreFieldsForChangesarray | Only used when Incremental mode is on. Field names (for example marketPrice) whose changes should NOT mark a listing as UPDATED. Use dotted paths for nested fields. The fields stay in the output; they just stop triggering updates. Always ignored: scrapedAt (changes on every scrape). The description, photos, subways, sellerRaw and seoRaw fields are never compared. |
mcpConnectorsarray | Optionally 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). |
notionParentPageUrlstring | URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
idIDurlURLchangeTypeChangechangedFieldsChanged fieldsdealTypeDealofferTypeTypepricePrice ₽squarePrice₽/m²currencyCurrencyareaArea m²roomsRoomsfloorFloorShow 35 more fields
totalFloorsFloorsbuildYearBuiltaddressAddresslatitudeLatlongitudeLonnearestSubwayMetrosubwayWalkMinutesMetro mincomplexNameComplexbuildingPathBuilding URLsellerNameSellerisAgencyAgencycompanyNameCompanyisRosreestrApprovedЕГРНhasDiscountDiscountphotoCountPhotospublishedDatePublishedfirstSeenAtFirst seenlastSeenAtLast seenmarketPriceMarket price ₽minMarketPriceMarket min ₽maxMarketPriceMarket max ₽rentShortPriceRent short ₽rentLongPriceRent long ₽poiCountNearby placesagentDealsCompletedAgent dealsshortAddressShort addresssourceListing sourcerenovationRenovationpriceForYearPrice for a year ₽pricePerM2ForYearPrice per m² for a year ₽discountPersonalPercentPersonal discount %tradeInTrade-inonlineShowOnline showsellerExperienceSeller experiencescrapedAtScrapedExample output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"id": "2077927661",
"url": "https://domclick.ru/card/sale__flat__2077927661",
"dealType": "sale",
"offerType": "flat",
"price": 34999000,
"squarePrice": 466653,
"currency": "RUB",
"area": 75,
"rooms": 2,
"floor": 14,
"totalFloors": 17,
"buildYear": 2026,
"address": "Москва, набережная Примерная, 1 к1",
"latitude": 55,
"longitude": 37,
"nearestSubway": "Технопарк",
"subwayWalkMinutes": 12,
"complexName": "Sample Complex",
"sellerName": "Agent Name",
"sellerCasId": 1234567,
"isAgency": true,
"companyName": "Sample Company",
"companyFiasId": "00000000-0000-0000-0000-000000000000",
"isRosreestrApproved": true,
"hasDiscount": true,
"discountValue": 500000,
"photoCount": 11,
"photos": [
"https://img.dmclk.ru/vitrina/owner/00/00/000.jpg"
],
"publishedDate": "2026-01-01T00:00:00+00:00",
"marketPrice": 30280000,
"minMarketPrice": 25740000,
"maxMarketPrice": 34820000,
"agentDealsCompleted": 31,
"poiCount": 50,
"shortAddress": "Москва, улица Примерная, 1",
"timezone": "Europe/Moscow",
"timezoneOffset": 3,
"priceForYear": 102000000,
"renovation": "Без ремонта",
"query": "Москва",
"scrapedAt": "2026-01-01T00:00:00.000Z"
}Ways to use this data
- Real estate marketplaces and PropTech products: mirror Domclick sale and rent listings across Russian cities into your own search index.
- Market research and pricing analysis: track price, price per square meter, discounts, and mortgage flags across regions and property types over time.
- New building and developer tracking: monitor layouts, developer information, and construction end dates for new residential complexes.
- Lead generation for agents and agencies: build contact lists from seller and company details, filtered by verification and agency badges.
- Price and inventory monitoring: schedule the actor with incremental mode to catch new, updated, and delisted properties without re-downloading everything each time.
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 Domclick RU Property Scraper return?
The documented output for Domclick RU Property Scraper includes id, url, change, changed fields, deal, type, price ₽ and ₽/m². Availability of each field depends on the source page and the selected mode.
How much does Domclick RU Property Scraper 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 returns only new, updated, reappeared, and, if enabled, expired listings, and unchanged ones are not billed by default.
Why does pasting a single listing link return fewer fields than a search?
The search feed has no lookup by listing id. A pasted search link walks results like search mode and returns full listings, but a pasted individual listing card link only returns the listing id, url, and the extra-detail fields (market valuation estimate and card fields such as the short address, timezone and price for a year) when available. To get the full field set for a property, search for it by city and filters instead.
Why did my run fail instead of returning an empty dataset?
If every request is rejected, the run stops with a clear message so "no listings found" is never confused with "nothing could be read". The first request of a run also needs to clear a one time connection check, which can take up to about 75 seconds; give a run at least 5 minutes in Input > Run options. If the run is close to running out of time, it stops with an explanatory message instead of being cut off silently. A search that genuinely has no matches still finishes successfully with zero rows.
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 or Airtable.
