# Housing.com Scraper - India Property Listings & Prices (`haketa/housing-scraper`) Actor

Scrape property listings from Housing.com across India for buy or rent: price range, BHK configuration, address, property type, seller name & phone, posting date and features. Export to JSON, CSV or Excel for research and lead generation.

- **URL**: https://apify.com/haketa/housing-scraper.md
- **Developed by:** [Haketa](https://apify.com/haketa) (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 $1.50 / 1,000 results

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

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#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

## Housing.com Scraper 🏠🇮🇳

**Extract property listings from Housing.com — one of India's largest real-estate portals — into clean, structured data.** Scrape an entire city's listings for **buy or rent** and export thousands of properties with **price range, BHK configuration, address, property type, seller name & phone, posting date and features**. Built for real-estate research, lead generation, price analytics and property aggregation.

[![Actor](https://img.shields.io/badge/Apify-Actor-00b04f?style=flat-square\&logo=apify)](https://apify.com)
[![Market](https://img.shields.io/badge/Market-India%20🇮🇳-ff9933?style=flat-square)](https://apify.com)
[![Buy & Rent](https://img.shields.io/badge/Buy%20%26%20Rent-Supported-brightgreen?style=flat-square)](https://apify.com)
[![Seller phone](https://img.shields.io/badge/Seller-Contact-success?style=flat-square)](https://apify.com)
[![Price range](https://img.shields.io/badge/Price-Min%2FMax-blue?style=flat-square)](https://apify.com)
[![Output](https://img.shields.io/badge/Output-JSON%20%7C%20CSV%20%7C%20Excel-2b7489?style=flat-square)](https://apify.com)
[![City-wide](https://img.shields.io/badge/Coverage-City--wide-orange?style=flat-square)](https://apify.com)
[![No code](https://img.shields.io/badge/No--code-Friendly-9cf?style=flat-square)](https://apify.com)
[![Maintained](https://img.shields.io/badge/Maintained-Yes-brightgreen?style=flat-square)](https://apify.com)

***

### 🎯 What does Housing.com Scraper do?

Housing.com is one of India's leading property portals, with listings across every major city and locality. This actor turns any city (or search URL) into a structured dataset you can download or feed into your own tools.

Give it a **city** (and buy or rent) — or a **Housing.com URL** — and it will:

- 🔎 Harvest listings across the **entire city**, locality by locality
- 🏢 Capture **property name, BHK configuration and property type**
- 💰 Return the **price range** (min / max, in INR) and a formatted price
- 📍 Include the **locality and detailed address**
- 📞 Add the **seller / developer name and phone**
- 🗓️ Include the **posting date** and property **features**
- 🧹 Deliver **clean, deduplicated, structured records** — no HTML, no clutter
- ⬇️ Export to **JSON, CSV, Excel, HTML or via API** in one click

No login, no browser extensions, no manual copy-paste.

***

### ✨ Key features

| Feature | Description |
| --- | --- |
| **City-wide coverage** | Scrape a whole city's listings across all its localities in one run. |
| **Buy & rent** | Choose properties for sale or for rent. |
| **Price range** | Minimum and maximum price (INR) plus a ready-to-read formatted price. |
| **BHK configuration** | The property's configuration (e.g. "2, 3 BHK Apartments"). |
| **Seller contact** | Seller / developer name, type and phone for lead generation. |
| **Rich metadata** | Property type, locality, detailed address, posting date and features. |
| **Deduplicated output** | Each listing appears once, identified by its unique ID. |
| **Any scale** | Collect a quick sample or thousands of listings — you set the limit. |
| **Clean exports** | JSON, CSV, Excel, HTML table, RSS or JSON API. |

***

### 📥 Input

The actor accepts a simple, no-code input form.

#### Option A — by city (easiest)

```json
{
    "cities": ["mumbai", "pune"],
    "service": "buy",
    "maxItems": 500
}
```

#### Option B — rentals

```json
{
    "cities": ["bangalore"],
    "service": "rent",
    "maxItems": 300
}
```

#### Option C — by URL

```json
{
    "startUrls": [
        { "url": "https://housing.com/in/buy/real-estate-hyderabad" }
    ],
    "maxItems": 400
}
```

#### Input parameters

| Field | Type | Description |
| --- | --- | --- |
| `cities` | array | Indian cities to scrape (e.g. mumbai, bangalore, delhi, pune, hyderabad, chennai, gurgaon, noida). |
| `service` | string | `buy` (for sale) or `rent`. |
| `startUrls` | array | Housing.com city or search URLs (scraped in addition to cities). |
| `maxItems` | integer | Maximum number of listings to collect. Default `200`. |
| `proxyConfiguration` | object | Proxy settings. An Indian proxy is recommended and on by default. |

***

### 📤 Output

Each listing is returned as a clean JSON object:

```json
{
    "id": "26636",
    "url": "https://housing.com/in/buy/projects/page/26636-hind-raj-heritage",
    "title": "Hind Raj Heritage",
    "subtitle": "2.5, 4.5 BHK Bungalows",
    "propertyType": "project",
    "listingType": "buy",
    "priceDisplay": "₹53.01 L - 1.31 Cr",
    "priceMin": 5300710,
    "priceMax": 13087870,
    "address": "Vivalvedhe, Mumbai",
    "detailedAddress": "Opposite Mahalaxmi Temple, Vivalvedhe, Mumbai",
    "sellerName": "Hind Raj Construction",
    "sellerType": "Developer",
    "sellerPhone": "77380XXXXX",
    "postedDate": "2026-05-05T11:32:05Z",
    "isVerified": true,
    "rating": 4.2,
    "features": ["Configurations", "Possession Starts", "Avg. Price"]
}
```

#### Output fields

| Field | Type | Description |
| --- | --- | --- |
| `id` | string | Unique Housing.com listing ID. |
| `url` | string | Direct link to the listing. |
| `title` | string | Property / project name. |
| `subtitle` | string | BHK configuration. |
| `propertyType` | string | Property type (project, resale, rent…). |
| `listingType` | string | `buy` or `rent`. |
| `priceDisplay` | string | Formatted price (e.g. "₹53.01 L - 1.31 Cr"). |
| `priceMin` / `priceMax` | number | Price range in INR. |
| `address` / `detailedAddress` | string | Locality and full address. |
| `sellerName` / `sellerType` / `sellerPhone` | | Seller / developer name, type and phone. |
| `postedDate` | string | Posting date. |
| `isVerified` | boolean | Whether the listing is verified. |
| `rating` | number | Review rating, when available. |
| `features` | array | Listing feature labels. |

You can download the dataset as **JSON, CSV, Excel, HTML, RSS or XML**, or fetch it programmatically through the Apify API.

***

### 🚀 How to use Housing.com Scraper (step by step)

1. Click **Try for free** / **Start**.
2. Enter one or more **cities** and choose **Buy** or **Rent** — or paste a **Housing.com URL**.
3. Set **maxItems** to how many listings you want.
4. Click **Save & Start**.
5. When the run finishes, open the **Dataset** tab and **Export** to your preferred format — or grab it via API.

That's it. No code required.

***

### 💡 Use cases

- **Lead generation** — Build lists of sellers and developers (with contact) actively listing properties.
- **Price & market analytics** — Track price ranges by city, locality, configuration and property type.
- **Property aggregation** — Power your own portal, app or newsletter with fresh Indian listings.
- **Investment research** — Compare localities and configurations to spot opportunities.
- **Competitive intelligence** — Monitor developer projects and inventory across a city.
- **Real-estate CRM enrichment** — Keep your database current with live listing data.

***

### 🏙️ Coverage

Every major Indian metro and tier-2 city — **Mumbai, Delhi, Bangalore, Pune, Hyderabad, Chennai, Kolkata, Ahmedabad, Gurgaon, Noida** and many more. Just pass the city name, or paste a Housing.com city/search URL.

***

### 🔌 Integrations & automation

Because this runs on Apify, you can:

- 📅 **Schedule** runs (daily, weekly) to keep a live listings feed.
- 🔗 Push results to **Google Sheets, Airtable, Slack, Zapier, Make, or any webhook**.
- 🧩 Call it from your backend with the **Apify API** and SDKs (JavaScript / Python).
- 🔔 Use **webhooks** to trigger downstream workflows the moment a run completes.

#### Call via API (example)

```bash
curl -X POST "https://api.apify.com/v2/acts/YOUR_ACTOR_ID/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
        "cities": ["mumbai"],
        "service": "buy",
        "maxItems": 300
      }'
```

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

const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('YOUR_ACTOR_ID').call({
    cities: ['pune'],
    service: 'rent',
    maxItems: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);
```

***

### ❓ FAQ

**Do I need a Housing.com account or API key?**
No. Just provide a city or a Housing.com URL.

**Can I scrape both buy and rent?**
Yes — choose `buy` (for sale) or `rent`.

**Does it include the seller's phone?**
Yes — the seller / developer name, type and phone are included where the portal exposes them.

**Does it cover a whole city or just one page?**
A whole city — the actor harvests listings across the city's many localities and deduplicates them.

**What is the price range?**
For projects with multiple configurations, `priceMin` and `priceMax` give the range in INR, plus a formatted `priceDisplay`.

**Are results deduplicated?**
Yes. Each listing is uniquely identified and appears once per run.

**What formats can I export?**
JSON, CSV, Excel, HTML, RSS and XML — via the dashboard or the API.

**How do I keep data fresh?**
Schedule the actor to run on the interval you need; each run returns the current live listings.

***

### 📌 Tips for best results

- **Start with one city.** Confirm the fields look right, then add more cities or raise `maxItems`.
- **Use `rent` for rental analytics.** Switch the service to build a rentals dataset.
- **Paste URLs for specific searches.** Apply filters on Housing.com, then paste the URL for a targeted pull.
- **Schedule for freshness.** Listings change daily — a scheduled run keeps your data current.

***

### ⚖️ Legal & responsible use

This actor is intended for lawful data collection such as market research, analytics and lead generation. You are responsible for how you use the collected data. Only collect publicly available information, respect the target website's Terms of Service and `robots.txt`, and comply with all applicable laws and regulations, including data-protection rules and telemarketing/DND regulations when contacting sellers. Do not use the data for spam or any unlawful purpose. This actor is an independent tool and is **not affiliated with, endorsed by, or connected to Housing.com** or its parent companies. All trademarks belong to their respective owners.

***

### 🛟 Support

Questions, feature requests or an issue with the data? Open an issue on the actor's page — feedback is welcome and helps improve the tool.

***

⭐ **If this actor saves you time, please leave a review — it really helps!**

# Actor input Schema

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

One or more Indian cities to scrape (e.g. mumbai, bangalore, delhi, pune, hyderabad, chennai, gurgaon, noida). The scraper harvests listings across the city's localities automatically.

## `service` (type: `string`):

Whether to scrape properties for sale (buy) or for rent.

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

Paste Housing.com city or search URLs (e.g. https://housing.com/in/buy/real-estate-mumbai or a https://housing.com/in/buy/searches/... results URL). Scraped in addition to the cities above.

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

Maximum number of property listings to collect across all cities and URLs.

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

Proxy settings. An Indian proxy is recommended for reliable, uninterrupted results.

## Actor input object example

```json
{
  "cities": [
    "mumbai"
  ],
  "service": "buy",
  "maxItems": 200,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "IN"
  }
}
```

# Actor output Schema

## `id` (type: `string`):

Housing.com listing ID

## `url` (type: `string`):

Listing page URL

## `title` (type: `string`):

Property / project name

## `subtitle` (type: `string`):

BHK configuration

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

Property type

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

Buy or rent

## `priceDisplay` (type: `string`):

Formatted price

## `priceMin` (type: `string`):

Minimum price (INR)

## `priceMax` (type: `string`):

Maximum price (INR)

## `address` (type: `string`):

Locality / address

## `sellerName` (type: `string`):

Seller / developer name

## `sellerPhone` (type: `string`):

Seller phone

## `postedDate` (type: `string`):

Posting date

# 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 = {
    "cities": [
        "mumbai"
    ],
    "maxItems": 200
};

// Run the Actor and wait for it to finish
const run = await client.actor("haketa/housing-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 = {
    "cities": ["mumbai"],
    "maxItems": 200,
}

# Run the Actor and wait for it to finish
run = client.actor("haketa/housing-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 '{
  "cities": [
    "mumbai"
  ],
  "maxItems": 200
}' |
apify call haketa/housing-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,haketa/housing-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/a92QjbGazBcdgol9J/builds/k9ANEmp9kofyRmDao/openapi.json
