# MagicBricks Property Scraper - India Buy & Rent Listings (`sian.agency/magicbricks-property-scraper`) Actor

Scrape MagicBricks listings in any Indian city: price, BHK, carpet area, floor, furnishing, possession, GPS, amenities and the posting owner or agent. Buy and rent.

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

## Pricing

from $1.06 / 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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## MagicBricks Property Scraper - India Buy & Rent Listings 🏘️

[![Store SIÁN Agency](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![Store Idealista](https://img.shields.io/badge/Store-Idealista%20Property-E60023)](https://apify.com/sian.agency/smart-idealista-scraper?fpr=sian) [![Store Zillow](https://img.shields.io/badge/Store-Zillow%20Property%20Detail-1F4E79)](https://apify.com/sian.agency/zillow-property-detail-scraper?fpr=sian) [![Store MENA Property](https://img.shields.io/badge/Store-MENA%20Property%20Gateway-93D500)](https://apify.com/sian.agency/mena-property-gateway?fpr=sian)

#### 🎉 30 complete listings per request — price, BHK, carpet area, GPS and the posting owner or agent

##### Built for Indian property analysts, brokers and proptech teams who need the whole micro-market, not one page of it

***

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

The **MagicBricks Property Scraper** turns any MagicBricks search on India's largest property portal 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:** asking prices in rupees, price per square foot, BHK, carpet and super area, floor out of total floors, possession status, transaction type, furnishing, ownership, society and developer, for property to buy or to rent in any Indian city. Every row also carries GPS coordinates, amenities, photos and the name and type of whoever posted it — Owner, Dealer or Builder.

**Use something else when:** the property is outside India. Use [MENA Property Gateway](https://apify.com/sian.agency/mena-property-gateway?fpr=sian) for the Gulf, where Bayut and Dubizzle carry the inventory. Use [Smart Idealista Scraper](https://apify.com/sian.agency/smart-idealista-scraper?fpr=sian) for Spain, Italy and Portugal. Use [99.co Property Scraper](https://apify.com/sian.agency/99co-property-scraper?fpr=sian) for Singapore. This actor reads live MagicBricks listings only. Phone numbers sit behind a login and a contact request on the portal, so a row carries the poster's name and type but never a number, and there is no sold-price archive to draw price history from.

### 🤖 Use with AI agents

Already connected to the [Apify MCP server](https://mcp.apify.com)? Just ask for this Actor by name: sian.agency/magicbricks-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 to research the Indian property market using the Apify Actor `sian.agency/magicbricks-property-scraper`.

Use it when I need: asking prices in rupees, price per square foot, BHK, carpet and super area, floor out of total floors, possession status, transaction type, furnishing, ownership, society and developer, for property to buy or to rent in any Indian city. Every row also carries GPS coordinates, amenities, photos and the name and type of whoever posted it — Owner, Dealer or Builder.

Don't use it when: the property is outside India — use mena-property-gateway or smart-idealista-scraper or 99co-property-scraper instead.

How to call it: give `cities` a list of Indian cities written the way MagicBricks writes them (`Mumbai`, `New Delhi`, `Bangalore`, `Pune`, `Noida`, `Gurgaon`), then set `listingType` to `sale` or `rent` and `propertyType` to `flats`, `independent-house`, `villa`, `office-space` or one of the other eight. Narrow with `bedrooms` (1 to 5, flats only), `localities` (each one runs as its own search, and that is how you get past the ~3,000-listing ceiling on a single search) and `maxResults`. `includeDetails` adds the exact rupee price, the posting date, the full description and every photo, for an extra charge per listing. To expand listings you already have, set `operation` to `detail` and pass `propertyUrls`; to reuse a search you built on the site with its own budget or area filters, paste the URL into `searchUrls`.

Start with this input:
{
  "operation": "search",
  "cities": [
    "Mumbai"
  ],
  "listingType": "sale",
  "propertyType": "flats",
  "bedrooms": "2",
  "maxResults": 120
}

Ask me which cities or localities they want, whether they are buying or renting, and the property type and BHK, then run the Actor and summarise the results as a table.
```

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

- *Compare price per square foot for 2 BHK flats in Powai versus Andheri West and tell me which is better value.*
- *Find every owner-listed flat for rent in Pune under 30,000 a month and give me a contact sheet.*
- *Pull ready-to-move 3 BHK flats in Bangalore and Hyderabad, then chart the price distribution by locality.*

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

### 📋 Overview

**India's property data, without the copy-paste.** This actor reads MagicBricks result pages directly and returns every listing as a flat, typed row — for buying or renting, in any city the portal covers.

**Why property teams choose this MagicBricks scraper:**

- ✅ **30 listings per request**: one page of results is one request, so a 3,000-listing sweep is 100 requests, not 3,000.
- ⚡ **No browser to babysit**: the result page is read as-is. Runs finish in seconds, not minutes.
- 🎯 **50 fields per listing**: price, area, floor, possession, ownership, society, developer, GPS, amenities and the lister, where a portal search hands you a headline and a price.
- 💰 **$1.20 per 1,000 listings**: less than half what the most-used competitor charges, and under the market cluster.
- 💎 **Build the search here, or paste one in**: give it cities, localities, property type and BHK. Pasting a MagicBricks result URL still works when you want a filter the fields do not cover.
- ✨ **Honest paging**: MagicBricks silently re-serves page 1 after page 100. This actor spots the repeat and stops, so you never pay twice for the same listing.

***

### ✨ Features

- 🏙️ **Every Indian city**: Mumbai, New Delhi, Bangalore, Pune, Hyderabad, Chennai, Kolkata, Ahmedabad, Noida, Gurgaon and the rest.
- 🔑 **Buy and rent**: one switch. Rent rows also carry tenant preference and furnishing.
- 🏠 **Twelve property types**: flats, independent houses, builder floors, villas, studio apartments, penthouses, farm houses, office space, showrooms, commercial land, agricultural land, or all types at once.
- 📍 **Locality fan-out**: name the localities you work and each becomes its own search, which is how you build a dataset bigger than one city's ceiling.
- 🛏️ **BHK filter**: 1 through 5, applied where MagicBricks actually offers it.
- 🧑 **Who posted it**: owner, dealer or builder, with their name and membership tier.
- 🌐 **GPS on residential rows**: latitude and longitude straight off the listing, ready for mapping.
- 📄 **Optional deep detail**: open each listing's own page for the exact rupee price, the posting date, the full description and the complete photo set.
- 🔗 **Paste-a-URL mode**: built a filtered search on the site? Paste it and every filter is honoured.
- ♻️ **Run-wide deduplication**: overlapping cities and localities never bill you twice for the same listing.

***

### 🎬 Quick Start

Pick your cities, choose buy or rent, set how many listings you want. Press Start. Results land in the dataset as JSON, CSV or Excel.

```bash
curl -X POST https://api.apify.com/v2/acts/sian.agency~magicbricks-property-scraper/runs?token=YOUR_TOKEN \
-H 'Content-Type: application/json' \
-d '{"operation":"search","cities":["Mumbai"],"listingType":"sale","propertyType":"flats","maxResults":120}'
```

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Name the market

Type one or more cities. Add localities if you want a micro-market rather than a whole city.

#### Step 2: Choose buy or rent, and the property type

Flats is the deepest inventory everywhere. Switch to rent and the same fields come back with tenant preference attached.

#### Step 3: Set your limit and run

`maxResults` caps the whole run across every city and locality.

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

- A typed row per listing with price, area, floor and possession
- Coordinates you can map and a photo you can preview
- The name and type of whoever posted each listing

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `operation` | string | No | `search` (default) or `detail` |
| `cities` | array | No | Indian cities to search, e.g. Mumbai, Pune |
| `listingType` | string | No | `sale` (default) or `rent` |
| `propertyType` | string | No | `flats` (default), `property`, `villa`, `office-space` and eight more |
| `bedrooms` | string | No | `any` (default), or `1`–`5`. Flats only |
| `localities` | array | No | Narrow each city, e.g. Andheri West, Whitefield |
| `maxResults` | integer | No | Cap for the whole run. Default 60 |
| `includeDetails` | boolean | No | Open each listing's page for exact price, posting date and all photos |
| `propertyUrls` | array | No | For `detail`: MagicBricks property URLs to expand |
| `searchUrls` | array | No | Paste MagicBricks result URLs instead of using the fields above |

**Example:**

```json
{
  "operation": "search",
  "cities": ["Mumbai"],
  "listingType": "sale",
  "propertyType": "flats",
  "bedrooms": "2",
  "maxResults": 120
}
```

**Multi-city with localities:**

```json
{
  "operation": "search",
  "cities": ["Mumbai", "Pune"],
  "localities": ["Andheri West", "Powai", "Baner"],
  "listingType": "rent",
  "maxResults": 500
}
```

***

### 📤 Output

Results are saved to the Apify dataset with **50+ fields** including:

| Field | Type | Description |
|-------|------|-------------|
| `propertyId` | number | MagicBricks listing id |
| `listingTitle` | string | Listing headline |
| `url` | string | Link to the listing |
| `price` | number | Asking price in rupees (monthly for rent) |
| `pricePerSqft` | number | Rupees per square foot as listed |
| `bedrooms` / `bathrooms` | number | BHK and bathroom count |
| `carpetArea` / `superArea` | number | Area, with its unit in a paired field |
| `floorNumber` / `totalFloors` | number | Which floor, out of how many |
| `possessionStatus` | string | Ready to Move, or the possession date |
| `furnishing` | string | Furnished, Semi-Furnished or Unfurnished |
| `societyName` / `developer` | string | Project and builder |
| `latitude` / `longitude` | number | Coordinates |
| `listerName` / `listerType` | string | Who posted it, and whether owner, dealer or builder |
| `amenities` | array | Amenities listed on the card |
| `imageUrls` | array | Photos |

**Example:**

```json
{
  "propertyId": 86204631,
  "listingTitle": "4 BHK Flat for Sale in Goregaon East, Mumbai",
  "url": "https://www.magicbricks.com/propertyDetails/4-BHK-1600-Sq-ft-Multistorey-Apartment-FOR-Sale-Goregaon-East-in-Mumbai&id=4d423836323034363331",
  "listingType": "sale",
  "price": 31000000,
  "priceText": "₹ 3.10 Cr",
  "pricePerSqft": 19375,
  "bedrooms": 4,
  "bathrooms": 4,
  "carpetArea": 1100,
  "carpetAreaUnit": "sqft",
  "floorNumber": 5,
  "totalFloors": 7,
  "possessionStatus": "Ready to Move",
  "transactionType": "Resale",
  "furnishing": "Furnished",
  "facing": "East",
  "ownership": "Co-operative Society",
  "societyName": "Walia Terrace",
  "locality": "Goregaon East",
  "city": "Mumbai",
  "latitude": 19.14864,
  "longitude": 72.88109,
  "listerName": "Sanket Prabhu",
  "listerType": "Owner",
  "memberCategory": "Premium Member",
  "amenities": ["Air Conditioned", "Intercom Facility", "Laundry Service"],
  "viewCount": 1134
}
```

***

### 💼 Use Cases & Examples

#### 1. Locality Price Benchmarking

**Analysts comparing micro-markets on what listings actually ask, not on a rounded index.**

**Input:** Two localities, same BHK, same city
**Output:** Price, price per sqft, carpet area, floor and possession per listing
**Use:** Rank localities by real asking price and spot the ones running ahead of their area.

#### 2. Owner & Agent Lead Generation

**Brokers who want inventory that is not already worked by every other agent.**

**Input:** Your localities, buy or rent
**Output:** Lister name and type on every row, with the listing URL
**Use:** Filter to owner-listed stock and work it before it reaches the agent networks.

#### 3. New-Launch & Possession Tracking

**Developers and land teams watching who is pushing inventory into a micro-market.**

**Input:** A city, scheduled to run weekly
**Output:** Possession status, transaction type, developer, age of construction
**Use:** See what moved from "Poss. by Dec 26" to "Ready to Move", and which builders are active.

#### 4. Rental Yield Modelling

**Investors sizing gross yield without a research subscription.**

**Input:** The same locality run once for sale and once for rent
**Output:** Both price sets, joined on society and BHK
**Use:** Compute gross yield per micro-market and rank where the numbers work.

#### 5. Proptech & Valuation Feeds

**Product teams building Indian search, valuation or comparables.**

**Input:** Whole cities, scheduled
**Output:** Coordinates, areas, amenities, society — and exact rupee prices in detail mode
**Use:** A comparables feed you own, refreshed on your schedule.

#### 6. Commercial Space Sourcing

**Tenant-rep and workplace teams sizing office supply.**

**Input:** `propertyType: office-space`, rent, a city
**Output:** Super area, floor, lock-in period, address and the listing agent
**Use:** Build an availability sheet for a submarket in one run.

***

### 🔗 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/magicbricks-property-scraper').call({
  operation: 'search',
  cities: ['Mumbai'],
  listingType: 'sale',
  propertyType: 'flats',
  maxResults: 120
});

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/magicbricks-property-scraper').call(
    run_input={
        'operation': 'search',
        'cities': ['Bangalore'],
        'listingType': 'rent',
        'propertyType': 'flats',
        'maxResults': 120,
    }
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~magicbricks-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"operation":"search","cities":["Pune"],"listingType":"rent","maxResults":120}'
```

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

1. **Trigger**: Schedule — weekly for market tracking, daily for lead capture
2. **HTTP Request**: Call the actor API with your cities
3. **Process**: Filter on `listerType`, `price` or `possessionStatus`
4. **Action**: Append to a sheet, push to your CRM, or alert on new stock

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **25 listings** per run — every field, same quality
- No credit card required
- Enough to check the fields against your model before you commit

#### PAID Tier (Production Ready)

- **Unlimited** listings per run
- Pay-per-result: charged per listing returned, never for errors

💰 **$1.20 per 1,000 listings** — under half the rate of the most-used MagicBricks actor on the Store, and below the $1.20–$5.00 cluster the rest sit in.

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

***

### ❓ Frequently Asked Questions

**Q: Do I need an API key, a login or a proxy?**
A: No. Give it a city and press Start.

**Q: Which cities work?**
A: Every city MagicBricks covers. Write the city the way MagicBricks writes it — Bangalore, not Bengaluru; New Delhi, not Delhi.

**Q: How many listings can one search return?**
A: About 3,000. MagicBricks stops paging at page 100 and then quietly serves page 1 again. The actor detects that repeat and stops, so you are never billed twice for the same listing. To go wider, add cities, localities or property types.

**Q: Why is the price sometimes a rounded figure like 3.10 Cr?**
A: That is what the result page prints, and `price` is that value converted to rupees. Turn on full property pages and you get the exact rupee amount plus the posting date.

**Q: Can I filter by budget or area?**
A: Build the search on MagicBricks with the filters you want, then paste the result URL into `searchUrls`. Every filter in that URL is honoured because the page itself applies it.

**Q: Do I get phone numbers?**
A: No. MagicBricks keeps them behind a login and a contact request. You get the poster's name, their type and the listing URL.

**Q: What does the full-property-page option cost?**
A: It fetches each property page, so it bills one Property Detail event per enriched listing on top of the search row. Leave it off and you pay search rows only.

**Q: What output formats are available?**
A: JSON, CSV, Excel and XML — export straight from the Apify dataset.

***

### 🐛 Troubleshooting

**"MagicBricks has no results page for that combination"**

- Check the city spelling. MagicBricks uses Bangalore, not Bengaluru, and New Delhi, not Delhi.
- Some property types have no inventory in some cities. Try `property` to take every type at once.

**The run returns fewer listings than `maxResults`**

- That search has fewer listings than you asked for, or it hit the 3,000-listing ceiling.
- Add cities, localities or property types rather than raising the limit.

**BHK seems to be ignored**

- The BHK filter exists on flats only. On houses, land and commercial property MagicBricks offers no such filter, so it is dropped rather than producing an empty page.

**A run stops at 25 listings**

- That is the FREE tier cap. Add credits or a payment method in Apify Console → Billing.

**Coordinates are missing on some rows**

- Commercial listings do not publish coordinates. City and locality still come through on every row.

***

### ⚖️ 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 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.

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

MagicBricks is a trademark of Magicbricks Realty Services Limited. This actor is not affiliated with, endorsed by, or sponsored by Magicbricks.

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- 🐛 Found a bug? File an issue in the Apify Console Issues tab
- 🛠️ More automation tools in the [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian)
- 📧 <apify@sian-agency.online>

***

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

# Actor input Schema

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

Pick one per run. Property Search returns listing rows for a city, locality and property type; Property Detail takes MagicBricks property URLs and returns the exact rupee price, posting date, full description and the complete photo set.

## `cities` (type: `array`):

Cities to search, e.g. Mumbai, New Delhi, Bangalore, Pune, Hyderabad, Chennai, Kolkata, Ahmedabad, Noida, Gurgaon. One search runs per city, so three cities return roughly three times the rows. This is how you get past the 3,000-listing ceiling MagicBricks puts on any single search. Write Bangalore, not Bengaluru.

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

Whether to search properties for sale or properties for rent. Rent prices are monthly.

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

Which kind of property to search. 'Every property type' takes residential and commercial together. Flats is by far the deepest inventory in every city.

## `bedrooms` (type: `string`):

Restrict to a bedroom count. Applies to flats only — MagicBricks does not offer a BHK filter on houses, land or commercial property, so it is ignored for those types.

## `localities` (type: `array`):

Narrow each city to named localities, e.g. Andheri West, Powai, Whitefield, Baner. Each locality runs as its own search against every city listed above, which is the way to build a dataset larger than one city's 3,000-listing ceiling. Leave empty to take the whole city.

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

Stop after this many listings across every city and locality. Each page returns 30, so the run stops at the first page that crosses your limit.

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

Open each listing's own page to add the exact rupee price, the posting date, the full description, the developer and age of construction, and the complete photo set instead of one thumbnail. Costs one extra request per listing and bills the Property Detail event on top of the search row.

## `propertyUrls` (type: `array`):

Used by the Property Detail operation: MagicBricks property URLs to expand, in the www.magicbricks.com/propertyDetails/…\&id=… form you get from a listing page.

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

Paste MagicBricks result-page URLs instead of filling the fields above. Build the search you want on the site with any filters it offers — budget, area, possession, posted-by — then paste the URL here and every one of those filters is honoured, because the page itself does the filtering.

## Actor input object example

```json
{
  "operation": "search",
  "cities": [
    "Mumbai",
    "Bangalore",
    "Pune"
  ],
  "listingType": "sale",
  "propertyType": "flats",
  "bedrooms": "any",
  "localities": [],
  "maxResults": 60,
  "includeDetails": false,
  "propertyUrls": [],
  "searchUrls": []
}
```

# Actor output Schema

## `magicbricksProperties` (type: `string`):

Every propertie 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",
    "cities": [
        "Mumbai",
        "Bangalore",
        "Pune"
    ],
    "listingType": "sale",
    "propertyType": "flats",
    "bedrooms": "any",
    "localities": [],
    "maxResults": 60,
    "includeDetails": false,
    "propertyUrls": [],
    "searchUrls": []
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/magicbricks-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",
    "cities": [
        "Mumbai",
        "Bangalore",
        "Pune",
    ],
    "listingType": "sale",
    "propertyType": "flats",
    "bedrooms": "any",
    "localities": [],
    "maxResults": 60,
    "includeDetails": False,
    "propertyUrls": [],
    "searchUrls": [],
}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/magicbricks-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",
  "cities": [
    "Mumbai",
    "Bangalore",
    "Pune"
  ],
  "listingType": "sale",
  "propertyType": "flats",
  "bedrooms": "any",
  "localities": [],
  "maxResults": 60,
  "includeDetails": false,
  "propertyUrls": [],
  "searchUrls": []
}' |
apify call sian.agency/magicbricks-property-scraper --silent --output-dataset

```

## MCP server setup

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