# Domclick Scraper - Russia Real Estate Listings & Prices (`haketa/domclick-scraper`) Actor

Scrape Russian real-estate listings from Domclick (domclick.ru): price, price/m², rooms, area, floor, address, coordinates, metro, photos & seller. Clears the Qrator challenge with the Camoufox anti-detect browser.

- **URL**: https://apify.com/haketa/domclick-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (community)
- **Categories:** Real estate, Business
- **Features:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Domclick Scraper — Russia Real Estate Listings, Prices & Market Intelligence 🏠

[![Apify Actor](https://img.shields.io/badge/Apify-Actor-orange?style=flat-square\&logo=apify)](https://apify.com/haketa/domclick-scraper)
[![Maintenance](https://img.shields.io/badge/Maintained-Active-brightgreen?style=flat-square)](https://apify.com/haketa/domclick-scraper)
[![Data Format](https://img.shields.io/badge/Data-JSON%20%7C%20CSV%20%7C%20Excel-blue?style=flat-square)](https://apify.com/haketa/domclick-scraper)
[![Pagination](https://img.shields.io/badge/Pagination-1%2C000%2B%20Deep%20Extraction-success?style=flat-square)](https://apify.com/haketa/domclick-scraper)
[![Anti--Bot](https://img.shields.io/badge/Security-Challenge--Cleared-success?style=flat-square)](https://apify.com/haketa/domclick-scraper)

**Scrape real estate listings, sale & rental prices, property attributes, geo-coordinates, and seller details across Russia from [Domclick (domclick.ru)](https://domclick.ru) — powered by Sberbank.** This production-grade **Domclick scraper** seamlessly resolves Russian cities, regions, and districts, extracting comprehensive property data: price, price per square meter, room counts, floor configurations, construction year, metro proximity, high-resolution photo galleries, seller types, and agency verification badges.

Whether you are conducting Russian real estate market valuation, tracking macroeconomic housing indices, monitoring distressed mortgages, building proptech discovery portals, or sourcing seller leads, this **Domclick data extractor** delivers clean, structured property datasets at scale.

Export ready-to-use datasets in **JSON, CSV, Excel, XML, or direct REST API**.

***

### ⚡ At a Glance

| Feature | Specification |
|:---|:---|
| **Target Website** | [Domclick.ru](https://domclick.ru) (Sberbank Real Estate Ecosystem) |
| **Data Scope** | Property sale & rent listings, price per m², building year, floor, metro stations, seller info |
| **Geographic Coverage** | All Russian Federation federal subjects, cities, and regions (Moscow, Saint Petersburg, Sochi, etc.) |
| **Extraction Speed** | ~80–180 listings/minute with smart request concurrency |
| **Deep Pagination** | Unlocked deep extraction (1,000+ listings per search) without artificial page caps |
| **Security Handling** | Automatic verification and session maintenance via headless browser environment |
| **Proxy Requirement** | Apify Residential Proxies (RU country pool required for geographic compatibility) |
| **Export Formats** | JSON, CSV, XLSX, XML, RSS, HTML Table |
| **Integrations** | Make.com, Zapier, n8n, Google Sheets, Airbyte, Webhooks, Python, Node.js |

***

### 🔎 Why Scrape Domclick?

Domclick (Домклик) is the official real estate platform created by Sberbank, Russia's largest banking institution. It hosts the country's most authoritative inventory of verified secondary market apartments, primary new developments (новостройки), suburban cottages, townhouses, and commercial real estate.

Because Domclick is integrated directly into Sberbank's mortgage processing pipeline, listings feature verified ownership badges, exact cadastral pricing indicators, and estimated monthly mortgage payments. However, extracting this data at scale is heavily restricted by regional IP requirements and advanced bot security challenges. This actor automates the entire clearance and extraction pipeline seamlessly.

#### Key Industry Applications

1. **Real Estate Market Valuation & Index Tracking**\
   Track real-time price-per-square-meter trends across Moscow administrative districts, Saint Petersburg islands, or emerging resort zones like Sochi and Krasnodar.

2. **Mortgage & Proptech Analytics**\
   Analyze estimated monthly mortgage costs, down payment thresholds, and bank verification rates to model consumer affordability.

3. **B2B Real Estate Lead Generation**\
   Extract contact information, agency affiliations, and listing volumes of high-producing real estate brokers, agencies, and private owners.

4. **Construction & Development Feasibility**\
   Benchmark secondary market pricing against new developments (новостройки) to identify high-margin development opportunities.

5. **Cross-Portal Property Arbitrage**\
   Compare Domclick listings with competitor platforms (Avito, CIAN) to uncover price discrepancies and off-market opportunities.

***

### ✨ Key Features & Capabilities

- **Deep 1,000+ Listing Pagination**: Unlocked pagination engine capable of harvesting entire municipal catalogs across thousands of items.
- **Dual Transaction Support**: Scrape properties for outright purchase (`sale` / `Продажа`) or long-term lease (`rent` / `Аренда`).
- **Comprehensive Property Types**:
  - *Residential*: Flats/apartments, detached houses, single rooms, new building layouts, and townhouses.
  - *Commercial*: Offices, retail shopping spaces, and industrial warehouses.
- **Granular Price & Area Filtering**: Filter by exact rubles ranges (`minPrice`, `maxPrice`), square meter thresholds (`minArea`, `maxArea`), and room counts (`1`, `2`, `3+`).
- **Automated Regional Geo-Resolution**: Automatically translates Russian city names (e.g. `Москва`, `Санкт-Петербург`, `Казань`) into canonical Domclick administrative GUIDs.
- **Verified Seller Intelligence**: Identifies whether the lister is a private owner, an individual agent, or a licensed corporate agency, including verified Sberbank badges.
- **Cost-Optimized Network Usage**: Selectively aborts non-essential assets (heavy decorative images, fonts) to minimize proxy bandwidth overhead.

***

### 📥 Input Parameters

The actor accepts flexible input parameters designed for both non-technical users in the Apify Console and automated API callers.

| Field Name | Type | Default | Description |
|:---|:---|:---|:---|
| `searches` | Array\[String] | `["Москва"]` | Russian cities, municipal regions, or raw Domclick region GUIDs (e.g., `Москва`, `Санкт-Петербург`, `Сочи`). |
| `dealType` | String | `"sale"` | Transaction type: `sale` (Продажа) or `rent` (Аренда). |
| `category` | String | `"living"` | Real estate category: `living` (residential) or `commercial` (business properties). |
| `offerType` | String | `"flat"` | Property classification: `flat`, `house`, `room`, `layout`, `townhouse`, `office`, `retail`, `warehouse`. |
| `sort` | String | `"qi"` | Sorting parameter: `qi` (relevance/QI), `price`, `published` (newest), `area`. |
| `sortDir` | String | `"desc"` | Sort direction: `desc` (descending) or `asc` (ascending). |
| `minPrice` | Integer | `null` | Minimum price threshold in Russian Rubles (₽). |
| `maxPrice` | Integer | `null` | Maximum price threshold in Russian Rubles (₽). |
| `minArea` | Integer | `null` | Minimum total area in square meters (m²). |
| `maxArea` | Integer | `null` | Maximum total area in square meters (m²). |
| `rooms` | Array\[String] | `[]` | Filter by room configuration, e.g. `["1", "2", "3"]`. |
| `maxItems` | Integer | `0` | Total listings to extract. Set to `0` for auto/unlimited deep pagination (1,000+). Prefilled with `30` for fast tests. |
| `maxItemsPerSearch`| Integer | `0` | Maximum listings per individual city search (0 = unlimited). |
| `proxyConfiguration` | Object | `{ "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "RU" }` | Proxy configuration. Apify RU Residential proxy is required for Domclick. |

***

### 🏙️ Major Russian Real Estate Hubs Supported

The actor immediately supports any Russian municipality. Popular targets include:

| City / Region | Russian Name | Property Focus |
|:---|:---|:---|
| Moscow | `Москва` | High-value luxury, secondary flats, primary developments |
| Saint Petersburg | `Санкт-Петербург` | Historic city center apartments, suburban housing |
| Sochi / Krasnodar | `Сочи`, `Краснодар` | Black Sea resort apartments, vacation rentals, villas |
| Kazan | `Казань` | Emerging regional economic hub, student rentals |
| Yekaterinburg | `Екатеринбург` | Ural commercial hubs, residential multi-stories |
| Novosibirsk | `Новосибирск` | Siberian industrial capital, broad rental inventory |
| Nizhny Novgorod | `Нижний Новгород` | Volga logistics hubs and urban apartments |

***

### 📤 Output Dataset Schema

Each record represents a complete property offer with normalized attributes and verified seller details.

#### Property & Valuation Fields

| Field | Type | Coverage | Description |
|:---|:---|:---:|:---|
| `id` | Integer / String | 🟢 High | Unique numerical Domclick offer identifier. |
| `url` | String | 🟢 High | Canonical web path to the listing on domclick.ru. |
| `dealType` | String | 🟢 High | Transaction type (`sale` or `rent`). |
| `offerType` | String | 🟢 High | Property classification (`flat`, `house`, etc.). |
| `isSold` | Boolean | 🟢 High | Flag indicating if the listing has been marked as completed/sold. |
| `price` | Number | 🟢 High | Total listing price in Russian Rubles (RUB). |
| `pricePerM2` | Number | 🟢 High | Normalized price per square meter in RUB. |
| `monthlyMortgage`| Number | 🟡 Conditional | Estimated monthly mortgage payment calculated by Sberbank. |
| `currency` | String | 🟢 High | Currency denomination (`RUB`). |
| `rooms` | Integer | 🟡 Conditional | Number of separate rooms (or room code for studio). |
| `area` | Number | 🟢 High | Total floor area measured in square meters (m²). |
| `floor` | Integer | 🟡 Conditional | Property floor level within the building. |
| `buildingFloors`| Integer | 🟡 Conditional | Total number of floors in the structure. |
| `buildYear` | Integer | 🟡 Conditional | Year of building construction or planned handover. |
| `isApartment` | Boolean | 🟡 Conditional | Flag indicating commercial status apartments (апартаменты). |

#### Location & Amenities Fields

| Field | Type | Coverage | Description |
|:---|:---|:---:|:---|
| `address` | String | 🟢 High | Formatted full street address string. |
| `city` | String | 🟢 High | Municipality or district name. |
| `lat` | Number | 🟢 High | Latitude geographical coordinate. |
| `lon` | Number | 🟢 High | Longitude geographical coordinate. |
| `nearestMetro` | String | 🟡 Conditional | Name of the closest metro or transit station. |
| `metroStations` | Array\[String] | 🟡 Conditional | Complete list of walking-distance metro stops. |
| `description` | String | 🟢 High | Full text property description provided by the seller. |
| `hasVideo` | Boolean | 🟢 High | Indicator if a video tour is attached to the listing. |
| `photosCount` | Integer | 🟢 High | Count of high-resolution photographs available. |
| `photos` | Array\[String] | 🟢 High | Direct CDN URLs to all property images. |

#### Seller & Agency Fields

| Field | Type | Coverage | Description |
|:---|:---|:---:|:---|
| `sellerType` | String | 🟢 High | Classification of seller: `owner`, `agent`, or `agency`. |
| `sellerName` | String | 🟡 Conditional | Full name of the listing agent or owner. |
| `sellerCompany` | String | 🟡 Conditional | Corporate real estate agency name (e.g., `Этажи`, `Инком`). |
| `sellerExperience` | String | 🟡 Conditional | Documented industry experience duration. |
| `isVerified` | Boolean | 🟢 High | Sberbank verified seller badge (`isSbolVerified`). |
| `search` | String | 🟢 High | Originating search term or region GUID query. |
| `scrapedAt` | String | 🟢 High | ISO 8601 timestamp of data extraction. |

***

### 📋 Sample Output Record

```json
{
  "id": 149827361,
  "url": "/proda-kvartiry/moskva-kutuzovskiy-prospekt-24-149827361",
  "dealType": "sale",
  "offerType": "flat",
  "isSold": false,
  "price": 38500000,
  "pricePerM2": 452941,
  "monthlyMortgage": 248500,
  "currency": "RUB",
  "rooms": 3,
  "area": 85.0,
  "floor": 6,
  "isApartment": false,
  "buildingFloors": 12,
  "buildYear": 1958,
  "address": "Москва, р-н Дорогомилово, Кутузовский просп., 24",
  "city": "Москва",
  "lat": 55.7482,
  "lon": 37.5418,
  "nearestMetro": "Кутузовская",
  "metroStations": [
    "Кутузовская",
    "Студенческая"
  ],
  "description": "Просторная трехкомнатная квартира с великолепным видом на набережную. Сталинский фасадный дом, высокие потолки 3.2м, чистый подъезд, огороженная охраняемая территория.",
  "hasVideo": true,
  "photosCount": 18,
  "photos": [
    "https://img.dmclk.ru/media/offer/149827361/living_room.jpg",
    "https://img.dmclk.ru/media/offer/149827361/kitchen.jpg"
  ],
  "sellerType": "agency",
  "sellerName": "Михаил Сергеевич",
  "sellerCompany": "Агентство недвижимости Премиум",
  "sellerExperience": "Более 8 лет на Домклик",
  "isVerified": true,
  "search": "Москва",
  "scrapedAt": "2026-11-10T14:40:00.000Z"
}
```

***

### 💡 Practical Use Cases & Step-by-Step Recipes

#### 1. Moscow Premium Secondary Market Valuation

- **Searches**: `["Москва"]`
- **Deal Type**: `"sale"`
- **Offer Type**: `"flat"`
- **Min Price**: `30000000` (30M ₽)
- **Max Items**: `500`
- **Result**: Exports luxury central real estate listings for valuation benchmarking.

#### 2. Sochi Vacation Rental Yield Modeling

- **Searches**: `["Сочи"]`
- **Deal Type**: `"rent"`
- **Offer Type**: `"flat"`
- **Max Items**: `1000`
- **Result**: Analyzes long-term rental rates and price per square meter along the Black Sea coastline.

#### 3. Agency Lead Generation & Market Share Analysis

- **Searches**: `["Санкт-Петербург"]`
- **Deal Type**: `"sale"`
- **Result**: Group by `sellerCompany` to calculate which brokerage holds the highest listing inventory in the northern capital.

***

### 🛠️ Step-by-Step Execution Guide

1. **Enter Regions**: Provide Russian city names in the `searches` field.
2. **Select Filters**: Set transaction type (`sale` / `rent`), property category, price limits, and room filters.
3. **Set Extraction Cap**: Leave `maxItems` at `0` for comprehensive municipal crawls, or set a specific limit.
4. **Run Actor**: Click **Start** in the Apify Console. Watch automated challenge verification and listing streaming.
5. **Download Results**: Export data in CSV, Excel, or JSON formats, or integrate via automated webhooks.

***

### ⚙️ Advanced API & Webhook Automation

You can trigger this actor programmatically via standard HTTP REST requests.

#### Trigger via cURL

```bash
curl -X POST "https://api.apify.com/v2/acts/haketa~domclick-scraper/runs?token=YOUR_API_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "searches": ["Москва"],
    "dealType": "sale",
    "offerType": "flat",
    "maxItems": 100,
    "proxyConfiguration": {
      "useApifyProxy": true,
      "apifyProxyGroups": ["RESIDENTIAL"],
      "apifyProxyCountry": "RU"
    }
  }'
```

#### Fetch Results via Python

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("haketa/domclick-scraper").call(run_input={
    "searches": ["Санкт-Петербург"],
    "dealType": "sale",
    "offerType": "flat",
    "maxItems": 50,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['address']}: {item['price']:,} RUB ({item['pricePerM2']:,} RUB/m²)")
```

***

### 🏗️ Enterprise Architecture & Data Warehouse Integration

For high-scale analytics teams, Domclick data maps directly into standard relational databases or vector search catalogs:

```sql
CREATE TABLE domclick_listings (
    id BIGINT PRIMARY KEY,
    url TEXT,
    deal_type VARCHAR(20),
    offer_type VARCHAR(50),
    price NUMERIC(15, 2),
    price_per_m2 NUMERIC(10, 2),
    monthly_mortgage NUMERIC(10, 2),
    currency VARCHAR(5) DEFAULT 'RUB',
    rooms INT,
    area NUMERIC(8, 2),
    floor INT,
    building_floors INT,
    build_year INT,
    address TEXT,
    city VARCHAR(100),
    latitude NUMERIC(9, 6),
    longitude NUMERIC(9, 6),
    nearest_metro VARCHAR(100),
    seller_type VARCHAR(30),
    seller_company TEXT,
    is_verified BOOLEAN,
    scraped_at TIMESTAMP WITH TIME ZONE
);
```

#### Direct Pandas Integration

```python
import pandas as pd
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("haketa/domclick-scraper").call(run_input={
    "searches": ["Москва"],
    "dealType": "sale",
    "offerType": "flat",
    "maxItems": 100
})

items = list(client.dataset(run["defaultDatasetId"]).iterate_items())
df = pd.DataFrame(items)

## Quick price-per-m² distribution by metro station
summary = df.groupby("nearestMetro")["pricePerM2"].agg(["median", "count"]).sort_values(by="median", ascending=False)
print(summary.head(10))
```

***

### ❓ Frequently Asked Questions (FAQ)

**Why is a Russian residential proxy required?**\
Domclick enforces strict geographic verification and network firewall checks. Requests from standard datacenter IPs outside Russia are denied. Apify RU Residential proxies ensure reliable, continuous clearance.

**How does regional resolution work?**\
You can simply enter Russian city names (e.g. `Казань` or `Сочи`). The scraper automatically resolves the municipal name to Domclick's internal administrative GUID before requesting listing offers.

**How deep can I paginate?**\
The actor features unlocked pagination allowing extraction across thousands of listings per city. Set `maxItems` to `0` to crawl all available listings returned by the regional search index.

**Can I filter by specific room configurations?**\
Yes. You can supply an array of room codes in `rooms` (e.g., `["1", "2"]`) to target specific studio, 1-bedroom, or multi-bedroom layouts.

**Are commercial properties supported?**\
Yes. Set `category` to `commercial` and `offerType` to `office`, `retail`, or `warehouse` to harvest commercial properties.

***

### 🔗 Related Real Estate Scrapers

Expand your global real estate data pipelines with complementary property actors:

- [Willhaben Scraper](https://apify.com/haketa/willhaben-scraper) — Austria's #1 real estate, cars, and classifieds portal.
- [Bazos Scraper](https://apify.com/haketa/bazos-scraper) — Czech Republic & Slovakia leading classifieds and property platform.
- [Milanuncios Scraper](https://apify.com/haketa/milanuncios-scraper) — Spain's premier real estate and marketplace network.
- [Expedia Scraper](https://apify.com/haketa/expedia-scraper) — Global hospitality listings, rates, and amenities.

***

### 📋 Changelog

- **v1.2 (2026-11)**:
  - Unlocked 1,000+ deep pagination across all Russian regions and cities.
  - Set default `maxItems` to `0` (unlimited auto-pagination) with quick-preview sample prefill.
  - Enhanced session maintenance and auto-recovery in the anti-detect browser environment.
  - Optimized resource blocking to minimize proxy bandwidth overhead.
- **v1.1 (2026-10)**:
  - Added commercial real estate support (offices, retail, warehouses).
  - Integrated Sberbank mortgage monthly estimate extraction and verified seller badges.
- **v1.0 (2026-10)**:
  - Initial release supporting Domclick residential sales and rentals across Russian regions.

# Changelog

This Actor's version history is a separate document: https://apify.com/haketa/domclick-scraper/changelog.md

# Actor input Schema

## `searches` (type: `array`):

Cities or regions to scrape, written in Russian (e.g. Москва, Санкт-Петербург, Сочи, Казань). You can also paste a raw Domclick region GUID. Each is resolved and scraped separately.

## `dealType` (type: `string`):

Buy (sale) or rent.

## `category` (type: `string`):

Residential (living) or commercial property.

## `offerType` (type: `string`):

Residential: flat, house, room, layout (new buildings), townhouse. Commercial: office, retail, warehouse. Must match the chosen category.

## `sort` (type: `string`):

Ordering of results: relevance (qi), price, newest (published) or area.

## `sortDir` (type: `string`):

Ascending or descending order for the chosen sort field.

## `minPrice` (type: `integer`):

Only listings priced at or above this (rubles).

## `maxPrice` (type: `integer`):

Only listings priced at or below this (rubles).

## `minArea` (type: `integer`):

Only listings with total area at or above this (m²).

## `maxArea` (type: `integer`):

Only listings with total area at or below this (m²).

## `rooms` (type: `array`):

Filter by number of rooms, e.g. 1, 2, 3. Leave empty for any.

## `maxItems` (type: `integer`):

Maximum listings to save across all searches. 0 = unlimited / all available listings (governed by deep pagination).

## `maxItemsPerSearch` (type: `integer`):

Per-city cap. 0 = no per-city limit.

## `proxyConfiguration` (type: `object`):

RU RESIDENTIAL proxy is REQUIRED — Domclick is geo-sensitive and the whole domain sits behind a Qrator JS challenge. Keep the default (Apify Residential, country RU). The actor retries on a fresh Russian IP until the challenge clears.

## Actor input object example

```json
{
  "searches": [
    "Москва",
    "Санкт-Петербург",
    "Сочи"
  ],
  "dealType": "sale",
  "category": "living",
  "offerType": "flat",
  "sort": "qi",
  "sortDir": "desc",
  "rooms": [
    "1",
    "2"
  ],
  "maxItems": 30,
  "maxItemsPerSearch": 0,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "RU"
  }
}
```

# Actor output Schema

## `listings` (type: `string`):

Russian real-estate listings from Domclick — price, area, rooms, address, coordinates, metro, photos and seller.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searches": [
        "Москва"
    ],
    "maxItems": 30,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "RU"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/domclick-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searches": ["Москва"],
    "maxItems": 30,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "RU",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/domclick-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searches": [
    "Москва"
  ],
  "maxItems": 30,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "RU"
  }
}' |
apify call haketa/domclick-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,haketa/domclick-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/I5rkgXpM1kd89S05G/builds/osyxnDkIq8bxNbc9b/openapi.json
