# House.kg Real Estate Scraper: Kyrgyzstan Listings & New Builds (`recordsdata/house-kg-scraper`) Actor

Scrape House.kg real estate in Kyrgyzstan: sale and rent listings with prices in USD and KGS, areas, rooms, coordinates and photos, plus agencies, developers and new-build complexes. Export CSV, Excel, JSON, XML.

- **URL**: https://apify.com/recordsdata/house-kg-scraper.md
- **Developed by:** [RecordsData](https://apify.com/recordsdata) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $18.00 / 1,000 property listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

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

![RecordsData](https://api.apify.com/v2/key-value-stores/AAm3a1h3Z9nYfrvh9/records/banner?v=3)

## 🏠 House.kg Real Estate Scraper: Kyrgyzstan Listings, Agencies & New Builds

> **House.kg Real Estate Scraper exports property ads from house.kg, the main real estate portal of Kyrgyzstan, as structured data: price in USD and KGS, area, rooms, floor, district, coordinates, photos and seller type. It also returns agencies, developers and new-build complexes. Export CSV, Excel, JSON or XML with no login and no proxy.**

The House.kg Real Estate Scraper turns the Kyrgyz property market into a dataset you can filter, sort and join. On 2026-10-11 the live catalog held 25,347 ads: 21,422 for sale and 3,925 for rent, among them 15,946 apartments, 3,930 houses, 3,046 land plots and 2,146 commercial properties. Behind them stand 188 agency, realtor and developer accounts with ads, 386 developers in the builder directory and 1,068 new-build complexes. The Actor reads the same embedded JSON that the house.kg pages use to draw themselves, so there is no browser, no HTML selector and no proxy in the way.

### 🎯 What does the House.kg scraper do?

- Scrapes **house.kg property ads**: apartments, houses, rooms, land plots, dachas, commercial property and parking or garages, for sale and for rent (daily rentals included).
- Returns **the price in both currencies** (`priceKgs` and `priceUsd`, next to the price as the seller entered it), the price per square meter and per sot, the previous price with the percent change, and how far the price sits from the market average of similar ads.
- Gives **address, cross street, neighborhood, district, city, region and exact latitude and longitude** of the ad. District and neighborhood names are looked up for you, because the site only stores their ids.
- Returns **rooms, built, living, kitchen and land area, floor and total floors, year, building series and material, heating, ceiling height, furnishing, parking, utilities, documents, safety and amenities**, in Russian or English.
- Tells you **who sells**: private owner, agent, agency, realtor or developer, with the agency name, page, logo, address, rating and verified status for business ads. The new-build complex and its developer are attached to each ad that belongs to one.
- Filters by **operation, property type, town or region, Bishkek district, rooms, price, area, land area, floor and floor position, building type, condition, owner only, photo, video, mortgage, installment, exchange, price below market, posting date, keyword, agency and sort order**.
- Starts from **search page URLs, ad URLs, agency pages, developer pages or complex pages**, so a search you built on house.kg can be replayed as it is.
- Builds **agency rows**, **developer rows** (with their project list) and **new-build complex rows** (developer, deadline, price per m2, building facts, unit types).
- Has an **only-new mode** for scheduled runs: you get just the ads that were not in your previous run of the same search.

### 📊 House.kg property data: which fields do you get?

Every row is one record with `recordType` set to `listing`, `agency`, `developer` or `complex`. The dataset has 142 columns in total. A typical listing row carries 55 to 85 of them, depending on what the ad states. A missing value means the ad does not state it: the key is left out and never filled with a placeholder.

| Group | Fields |
|---|---|
| Identity | `listingId`, `url`, `title`, `recordType`, `operation`, `propertyType`, `language`, `sourceSite`, `scrapedAt` |
| Price | `price`, `currency`, `pricePeriod`, `priceKgs`, `priceUsd`, `pricePerM2`, `pricePerM2Kgs`, `pricePerM2Usd`, `pricePerSot`, `previousPrice`, `priceChangePercent`, `priceVsMarketPercent`, `priceQuotedPerArea` |
| Deal terms | `acceptsMortgage`, `hasInstallment`, `exchange`, `rentalTerm` |
| Location | `address`, `crossStreet`, `neighborhood`, `district`, `districtId`, `microDistrictId`, `city`, `cityId`, `region`, `regionId`, `country`, `latitude`, `longitude` |
| Property | `condition`, `rooms`, `roomsLabel`, `areaBuilt`, `areaLiving`, `areaKitchen`, `areaLand`, `areaLandSot`, `floor`, `floorLabel`, `totalFloors`, `yearBuilt`, `series`, `material`, `buildingType`, `heating`, `ceilingHeight`, `furnished`, `furnishing`, `flooring`, `toilet`, `balcony`, `entranceDoor`, `parking`, `parkingType`, `commercialType`, `roomLocation` |
| Land and utilities | `gas`, `water`, `electricity`, `sewage`, `internet`, `phoneLine`, `landAmenities`, `landOptions`, `landLocation`, `irrigation`, `amenities`, `documents`, `safety`, `cadastreNumber`, `cadastreAddress` |
| Seller | `sellerType`, `isPrivateSeller`, `agencyId`, `agencyName`, `agencyUrl`, `agencyType`, `agencyLogoUrl`, `agencyAddress`, `agencyRating`, `agencyReviewCount`, `agencyVerified` |
| New-build link | `isNewBuilding`, `complexId`, `complexName`, `complexUrl`, `developerName`, `developerUrl` |
| Ad status | `isVip`, `isPremium`, `isUrgent`, `isTop`, `stickers`, `views`, `phoneViews`, `favorites`, `comments`, `publishedAt`, `updatedAt`, `bumpedAt` |
| Media and text | `imageUrl`, `images`, `imageCount`, `videoUrl`, `description` |
| Agencies and developers | `agencyId`, `developerId`, `title`, `address`, `website`, `instagram`, `facebook`, `youtube`, `schedule`, `foundedYear`, `saleListingCount`, `rentListingCount`, `listingCount`, `projectCount`, `projects`, `rating`, `reviewCount`, `isVerified`, `logoUrl`, `coverImageUrl` |
| New-build complexes | `complexId`, `developerId`, `finishing`, `completion`, `buildingClass`, `projectState`, `flatCount`, `unitTypes`, `totalFloors`, `pricePerM2` |
| Business contact (optional) | `agencyPhone`, `phones`, `email` |

Fill rates on 175 live ads from eight searches on 2026-10-11 (sale and rent, all seven property types): price in both currencies, city, coordinates, views and timestamps 100 percent, photos 99 percent, description 93 percent, price per m2 93 percent, built area 86 percent (land has none), rooms 79 percent, condition 78 percent, floor 77 percent, neighborhood 77 percent, address 75 percent, district 67 percent (house.kg names districts for Bishkek only), year built 48 percent, agency name 25 percent (the rest are private sellers).

### 🧾 House.kg listing example: what does a real result look like?

A real listing row (default settings, 2026-10-11; the photo list and the description are shortened):

```json
{
  "imageUrl": "https://cdn.house.kg/house/images/f/7/2/f722555f62358eb157e982961ab484fb_1200x900.jpg",
  "recordType": "listing",
  "listingId": "1191177",
  "agencyId": "1058",
  "complexId": "897",
  "url": "https://www.house.kg/details/91117036ab0b4c8c1e283-30788877",
  "title": "Продажа: 2-комн. квартира, 150 м², Бишкек, Магистраль",
  "operation": "sale",
  "propertyType": "apartment",
  "condition": "под самоотделку (ПСО)",
  "price": 225000,
  "currency": "USD",
  "pricePeriod": "once",
  "priceKgs": 19707750,
  "priceUsd": 225000,
  "pricePerM2": 1500,
  "pricePerM2Kgs": 131385,
  "pricePerM2Usd": 1500,
  "priceVsMarketPercent": -15.82,
  "address": "Бишкек, Токомбаева 21/6",
  "neighborhood": "Магистраль",
  "district": "Октябрьский район",
  "districtId": 2,
  "microDistrictId": 145,
  "city": "Бишкек",
  "cityId": 2,
  "region": "Чуйская область / Бишкек",
  "regionId": 1,
  "country": "KG",
  "latitude": 42.8147,
  "longitude": 74.6183,
  "rooms": 2,
  "roomsLabel": "2",
  "areaBuilt": 150,
  "floor": 2,
  "totalFloors": 16,
  "yearBuilt": 2028,
  "series": "индивид. планировка",
  "buildingType": "монолитный",
  "heating": "автономное",
  "furnished": false,
  "furnishing": "пустая",
  "isNewBuilding": true,
  "complexName": "ЖК \"Москва Сити\"",
  "complexUrl": "https://www.house.kg/jilie-kompleksy/moskva",
  "developerName": "Авангард Стиль",
  "developerUrl": "https://www.house.kg/zastroishiki/avangard-stil",
  "sellerType": "developer",
  "isPrivateSeller": false,
  "agencyName": "Avangard style",
  "agencyUrl": "https://www.house.kg/business/avangard-style",
  "agencyType": "developer",
  "agencyVerified": false,
  "views": 424,
  "phoneViews": 0,
  "favorites": 0,
  "comments": 0,
  "imageCount": 14,
  "images": ["https://cdn.house.kg/house/images/f/7/2/f722555f62358eb157e982961ab484fb_1200x900.jpg"],
  "description": "2-комнатная квартира в ЖК «Москва Сити», блок 4, подъезд 2, 2 этаж...",
  "publishedAt": "2026-09-21T04:38:32.000Z",
  "updatedAt": "2026-09-21T04:38:32.000Z",
  "bumpedAt": "2026-10-11T04:59:50.000Z",
  "language": "ru",
  "sourceSite": "house.kg",
  "scrapedAt": "2026-10-11T10:57:28.060Z"
}
```

Prices are plain numbers. `price` and `currency` are the price as the seller typed it (USD or KGS), `priceKgs` and `priceUsd` are both given by house.kg for every ad. Dates are ISO 8601 in UTC (house.kg shows Bishkek time, UTC+6, and the Actor converts it). `areaLand` is in square meters and `areaLandSot` in sot (1 sot is 100 square meters, the local land unit). With `language` set to English the labels (condition, heating, district, series) come out in English; the text the seller typed stays as written.

### 🚀 How to scrape House.kg in 4 steps

1. Create a free account at [console.apify.com](https://console.apify.com) and open this Actor.
2. Pick what to collect (listings, agencies, developers or complexes), then the operation (sale, rent or both), property types, places and filters. Leave everything empty to get the most recently refreshed ads across the whole country.
3. Set **Max Items** and press Start. A 3-listing run finishes in a few seconds.
4. Download the dataset as CSV, Excel, JSON or XML, or read it through the Apify API.

To read one ad, one agency or one complex, paste its house.kg URL in **Start URLs**. To reuse a search you built on house.kg, paste the search page URL: region, town, district, rooms, price, area, floor, condition, seller and sort filters in the address are understood.

### 📈 House.kg scraper vs alternatives

| Option | Structured ads with prices in both currencies | Agencies, developers and new-build complexes | Search filters | Scheduled new-ad alerts |
|---|---|---|---|---|
| This Actor | Yes, 142 columns over four record types | Yes, directory rows, project lists and unit types | Operation, type, place, rooms, price, area, floor, condition, seller and more | Yes (only-new mode) |
| Another house.kg Actor on the Apify Store | None found on 2026-10-11 | n/a | n/a | n/a |
| A generic web crawler | Page text or custom selectors, no typed schema | No | None, you rebuild the filters | No |
| Browsing house.kg by hand | One ad at a time | One page at a time | Site filters, no export | No |

### 💼 House.kg scraper use cases

- **Real estate investors**: compare `pricePerM2Usd` across Bishkek micro-districts, new build against resale, and spot ads priced far below market with the `priceVsMarketPercent` column or the below-market filter.
- **Agents and brokers**: watch new ads in a district with the only-new mode and send them to a CRM or spreadsheet.
- **Developers and builders**: read competitor complexes (deadline, price per m2, unit types, project state) and follow the ads that sell them.
- **Market researchers and analysts**: track asking prices, ad counts and price cuts by town, property type and operation over time with scheduled runs.
- **Agency analysis and lead research**: list the 188 business accounts with address, schedule, rating and active ads, and see who holds the most stock in an area.
- **Proptech and portal builders**: feed an aggregator for Central Asia with a clean, typed schema.

### 🔌 House.kg scraper API, MCP and integrations

Run it from any language through the Apify API:

```bash
curl -X POST "https://api.apify.com/v2/acts/RecordsData~house-kg-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"operation":"rent","propertyTypes":["apartment"],"locations":["Бишкек"],"rooms":["2"],"maxPrice":600,"maxItems":50}'
```

Connect it to Make, Zapier, n8n, Google Sheets or Slack with the standard Apify integrations, or let an AI agent call it through the Apify MCP server: `https://mcp.apify.com?tools=RecordsData/house-kg-scraper`.

### ⚖️ Is it legal to scrape House.kg?

The Actor reads the public pages that house.kg shows to every visitor, without logging in and without a key, at about two requests at a time. It does not touch the paths that the site's robots.txt closes (the API, login, profile, messages, favorites, settings and create paths). Private sellers' names, phone numbers and e-mails are never output, and phone numbers, e-mails and messenger links typed into a description are masked. Agency and developer pages are business information; their phone numbers and e-mails are returned only if you turn on the contact option. This is not legal advice: check the site terms and the rules that apply to your use of the data.

### FAQ: House.kg scraper questions and answers

**Does the House.kg scraper need a proxy or a house.kg account?**
No. It reads the public pages with plain requests, two at a time. It needs no login, no API key and no proxy, and test runs from the Apify cloud finished without a single blocked request. A proxy field exists only as a fallback in case the site starts refusing requests.

**How many listings does house.kg have?**
On 2026-10-11 the live catalog held 25,347 ads: 21,422 for sale and 3,925 for rent. The number moves every day, so schedule the Actor to follow it. The Actor reports the total of each search in the log.

**How fast is it?**
House.kg serves one page of 20 ads in about a second, and that sets the pace. In a test run, 400 ads came out in 19 seconds without name lookups and in 80 seconds with them on (each new district, micro-district or complex name costs one light extra request, then it is cached for the run). Turn off **Resolve district and complex names** for the fastest pass.

**Can I get old or expired listings?**
No. House.kg removes ads that expire and serves nothing for them, so the Actor returns the live catalog only. A link to an ad that is gone returns one free error row. To keep a history, schedule a run every day or week and store the datasets.

**How do I filter by district?**
House.kg has districts for Bishkek only: Oktyabr (Октябрьский), Pervomay (Первомайский), Sverdlov (Свердловский) and Lenin (Ленинский). Type them in **Districts of Bishkek**, in either language. Other towns and regions go in **Towns and regions**, one search per place. Every search is checked: if the site ignored a filter, that search is skipped and reported instead of returning ads that do not match.

**What currency are the prices in, and what is a sot?**
Sellers enter a price in US dollars or Kyrgyz som, and every row gives both (`priceUsd` and `priceKgs`) next to the original `price` and `currency`. For some land and commercial ads the seller types the price per square meter or per sot; `priceQuotedPerArea` flags those rows and `price` is then the total. A sot is 100 square meters: `areaLandSot` shows it and `areaLand` shows square meters. For rentals, `pricePeriod` says `month` or `day`.

**Does it return phone numbers?**
Not by default, and never for private sellers. Phones typed into descriptions are masked. For agencies and developers, **Include business contact data** adds the business phone numbers and e-mail from their public page, and the agency phone on its ads. Contacts of individual realtors are never output.

**What are the agency, developer and complex rows?**
An agency row is one business account of the directory (agency, realtor or developer) with address, schedule, social links, rating and the count of its sale and rent ads. A developer row is one builder with the list of its projects. A complex row is one new-build complex with the developer, deadline, price per m2, building facts and unit types.

**Why are some fields empty on a listing?**
Because the ad does not state them. Land has no rooms or floor, parking has no area, and many sellers skip the year, the heating or the series. The key is then absent.

**How do I get only the new house.kg ads every day?**
Turn on **Only new rows** and schedule the Actor. It remembers the ads it already returned for the same search in a store of your own account and skips them, and you are not charged for skipped rows. Use **Forget previously seen rows** to start over.

**How do I get help or ask for a missing field?**
Write to contact.punkrecordsdata@gmail.com with the search you ran and the field you need. Bug reports with a run link are the fastest to fix.

**In what order do the rows come out?**
For a plain search, ads come in the order house.kg shows them (most recently refreshed first), one property type after the other. Pick a sort order (newest, price, price per m2, views) for a strict order. When you ask for several record types, listings come first, then agencies, then developers and complexes.

> **⚠️ Disclaimer:** independent tool, not affiliated with house.kg; only publicly available data.

**🆘 Need Help?** contact.punkrecordsdata@gmail.com

# Actor input Schema

## `startUrls` (type: `array`):

Optional house.kg pages to read: an ad (house.kg/details/...), an agency page (house.kg/business/...), an agency list (house.kg/business/companies, house.kg/realtors, house.kg/developers), a developer page (house.kg/zastroishiki/...), a new-build complex page (house.kg/jilie-kompleksy/...) or any search page such as house.kg/kupit-kvartiru?rooms=2\&district=4 or house.kg/snyat-dom. A search URL brings its own filters, so the filters below are ignored for it. Leave empty to search with the filters below.

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

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000

## `recordTypes` (type: `array`):

What to return. Listings: one row per ad (price in both currencies, area, rooms, floor, place, coordinates, photos, seller type, price history). Agencies: one row per real estate agency, specialist or developer account with ads (address, schedule, rating, ad counts). Developers: one row per builder (projects, founding year, links). Complexes: one row per new-build housing complex (developer, deadline, price per m2, building facts, unit types). Every row counts toward Max Items; rows come in the order listed here.

## `language` (type: `string`):

Language of the labels and titles in the rows (condition, heating, district names, building type and so on) and of the URLs. Names that people typed, such as descriptions, agency names and street names, stay as written on the site.

## `resolveNames` (type: `boolean`):

House.kg gives districts, micro-districts and new-build complexes inside an ad only as ids. When on, the actor looks their names up (a few light extra requests per run, cached) so rows carry district, neighborhood, complexName and developerName. Turn off for the fastest pass; those names are then missing but the ids stay.

## `operation` (type: `string`):

Sale, rent, or both. Every row says which one it is in the operation field. Daily rent ads are part of rent.

## `propertyTypes` (type: `array`):

Only these property types. Leave empty for all seven.

## `locations` (type: `array`):

Only ads in these places. Write a town or region as on house.kg, in Russian or English: Бишкек / Bishkek, Ош / Osh, Каракол, Чолпон-Ата, Чуйская область, Иссык-Кульская область. You can also write town:2 or region:1 with the numeric id. House.kg filters one place at a time, so each place is scanned in turn and a place that is a town is preferred over a region of the same name.

## `districts` (type: `array`):

Only ads in these districts of Bishkek: Октябрьский, Первомайский, Свердловский, Ленинский (Oktyabr, Pervomay, Sverdlov, Lenin; either language works). House.kg has districts for Bishkek only. Leave empty for the whole city.

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

Only ads with these room counts (6 means six or more). Leave empty for any.

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

Lowest price in the currency chosen below. 0 or empty means no minimum.

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

Highest price in the currency chosen below. 0 or empty means no maximum.

## `priceCurrency` (type: `string`):

Currency of the minimum and maximum price: US dollars or Kyrgyz som. Every row carries the price in both currencies whatever you pick here.

## `minArea` (type: `number`):

Smallest built or living area in square meters. 0 or empty means no minimum.

## `maxArea` (type: `number`):

Largest built or living area in square meters. 0 or empty means no maximum.

## `minLandArea` (type: `number`):

Smallest plot in sot (1 sot = 100 m2) for land, houses and dachas. 0 or empty means no minimum.

## `maxLandArea` (type: `number`):

Largest plot in sot (1 sot = 100 m2). 0 or empty means no maximum.

## `minFloor` (type: `integer`):

Lowest floor of the unit. 0 or empty means no minimum.

## `maxFloor` (type: `integer`):

Highest floor of the unit. 0 or empty means no maximum.

## `floorPosition` (type: `string`):

Exclude the top floor of the building, or keep only the top floor.

## `buildingTypes` (type: `array`):

Only buildings of these types. Leave empty for any.

## `conditions` (type: `array`):

Only units in these conditions. Leave empty for any.

## `onlyNewBuildings` (type: `boolean`):

Only ads in new-build complexes.

## `onlyOwners` (type: `boolean`):

Only ads posted by private owners, no agencies.

## `onlyWithPhoto` (type: `boolean`):

Only ads that have at least one photo.

## `onlyWithVideo` (type: `boolean`):

Only ads that carry a video.

## `onlyMortgage` (type: `boolean`):

Only ads where the seller accepts a mortgage purchase.

## `onlyInstallment` (type: `boolean`):

Only ads where the seller offers installment payment.

## `onlyExchange` (type: `boolean`):

Only ads where the seller is open to an exchange.

## `belowMarketPercent` (type: `string`):

Only ads priced at least this much below the average price per m2 of similar units, as house.kg computes it. 0 means no filter.

## `postedWithin` (type: `string`):

Only ads created in this period.

## `searchText` (type: `string`):

Free text searched in the ads (a street, a complex name, a word such as ремонт). For the agencies and developers record types it keeps only the names that contain it.

## `agencies` (type: `array`):

Only ads of these agencies, specialists or developers. Write the account name as on house.kg/business/companies (part of the name is enough) or its slug. Each agency is scanned in turn.

## `sortBy` (type: `string`):

Order of the ads. Recently refreshed is the site default and puts every bumped ad first; Newest first orders by the date the ad was created.

## `updatedSince` (type: `string`):

Only ads created, edited or refreshed after this moment, as a date (2026-10-01) or date and time (2026-10-01T08:00:00+06:00). A time without a zone is read as Bishkek time (UTC+6). With the default sort the scan stops early once the older ads begin.

## `maxRunSeconds` (type: `integer`):

Stop collecting after this many seconds and return what was gathered, so a very wide search never runs unbounded. House.kg serves about one results page per second.

## `onlyNew` (type: `boolean`):

Only new rows: skip every ad, agency, developer or complex this same search already returned in an earlier run, so a scheduled run returns just the new ones and you are not charged for skipped rows. Max Items then means N new rows. Off by default.

## `stateKey` (type: `string`):

Name of this monitor. Leave empty to derive it from your filters. Use a name to run two monitors with the same filters.

## `resetSeen` (type: `boolean`):

Clear the saved list for this monitor before the run, so everything counts as new again.

## `includeContactDetails` (type: `boolean`):

Keep the public contact data of businesses: phone numbers and e-mail of agencies and developers, the agency phone on its ads, and numbers written inside business descriptions. Private sellers' phones, names and e-mails are always removed, whatever this says. Off by default.

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

Not needed: house.kg is read directly from the Apify cloud. Switch it on only as a fallback if the site starts refusing requests; the actor then sends them through the Apify proxy you choose.

## Actor input object example

```json
{
  "startUrls": [],
  "maxItems": 10,
  "recordTypes": [
    "listings"
  ],
  "language": "ru",
  "resolveNames": true,
  "operation": "sale",
  "propertyTypes": [],
  "locations": [],
  "districts": [],
  "rooms": [],
  "minPrice": 0,
  "maxPrice": 0,
  "priceCurrency": "usd",
  "minArea": 0,
  "maxArea": 0,
  "minLandArea": 0,
  "maxLandArea": 0,
  "minFloor": 0,
  "maxFloor": 0,
  "floorPosition": "any",
  "buildingTypes": [],
  "conditions": [],
  "onlyNewBuildings": false,
  "onlyOwners": false,
  "onlyWithPhoto": false,
  "onlyWithVideo": false,
  "onlyMortgage": false,
  "onlyInstallment": false,
  "onlyExchange": false,
  "belowMarketPercent": "0",
  "postedWithin": "any",
  "searchText": "",
  "agencies": [],
  "sortBy": "recentlyUpdated",
  "updatedSince": "",
  "maxRunSeconds": 3600,
  "onlyNew": false,
  "stateKey": "",
  "resetSeen": false,
  "includeContactDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

Key fields per row

## `fullData` (type: `string`):

Complete dataset with all fields

# 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 = {
    "startUrls": [],
    "maxItems": 10,
    "recordTypes": [
        "listings"
    ],
    "language": "ru",
    "operation": "sale",
    "locations": [],
    "districts": [],
    "priceCurrency": "usd",
    "floorPosition": "any",
    "belowMarketPercent": "0",
    "postedWithin": "any",
    "agencies": [],
    "sortBy": "recentlyUpdated",
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("recordsdata/house-kg-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 = {
    "startUrls": [],
    "maxItems": 10,
    "recordTypes": ["listings"],
    "language": "ru",
    "operation": "sale",
    "locations": [],
    "districts": [],
    "priceCurrency": "usd",
    "floorPosition": "any",
    "belowMarketPercent": "0",
    "postedWithin": "any",
    "agencies": [],
    "sortBy": "recentlyUpdated",
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("recordsdata/house-kg-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 '{
  "startUrls": [],
  "maxItems": 10,
  "recordTypes": [
    "listings"
  ],
  "language": "ru",
  "operation": "sale",
  "locations": [],
  "districts": [],
  "priceCurrency": "usd",
  "floorPosition": "any",
  "belowMarketPercent": "0",
  "postedWithin": "any",
  "agencies": [],
  "sortBy": "recentlyUpdated",
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call recordsdata/house-kg-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,recordsdata/house-kg-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/LeYTIEQjTZh4Ryzz5/builds/CrXtCEIcqMA9eTQG0/openapi.json
