# India Real Estate MCP | 5 Tools: 99acres, NoBroker, Housing (`themineworks/india-real-estate-mcp`) Actor

Aggregated India property data for AI agents: 99acres, MagicBricks, NoBroker, and Housing.com — residential and commercial, rent and sale, in one call. No result, no charge.

- **URL**: https://apify.com/themineworks/india-real-estate-mcp.md
- **Developed by:** [The Mine Works](https://apify.com/themineworks) (community)
- **Categories:** Real estate, MCP servers
- **Stats:** 3 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per event + usage

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.

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

## India Real Estate MCP

**Four India property portals, one MCP endpoint — residential and commercial, rent and sale.**

Built by [The Mine Works](https://apify.com/themineworks), on top of our published data actors.

### Tools

| Tool | What it returns | Price |
|---|---|---|
| `search_all_india_properties` | 99acres, MagicBricks, NoBroker, Housing.com — one query, all four (rent/buy only) | **$0.12** complete · $0.07 partial · $0.02/source · $0 if nothing found |
| `search_properties_99acres` | Rent, sale, PG/guest-house, **and commercial** — all four in one tool | $0.05 |
| `search_properties_magicbricks` | Residential rent or sale, BHK-filterable | $0.05 |
| `search_properties_nobroker` | Residential rent or sale, zero-brokerage listings, 10 cities | $0.05 |
| `search_properties_housing` | Residential rent/sale or its own commercial rent/sale, 32 cities | $0.05 |

**`search_all_india_properties` always costs less than calling the 4 tools individually.**

The aggregator is scoped to residential rent/buy — the one listing type all four sources fully support. **For PG/guest-house listings, use `search_properties_99acres` directly** (the only source that has them). **For commercial, use `search_properties_99acres` or `search_properties_housing` directly** — MagicBricks and NoBroker don't cover commercial at all, and folding a 1-2-source result into a 4-source aggregator's fixed price would either overcharge or overpromise.

### Worked example

Ask your agent: *"Find 2BHK apartments for rent in Pune across every major India listing site."*

```json
// tools/call → search_all_india_properties
{ "city": "Pune", "listing_type": "rent", "max_per_source": 10 }
```

```json
{
  "city": "Pune",
  "listing_type": "rent",
  "sources_tier": "complete",
  "sources_attempted": 4,
  "sources_usable": 4,
  "total_listings_found": 38,
  "results_by_source": {
    "ninetynine_acres": ["..."],
    "magicbricks": ["..."],
    "nobroker": ["..."],
    "housing": ["..."]
  }
}
```

One call, four sources, one bill — $0.12 for a complete result instead of $0.20 buying each source separately.

### Setup

The server speaks Streamable HTTP. Use your Apify API token as a bearer token.

**Claude Desktop / Claude Code** — add to your MCP config:

```json
{
  "mcpServers": {
    "india-real-estate": {
      "url": "https://themineworks--india-real-estate-mcp.apify.actor/mcp",
      "headers": { "Authorization": "Bearer YOUR_APIFY_TOKEN" }
    }
  }
}
```

**Cursor** — same block in `.cursor/mcp.json`.

**Windsurf** — same block under `mcpServers` in your Windsurf MCP settings.

Cold start is about 6 seconds; warm calls answer in about a second.

### Billing promise

**No result, no charge. Ever.**

- A search that finds nothing costs nothing — not a reduced fee, nothing.
- Repeat an identical call within 60 seconds and it's free (retries shouldn't cost twice).
- The aggregator is priced by what it actually delivered: complete, partial, or per-source. Nothing found, nothing billed.
- Apify plan discounts apply on top of every price above.

Apify platform usage is billed by Apify on top of these prices, as with any Standby actor.

### Coverage — read this before you buy

- **99acres is the deepest single source**: rent, sale, PG, and commercial, all in one tool, nationwide.
- **MagicBricks and NoBroker are residential rent/sale only** — no PG, no commercial.
- **Housing.com splits commercial into its own rent/sale pair** (`commercial_rent` / `commercial_buy`), separate from residential.
- **City coverage varies by source.** 99acres and MagicBricks accept any Indian city name as free text. NoBroker is limited to 10 major metros; Housing.com to 32. A city outside a source's own coverage reports as a clean "not usable" for that source in the aggregator — it does not fail the whole call.
- **This server is India-only.** For US property data (Zillow, Redfin, Realtor.com, Airbnb), see our [Real Estate MCP](https://themineworks.com/mcp).

### More from The Mine Works

Individual actors behind these tools are published separately at [apify.com/themineworks](https://apify.com/themineworks). Full MCP server suite: [themineworks.com/mcp](https://themineworks.com/mcp).

# Actor input Schema

## `readme` (type: `string`):

This Actor serves India property listings (99acres, MagicBricks, NoBroker, Housing.com) to AI agents over the Model Context Protocol.

Connect your MCP client to:
https://themineworks--india-real-estate-mcp.apify.actor/mcp

with your Apify API token as a Bearer token. Works in Claude Desktop, Claude Code, Cursor and Windsurf — copy-paste config blocks are in the README.

Starting a normal run here does nothing except print this pointer.

## Actor input object example

```json
{
  "readme": "Connect your MCP client to https://themineworks--india-real-estate-mcp.apify.actor/mcp — see the README."
}
```

# Actor output Schema

## `mcpEndpoint` (type: `string`):

Streamable HTTP MCP endpoint for this run. Works in Claude Desktop, Claude Code, Cursor and Windsurf; copy-paste config is in the README.

# 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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("themineworks/india-real-estate-mcp").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 = {}

# Run the Actor and wait for it to finish
run = client.actor("themineworks/india-real-estate-mcp").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 '{}' |
apify call themineworks/india-real-estate-mcp --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,themineworks/india-real-estate-mcp"
        }
    }
}

```

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/kR7ns1hbBAUCQPQgy/builds/qcyMOqrD8DTRE2fTj/openapi.json
