# 🏠 NoBroker Scraper — India Property Listings (`hipersoft/nobroker-scraper`) Actor

Scrape NoBroker property listings across India: for-sale and for-rent homes with price, deposit, locality, BHK, area, furnishing, floor, amenities and geo-coordinates. Search any city or locality, or paste a NoBroker results URL, and export one clean row per property as JSON, CSV or Excel.

- **URL**: https://apify.com/hipersoft/nobroker-scraper.md
- **Developed by:** [hiper soft](https://apify.com/hipersoft) (community)
- **Categories:** Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.0015 / property listing scraped

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

## 🏠 NoBroker Scraper — India Property Listings

Scrape **NoBroker property listings across India** as clean, structured **JSON, CSV, Excel or XML**. Choose **for sale** or **for rent**, point it at any city or locality — or paste a NoBroker results-page URL — and it returns one tidy row per property: **price, deposit, locality, BHK configuration, built-up area, furnishing, floor, amenities, map coordinates, photos** and the **listing URL**. Ideal for property-market research, valuation, lead generation and automation.

### What does NoBroker Scraper do?

This actor turns NoBroker search results into a ready-to-use dataset. Give it a **city** (e.g. `bangalore`) and an optional **locality** (e.g. `Marathahalli`), pick **For sale** or **For rent**, and it collects every matching property with rich, structured fields — no manual copy-paste. You can also search around exact **latitude/longitude** coordinates or paste one or more **NoBroker search URLs** straight from your browser.

### What data can you get?

**Per property:**

| Field | Description |
| --- | --- |
| `propertyId` | NoBroker property reference. |
| `title` | Listing title (e.g. "2 BHK Flat for Rent in Marathahalli"). |
| `listingType` | `sale` or `rent`. |
| `propertyType` | Apartment, Independent House, Villa, Plot, and more. |
| `configuration` | BHK configuration (e.g. "2 BHK", "4+ BHK"). |
| `price` | Price (for sale) or monthly rent as a number, in INR. |
| `priceFormatted` | Price exactly as shown (e.g. "1.2 Crores", "45,000"). |
| `deposit` / `depositFormatted` | Security deposit (rentals). |
| `maintenanceFormatted` | Monthly maintenance, when shown. |
| `locality` | Locality / area name. |
| `city` | City. |
| `society` | Society or building name, when shown. |
| `address` | Address text, when shown. |
| `builtUpArea` / `builtUpAreaUnit` | Built-up area and its unit (sqft). |
| `carpetArea` | Carpet area, when shown. |
| `furnishing` | Furnished, Semi Furnished or Unfurnished. |
| `bathrooms` | Number of bathrooms. |
| `parking` | Parking availability. |
| `facing` | Facing direction, when shown. |
| `floor` / `totalFloors` | Floor number and total floors. |
| `availabilityDate` | When the property is available from. |
| `postedDate` | When the listing was posted. |
| `latitude` / `longitude` | Map coordinates. |
| `amenities` | List of amenities (Lift, Gym, Power Backup, and more). |
| `thumbnail` / `images` | Thumbnail and photo gallery URLs. |
| `shortUrl` / `url` | Links to the property page. |

### Use cases

- **Property-market research** — map prices, sizes and stock across localities and cities.
- **Valuation & comparables** — pull comparable listings by area, size and price band.
- **Lead generation** — build lists of available for-sale and for-rent properties.
- **Price & stock monitoring** — track asking prices and new listings over time.
- **Dashboards** — power property dashboards and reports from clean, structured rows.
- **Automation** — feed fresh listing data into your own pipelines on a schedule.

### How to use it

1. Add **NoBroker Scraper** to your Apify account and open its input.
2. Enter a **City** (e.g. `bangalore`) and, optionally, a **Locality** (e.g. `Marathahalli`).
3. Choose the **Listing type** — For sale or For rent.
4. Optionally search around exact **Latitude/Longitude**, or paste one or more **Start URLs** from your browser.
5. Set **Max items** to cap the output, then click **Run**.
6. Export the results as JSON, CSV, Excel or XML.

### Input

```json
{
  "city": "bangalore",
  "locality": "Marathahalli",
  "listingType": "sale",
  "maxItems": 100
}
```

| Field | Description |
| --- | --- |
| `city` | Indian city to search, e.g. `bangalore`, `mumbai`, `pune`, `hyderabad`. |
| `locality` | Optional locality / area within the city, e.g. `Marathahalli`. |
| `listingType` | `sale` or `rent`. |
| `lat` / `lon` | Optional exact coordinates to search around. |
| `radiusKm` | Optional search radius in kilometres. |
| `startUrls` | Optional NoBroker search URLs to scrape. Overrides city + locality. |
| `maxItems` | Cap the number of properties. `0` = no limit. |

### What you get

One flat JSON row per property, ready to export to CSV, Excel, JSON or XML.

```json
{
  "propertyId": "8aa9b1eb9e6d806e019e6da9ff2014bd",
  "title": "4 BHK House For Sale In Marathahalli",
  "listingType": "sale",
  "propertyType": "Independent House",
  "configuration": "4 BHK",
  "price": 26400000,
  "priceFormatted": "2.64 Crores",
  "locality": "Marathahalli",
  "city": "bangalore",
  "builtUpArea": 2400,
  "builtUpAreaUnit": "sqft",
  "furnishing": "Semi Furnished",
  "bathrooms": 3,
  "facing": "East",
  "latitude": 12.9549,
  "longitude": 77.6980,
  "amenities": ["Lift", "Power Backup"],
  "url": "https://www.nobroker.in/property/buy/4-bhk-apartment-for-sale-in-marathahalli-bangalore/8aa9b1eb9e6d806e019e6da9ff2014bd/detail"
}
```

### FAQ

**Which cities are supported?** Any city covered by NoBroker across India — Bangalore, Mumbai, Pune, Hyderabad, Chennai, Delhi NCR, Gurgaon, Noida and more. Just enter the city name.

**Can I search a specific neighbourhood?** Yes — add a **Locality** (e.g. `Whitefield`, `Koramangala`, `Andheri West`) or provide exact latitude/longitude.

**For sale or for rent?** Both. Set **Listing type** to `sale` or `rent`.

**What formats can I export?** JSON, CSV, Excel and XML, plus the Apify API and integrations.

### Legal & responsible use

This scraper collects only publicly available property-listing information. Use the data responsibly and in line with applicable laws and NoBroker's terms.

# Actor input Schema

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

Indian city to search, as an English name/slug — e.g. bangalore, mumbai, pune, hyderabad, chennai, delhi, gurgaon, noida. Used together with the optional Locality.

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

Optional neighbourhood or locality within the city to focus the search, e.g. Marathahalli, Whitefield, Koramangala, Andheri West. Leave empty to search the whole city.

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

Whether to collect properties for sale or for rent.

## `lat` (type: `string`):

Optional. Search around an exact point instead of a locality name. Provide together with Longitude.

## `lon` (type: `string`):

Optional. The longitude that pairs with Latitude.

## `radiusKm` (type: `integer`):

Optional radius in kilometres around the resolved point. Defaults to 3 km for a specific locality and 8 km for a whole-city search.

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

Optional. One or more NoBroker property-search page URLs to scrape (e.g. a for-sale or for-rent results page). Paste the URL straight from your browser. When set, this overrides the City / Locality fields.

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

Maximum number of properties to collect (0 = no limit; collect everything the search returns).

## Actor input object example

```json
{
  "city": "bangalore",
  "listingType": "sale",
  "maxItems": 100
}
```

# Actor output Schema

## `results` (type: `string`):

The results as dataset items.

# 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 = {
    "city": "bangalore"
};

// Run the Actor and wait for it to finish
const run = await client.actor("hipersoft/nobroker-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 = { "city": "bangalore" }

# Run the Actor and wait for it to finish
run = client.actor("hipersoft/nobroker-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 '{
  "city": "bangalore"
}' |
apify call hipersoft/nobroker-scraper --silent --output-dataset

```

## MCP server setup

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