# RealEstateIndia Scraper - India Property Listings (`sian.agency/realestateindia-property-scraper`) Actor

Scrape RealEstateIndia.com: plots, houses, flats and commercial property for sale or rent in 160 Indian cities. Price, area, BHK, locality, photos, GPS.

- **URL**: https://apify.com/sian.agency/realestateindia-property-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 1 total users, 0 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.32 / 1,000 property searches

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

## RealEstateIndia Scraper: India Plots, Houses & Flats 🚀

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![99acres Scraper](https://img.shields.io/badge/Store-99acres%20Scraper-0078DB)](https://apify.com/sian.agency/99acres-property-scraper?fpr=sian) [![MagicBricks Scraper](https://img.shields.io/badge/Store-MagicBricks%20Scraper-D8232A)](https://apify.com/sian.agency/magicbricks-property-scraper?fpr=sian) [![Housing.com Scraper](https://img.shields.io/badge/Store-Housing.com%20Scraper-7B2CBF)](https://apify.com/sian.agency/housing-com-property-scraper?fpr=sian)

#### 🎉 RealEstateIndia.com listings from 160 Indian cities: plots, independent houses, flats and commercial property, with price, area and price per sq.ft

##### For land buyers, developers, brokers and analysts who want India's tier-2 and tier-3 property market in a spreadsheet

***

### 🔎 What is the RealEstateIndia Scraper — and when should you use it?

The **RealEstateIndia Scraper** turns public RealEstateIndia.com listings of plots, houses, flats and commercial property for sale or rent in 160 Indian cities, into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.

**Use it when you need:** Indian property listings as rows, especially residential plots, farm land and independent houses in tier-2 and tier-3 cities such as Lucknow, Jaipur, Indore and Nagpur. Every search row carries the asking price in rupees, the area with its unit and in square feet, a computed price per sq.ft, BHK, locality, city, project, whether an agent, builder or owner posted it, and the photos. Open each listing in full and you also get the description, GPS, the RERA number, floor, possession status, booking amount and amenities.

**Use something else when:** you want metro flats from India's largest portals rather than RealEstateIndia's plot and house stock. Use [99acres Scraper](https://apify.com/sian.agency/99acres-property-scraper?fpr=sian) for 99acres, India's largest portal, flats, houses and plots in every big city. Use [MagicBricks Scraper](https://apify.com/sian.agency/magicbricks-property-scraper?fpr=sian) for MagicBricks listings by city and locality. This actor reads current RealEstateIndia listings only. It returns no phone numbers or emails, no owner names, and no sold or registered prices; budget and BHK filters are applied to the dataset afterwards, not on the site.

### 🤖 Use with AI agents

Already connected to the [Apify MCP server](https://mcp.apify.com)? Just ask for this Actor by name: sian.agency/realestateindia-property-scraper

**Your agent can pay for its own runs.** This Actor is eligible for [agentic payments](https://docs.apify.com/platform/actors/publishing/monetize), so an agent can discover it, run it and settle the bill over [x402](https://www.x402.org/) (USDC on Base) or [Skyfire](https://www.skyfire.xyz/) — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.

Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:

```text
I want property listings from RealEstateIndia.com in India, especially plots and houses outside the metros using the Apify Actor `sian.agency/realestateindia-property-scraper`.

Use it when I need: Indian property listings as rows, especially residential plots, farm land and independent houses in tier-2 and tier-3 cities such as Lucknow, Jaipur, Indore and Nagpur. Every search row carries the asking price in rupees, the area with its unit and in square feet, a computed price per sq.ft, BHK, locality, city, project, whether an agent, builder or owner posted it, and the photos. Open each listing in full and you also get the description, GPS, the RERA number, floor, possession status, booking amount and amenities.

Don't use it when: you want metro flats from India's largest portals rather than RealEstateIndia's plot and house stock — use 99acres-property-scraper or magicbricks-property-scraper instead.

How to call it: set `city` to a city slug such as `lucknow`, `jaipur`, `pune` or `bangalore`, optionally `locality` (for example `Gomti Nagar`), `listingType` to `sale` or `rent`, and `propertyType` (for example `residential-land`, `individual-house`, `flats-apartments` or `all`). `maxResults` sets how many listings come back. Older adverts with a hidden price are skipped unless `includePriceOnRequest` is true. `includeDetails` opens each listing for the description, GPS and RERA number, for an extra charge per listing. `searchUrls` takes RealEstateIndia results pages as [{"url": ...}] objects. To expand listings you already have, set `operation` to `detail` and pass `listingUrls`.

Start with this input:
{
  "operation": "search",
  "city": "lucknow",
  "locality": "Gomti Nagar",
  "listingType": "sale",
  "propertyType": "residential-land",
  "maxResults": 50,
  "includeDetails": false
}

Ask me which city (and locality, if any) to cover, whether I want property for sale or for rent, and which property type, then run the Actor and summarise the results as a table.
```

**Things you can ask your agent for:**

- *List residential plots for sale in Gomti Nagar, Lucknow with price per sq.ft.*
- *Find independent houses for sale in Jaipur posted by builders, with their RERA numbers.*
- *Export flats for rent in Wakad, Pune with furnishing and the advertiser type.*

Machine-readable API, MCP config and OpenAPI definition for this Actor are published at [apify.com/sian.agency/realestateindia-property-scraper.md](https://apify.com/sian.agency/realestateindia-property-scraper.md).

### 📋 Overview

**RealEstateIndia.com lists property all over India, and much of it is land and houses outside the metros.**

This actor turns those listings into rows: price in rupees, area as entered and in square feet, BHK, locality, project, who posted it and the photos.

**What you get:**

- ✅ **Supply the big portals barely show**: in a photo-matched sample across Lucknow, Jaipur and Pune, 0-3% of RealEstateIndia listings also turned up on 99acres, MagicBricks, Housing.com or NoBroker
- 🏞️ **Plots and houses first**: in Lucknow, 53% of the sale listings are residential plots and 19% independent houses
- 🎯 **Current listings only, by default**: older adverts that hide their price are skipped and never charged
- 💰 **$1.50 per 1,000 properties**: you pay per property returned, with a free tier to try it
- 🧭 **160 cities, any locality**: from Bangalore and Chennai to Lucknow, Jaipur, Indore, Nagpur and Coimbatore
- ✨ **NEW**: open each listing in full for GPS, the RERA number, floor, possession status and amenities

***

### ✨ Features

- 🏙️ **City dropdown**: all 160 cities on RealEstateIndia's city list, no slugs to look up
- 📍 **Locality search**: type a locality such as Gomti Nagar or Wakad; if the site has no page for it, the run says so
- 🏷️ **Sale or rent**: properties for sale, or for rent and lease
- 🏠 **20 property types**: flats, independent houses, villas, builder floors, residential plots, farm land, shops, offices, warehouses, factories and more
- 📏 **Price per sq.ft**: worked out from the price and the area converted to square feet
- 👤 **Advertiser type**: every row says whether an agent, a builder or an owner posted it
- 📄 **Full listing on request**: description, every photo, GPS, RERA number, floor and total floors, booking amount and amenities
- 🔗 **Paste any results page**: copy a RealEstateIndia results URL and run it as is
- 📊 **Run report**: a summary page with your links, a table of what came back and what each item cost

***

### 🎬 Quick Start

Pick a city, choose sale or rent and a property type, then press Start. Each results page holds 20 listings and the run reads as many pages as your row count needs. Results land in the dataset, ready to export as CSV, Excel or JSON.

```bash
curl -X POST "https://api.apify.com/v2/acts/sian.agency~realestateindia-property-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"city": "lucknow", "listingType": "sale", "propertyType": "residential-land", "maxResults": 50}'
```

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Pick where

Choose a city from the dropdown. Add a locality if you want one neighbourhood only.

#### Step 2: Pick what

Choose For sale or For rent and a property type, and set how many properties you want.

#### Step 3: Run and export

Press Start, then download the dataset as CSV, Excel or JSON, or read it over the API.

**That's it! In under a minute you'll have:**

- Current RealEstateIndia listings with price in rupees and area in sq.ft
- The locality, project and advertiser type on every row
- Photo links, and with the full listing, GPS and RERA numbers

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| operation | string | No | `search` (default) reads results pages, `detail` opens listing URLs you paste |
| city | string | No | One of 160 cities, default `lucknow` |
| locality | string | No | A locality inside the city, for example Gomti Nagar |
| listingType | string | No | `sale` (default) or `rent` |
| propertyType | string | No | `all` (default) or one of 19 types such as `residential-land`, `individual-house`, `flats-apartments` |
| includePriceOnRequest | boolean | No | Also collect older adverts that show "Call for Price" (off by default) |
| maxResults | integer | No | How many properties to return, default 50 |
| includeDetails | boolean | No | Open each listing for the full record, billed per listing |
| searchUrls | array | No | RealEstateIndia results pages to run instead of the fields above |
| listingUrls | array | No | Listing pages for the `detail` operation |

**Example: plots in one locality**

```json
{
  "city": "lucknow",
  "locality": "Gomti Nagar",
  "listingType": "sale",
  "propertyType": "residential-land",
  "maxResults": 100
}
```

**Example: full listings you already have**

```json
{
  "operation": "detail",
  "listingUrls": [
    { "url": "https://www.realestateindia.com/property-detail/residential-plot-for-sale-in-new-jail-road-lucknow-in-shri-gharaunda-1250-sq-ft-20-lac-1479682.htm" }
  ]
}
```

***

### 📤 Output

Results are saved to the Apify dataset with **55 fields**, including:

| Field | Type | Description |
|-------|------|-------------|
| propertyTitle | string | The listing title, for example "2 BHK 679 Sq.ft. Apartment for Sale in Wakad, Pune" |
| price | integer | Asking price in rupees |
| priceText | string | The price as the site shows it, for example "₹ 75 Lac" |
| pricePerSqft | integer | Rupees per square foot, computed |
| areaValue / areaUnit / areaSqft | number / string / integer | Area as entered, its unit, and in square feet |
| areaType | string | Carpet, built-up, super or plot area |
| bedrooms / bathrooms / balconies | integer | BHK and room counts |
| locality / city | string | Where the property is |
| projectName | string | The project or society, when given |
| advertiserType | string | Agent, Builder or Owner |
| advertiserName | string | The agent or builder (never an individual owner's name) |
| imageUrls / photoCount | array / integer | Photo links and how many there are |
| postedDate | string | Posting date, when the site shows one |
| latitude / longitude | number | GPS, with the full listing |
| reraNumber | string | RERA registration, with the full listing |
| constructionStatus | string | Ready to move or under construction, with the full listing |

**Example (full listing):**

```json
{
  "listingId": "1517439",
  "listingUrl": "https://www.realestateindia.com/property-detail/2bkh-flats-apartments-for-sale-in-wakad-pune-75-lac-1517439.htm",
  "propertyTitle": "2 BHK 679 Sq.ft. Apartment for Sale in Wakad, Pune",
  "listingType": "sale",
  "propertyType": "Flat",
  "bedrooms": 2,
  "bathrooms": 2,
  "price": 7500000,
  "priceText": "₹ 75 Lac",
  "currency": "INR",
  "pricePerSqft": 11046,
  "areaType": "Carpet Area",
  "areaValue": 679,
  "areaUnit": "Sq.ft",
  "areaSqft": 679,
  "city": "Pune",
  "locality": "Wakad",
  "projectName": "Roshan Milestone",
  "furnishing": "Unfurnished",
  "saleType": "Resale",
  "constructionStatus": "Ready to Move",
  "floor": "5th",
  "totalFloors": 15,
  "latitude": 18.5989,
  "longitude": 73.7653,
  "amenities": ["Car Parking", "Power Backup", "24 x 7 Security", "Lift"],
  "imageUrls": ["https://dynamic.realestateindia.com/prop_images/19935/1517439_1.jpg"],
  "photoCount": 8,
  "postedDate": "2026-09-30",
  "advertiserType": "Agent",
  "advertiserName": "Estate Mediators",
  "hasDetail": true,
  "status": "success"
}
```

***

### 💼 Use Cases & Examples

#### 1. Plot and land supply in tier-2 cities

**Land buyers and developers track residential plots where the flat-focused portals are thin.**

**Input:** City Lucknow, property type Residential plots
**Output:** Current plot listings with price, size in sq.ft, price per sq.ft, locality and project
**Use:** Compare plot rates across localities before buying or launching a layout

#### 2. Listings the big four portals don't carry

**Analysts add a source that mostly does not overlap with 99acres, MagicBricks, Housing.com or NoBroker.**

**Input:** The same city and type you already pull from the big portals
**Output:** Rows that are mostly new to your dataset (0-3% photo matches in our sample)
**Use:** Fuller market coverage for price indices and supply studies

#### 3. Builder and broker lead lists

**Sales teams see which agents and builders are active, and where.**

**Input:** A city and property type, for example shops for sale in Indore
**Output:** Every listing with the advertiser's type, name and profile page
**Use:** Group by advertiser to find the most active brokers and builders per locality

#### 4. Price per sq.ft by locality

**Valuers and investors get a quick rate map of a city.**

**Input:** A city, For sale, Flats / apartments, 500 rows
**Output:** Price, area in sq.ft and price per sq.ft on each row
**Use:** Average by locality in a spreadsheet for a first view of the market

#### 5. New projects and RERA checks

**Buyers' advisers check projects before recommending them.**

**Input:** A locality search with "Open each listing in full" on
**Output:** RERA number, possession status, total floors and booking amount
**Use:** Cross-check each project against the state RERA register

#### 6. Rental market snapshots

**Relocation firms and landlords watch rents.**

**Input:** City Pune, For rent, Flats / apartments
**Output:** Rent, furnishing, facing, BHK and locality for each flat
**Use:** Track asking rents by locality month by month on a schedule

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/realestateindia-property-scraper').call({
  city: 'jaipur',
  listingType: 'sale',
  propertyType: 'individual-house',
  maxResults: 100,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/realestateindia-property-scraper').call(
    run_input={'city': 'jaipur', 'listingType': 'sale', 'propertyType': 'individual-house', 'maxResults': 100}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item['propertyTitle'], item.get('price'), item.get('pricePerSqft'))
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~realestateindia-property-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN' \
  -H 'Content-Type: application/json' \
  -d '{"city": "pune", "locality": "Wakad", "listingType": "rent", "propertyType": "flats-apartments", "maxResults": 50}'
```

#### Automation Workflows (n8n / Zapier / Make)

1. **Trigger**: a schedule, for example every Monday morning
2. **HTTP Request**: call the run-sync endpoint above with your city and type
3. **Process**: keep rows whose listingId you have not seen before
4. **Action**: write them to Google Sheets, Airtable or your CRM, or post a summary to Slack

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **25 properties** per run, every field included
- No credit card required
- Enough to check a city or locality before you scale up

#### PAID Tier (Production Ready)

- **Unlimited** properties per run
- **$1.50 per 1,000 properties** returned, plus $3.00 per 1,000 full listings when you turn that on
- A small fee per run start; listings that were skipped or could not be read are never charged

💰 **Priced like our other India property actors**: the same $1.50 per 1,000 as our 99acres actor.

🔗 [View current pricing](https://apify.com/sian.agency/realestateindia-property-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: Why do I get fewer listings than the site's page count?**
A: RealEstateIndia keeps old adverts online for years with "Call for Price" in place of a price. By default the actor returns listings that show a price, which are the current ones, and stops once a results page has none. Turn on "Include listings without a price" to collect the older adverts too.

**Q: Do I get phone numbers or emails?**
A: No. They sit behind the site's enquiry form and the actor does not collect them. Rows name the agent or builder and link to their profile. For listings posted by an individual owner, only "Owner" is recorded.

**Q: Which cities are covered?**
A: All 160 cities on RealEstateIndia's city list, picked from the City dropdown. You can also paste any results page into Search page URLs.

**Q: How do I search one locality?**
A: Type it in Locality the way the site writes it, for example Gomti Nagar. If RealEstateIndia has no page for that locality, the run tells you instead of returning the whole city.

**Q: Is the price per sq.ft from the site?**
A: No. It is computed from the price and the area in square feet, because the site's own per-sq.ft line is wrong for some plots.

**Q: What output formats are available?**
A: JSON, CSV, Excel, XML and HTML, straight from the Apify dataset or over the API.

**Q: How long does a run take?**
A: About a second per results page of 20 listings, plus about a second per listing when you open listings in full.

***

### 🐛 Troubleshooting

**The run returned fewer rows than I asked for**

- That search has fewer current listings than your row count. Check the run log: it says how many older adverts were skipped.
- Turn on "Include listings without a price" if you want those older adverts too.

**"RealEstateIndia has no page for the locality"**

- Open the city on realestateindia.com and copy the locality name from one of its locality links.
- Or leave Locality empty to search the whole city.

**A pasted URL was skipped**

- Paste a results page (a city or locality page ending in -for-sale.htm or -for-rent.htm), not the site's search box.

**A listing in detail mode came back as not found**

- The advertiser has taken it down. Run a search to get the current listings.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union, by India's **Digital Personal Data Protection Act** and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. Listing text and photos belong to their advertisers; use them for analysis, not for republishing.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

RealEstateIndia is a trademark of its owner. This actor is not affiliated with, endorsed by, or sponsored by RealEstateIndia.com or Weblink.In Pvt. Ltd.

***

### 🤝 Support

**Join our active support community**

- For issues or questions, open an issue on the actor's [Issues tab](https://apify.com/sian.agency/realestateindia-property-scraper/issues)
- Check [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Changelog

This Actor's version history is a separate document: https://apify.com/sian.agency/realestateindia-property-scraper/changelog.md

# Actor input Schema

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

Property Search reads RealEstateIndia results pages. Property Detail opens the listing addresses you paste in Listing URLs.

## `city` (type: `string`):

The city to search. RealEstateIndia covers 160 cities, metros and smaller towns alike. Leave Locality empty to read the whole city.

## `locality` (type: `string`):

One locality inside the city, written the way the site names it, for example Gomti Nagar, Wakad, Jagatpura or Whitefield. Leave empty for the whole city. If the site has no page for that locality the run says so instead of returning the whole city.

## `listingType` (type: `string`):

Properties for sale, or properties for rent and lease.

## `propertyType` (type: `string`):

Narrow the search to one property type. All property types returns everything the site lists in that city: plots, houses, flats and commercial.

## `includePriceOnRequest` (type: `boolean`):

Older RealEstateIndia adverts stay on the site for years with the price replaced by 'Call for Price'. Off by default, so you get current listings with a price. Turn it on to also collect those older adverts (they carry area, BHK, locality and photos, but no price).

## `maxResults` (type: `integer`):

How many listings to return. One results page holds 20. Free accounts stop at 25.

## `includeDetails` (type: `boolean`):

Opens every listing for the full description, every photo, GPS, RERA registration, floor, possession status, booking amount and amenities. Billed as one Property Detail on top of the search row.

## `searchUrls` (type: `array`):

Paste RealEstateIndia results pages instead of using the fields above, for example https://www.realestateindia.com/lucknow-property/residential-land-for-sale-in-gomti-nagar.htm . One URL per line.

## `listingUrls` (type: `array`):

For Property Detail: RealEstateIndia listing addresses, for example https://www.realestateindia.com/property-detail/residential-plot-for-sale-in-new-jail-road-lucknow-in-shri-gharaunda-1250-sq-ft-20-lac-1479682.htm . One per line.

## Actor input object example

```json
{
  "operation": "search",
  "city": "lucknow",
  "listingType": "sale",
  "propertyType": "all",
  "includePriceOnRequest": false,
  "maxResults": 50,
  "includeDetails": false
}
```

# Actor output Schema

## `realestateindiaProperties` (type: `string`):

Every property this run returned.

## `scrapingSummary` (type: `string`):

HTML summary showing successful and failed results with key metrics

# 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 = {
    "operation": "search",
    "city": "lucknow",
    "listingType": "sale",
    "propertyType": "all",
    "includePriceOnRequest": false,
    "maxResults": 50,
    "includeDetails": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/realestateindia-property-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 = {
    "operation": "search",
    "city": "lucknow",
    "listingType": "sale",
    "propertyType": "all",
    "includePriceOnRequest": False,
    "maxResults": 50,
    "includeDetails": False,
}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/realestateindia-property-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 '{
  "operation": "search",
  "city": "lucknow",
  "listingType": "sale",
  "propertyType": "all",
  "includePriceOnRequest": false,
  "maxResults": 50,
  "includeDetails": false
}' |
apify call sian.agency/realestateindia-property-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,sian.agency/realestateindia-property-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/zf7WmIlAve0Pr5FBS/builds/zdfIjMORC0TfWTld8/openapi.json
