# Nobroker.in Property Scraper 🏠 (`shahidirfan/nobroker-in-property-scraper`) Actor

Scrape Nobroker.in property listings for sale and rent with prices, locations, property types, bedrooms, amenities, descriptions, and listing details. Ideal for real estate research, property monitoring, market analysis, lead generation, and housing datasets.

- **URL**: https://apify.com/shahidirfan/nobroker-in-property-scraper.md
- **Developed by:** [Shahid Irfan](https://apify.com/shahidirfan) (community)
- **Categories:**
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-usage

## 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

### What does NoBroker Property Scraper do?

NoBroker Property Scraper collects structured property listings from NoBroker.in for sale, rent, PG, plot, and commercial searches across Indian cities and localities. Provide a public NoBroker listing URL or a location such as `Koramangala, Bangalore`, then receive a clean Apify dataset with property details, prices, areas, addresses, amenities, listing flags, source information, and usable image URLs.

The easiest option is to paste a working NoBroker search URL. If you do not have a URL, use `location` with a `listingType`. When both are provided, the URL takes priority and its transaction type and URL filters are preserved.

### Why use NoBroker Property Scraper?

- **Property market research** - Compare sale prices, rents, property sizes, configurations, furnishing, and inventory across localities.
- **Investment analysis** - Collect structured property attributes, coordinates, project names, amenities, and listing status for screening workflows.
- **Rental and PG monitoring** - Track rental, PG, and commercial inventory with configurable sorting and pagination.
- **Clean media output** - Receive one useful image URL per available listing photo, with duplicate URLs and alternate-size copies removed.
- **Controlled collection** - Set the number of unique listings and the number of result pages to inspect.
- **Automation-ready exports** - Download JSON, CSV, Excel, XML, or RSS results from Apify, or connect the dataset to downstream tools.

### What data can you extract from NoBroker?

Each saved item represents one unique public property listing. Fields that NoBroker does not provide are omitted instead of being returned as null or empty values.

| Field                                                    | Description                                                          |
| -------------------------------------------------------- | -------------------------------------------------------------------- |
| `id` / `propertyId`                                      | NoBroker property identifiers.                                       |
| `title` / `propertyTitle`                                | Listing title and property title.                                    |
| `society` / `buildingName`                               | Society, project, or building information.                           |
| `propertyType` / `typeDesc`                              | Property category and human-readable configuration such as BHK.      |
| `price` / `formattedPrice`                               | Sale price and formatted sale-price text.                            |
| `rent` / `formattedRent` / `deposit`                     | Rental amount, formatted rent, and deposit when available.           |
| `propertySize` / `carpetArea` / `plotArea`               | Property areas in square feet when supplied.                         |
| `bathroom` / `balconies` / `floor` / `totalFloor`        | Layout and building details.                                         |
| `furnishing` / `parkingDesc` / `facingDesc`              | Furnishing, parking, and facing information.                         |
| `address` / `locality` / `city`                          | Location details.                                                    |
| `latitude` / `longitude`                                 | Listing coordinates when available.                                  |
| `imageUrls`                                              | Deduplicated public image URLs, one selected size per listing photo. |
| `amenities` / `amenitiesMap`                             | Amenities provided with the listing.                                 |
| `ownerDescription` / `ownerName`                         | Public listing information when supplied.                            |
| `verified` / `sponsored` / `underLoan` / `loanAvailable` | Listing status and feature flags.                                    |
| `detailUrl`                                              | Public property detail URL for optional follow-up.                   |
| `sourceUrl` / `page` / `transactionType`                 | Search source and collection context.                                |

#### Image URL behavior

The `imageUrls` array is created from the images already supplied with each listing result. For every photo, the scraper selects one available size in this order: `large`, `medium`, `original`, then `thumbnail`. It keeps absolute URLs, builds public NoBroker asset URLs for filenames, preserves the original photo order, and removes duplicate entries.

No property detail page is opened to collect images. No separate image request is required during extraction. This keeps the dataset smaller and gives downstream workflows direct URLs that can be displayed or downloaded.

### How to use NoBroker Property Scraper

1. Open the Actor in Apify Console.
2. Paste a public NoBroker listing URL into `startUrl`, or enter a locality and city in `location`.
3. If using location mode, choose `listingType` such as `SALE` or `RENT`.
4. For sale searches, optionally select a property type; sorting is available for all supported routes.
5. Set `results_wanted` and `max_pages`.
6. Start the run and review the dataset preview.
7. Export the results or connect the dataset to your workflow.

Use a URL when you need to preserve NoBroker search filters. Use location mode when you want the Actor to resolve a locality and city for you.

### Input Parameters

| Parameter        | Type    | Required | Default          | Description                                                                                                                        |
| ---------------- | ------- | -------- | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
| `startUrl`       | String  | No       | -                | Public NoBroker listing URL. Takes priority over `location` when both are supplied.                                                |
| `location`       | String  | No       | -                | Locality and city, such as `Koramangala, Bangalore`. Used when no URL is supplied.                                                 |
| `listingType`    | Select  | No       | `SALE`           | Location-mode type: `SALE`, `RENT`, `PG`, `COMMERCIAL_BUY`, `COMMERCIAL_RENT`, or `PLOT`.                                          |
| `propertyType`   | Select  | No       | URL-dependent    | Optional sale filter: All property types, Apartment, Independent House/Villa, Gated Community Villa, Standalone Building, or Plot. |
| `sortBy`         | Select  | No       | NoBroker default | Sorting such as `price,asc`, `price,desc`, `lastUpdateDate,desc`, or availability order.                                           |
| `results_wanted` | Integer | No       | `20`             | Number of unique property listings to save.                                                                                        |
| `max_pages`      | Integer | No       | `3`              | Number of listing result pages to inspect.                                                                                         |

The input form does not impose a fixed maximum on `results_wanted` or `max_pages`. Very large collections depend on the number of listings available, page coverage, and the source search response.

### Usage Examples

#### Basic sale search by URL

Collect 20 sale listings from a Koramangala search.

```json
{
    "startUrl": "https://www.nobroker.in/flats-for-sale-in-koramangala_bangalore",
    "results_wanted": 20,
    "max_pages": 2
}
```

#### Rental search by location

Use a locality and city when you do not have a saved NoBroker URL.

```json
{
    "location": "Indiranagar, Bangalore",
    "listingType": "RENT",
    "results_wanted": 50,
    "max_pages": 4
}
```

#### Filtered and sorted search

Collect apartment listings and sort them from the lowest sale price upward. The readable `Apartment` option is sent as the matching API filter internally.

```json
{
    "startUrl": "https://www.nobroker.in/flats-for-sale-in-koramangala_bangalore",
    "propertyType": "AP",
    "sortBy": "price,asc",
    "results_wanted": 100,
    "max_pages": 5
}
```

### Sample Output

The following example shows the main fields from one dataset item. Additional non-empty fields may be present when NoBroker supplies them.

```json
{
    "id": "8a9f908496f139f80196f19f429c2c32",
    "propertyId": "8a9f908496f139f80196f19f429c2c32",
    "title": "3 BHK Flat In Koramangala",
    "society": "PCOC Lanai",
    "propertyType": "BUY",
    "typeDesc": "3 BHK",
    "price": 28336363,
    "formattedPrice": "2.83 Crores",
    "propertySize": 2240,
    "carpetArea": 1411,
    "bathroom": 3,
    "floor": 5,
    "totalFloor": 7,
    "furnishing": "SEMI_FURNISHED",
    "parkingDesc": "Bike and Car",
    "facingDesc": "East",
    "locality": "Koramangala",
    "city": "bangalore",
    "latitude": 12.935182443419935,
    "longitude": 77.624845480426,
    "imageUrls": [
        "https://assets.nobroker.in/images/8a9f908496f139f80196f19f429c2c32/8a9f908496f139f80196f19f429c2c32_9941_289044_large.jpg",
        "https://assets.nobroker.in/images/8a9f908496f139f80196f19f429c2c32/8a9f908496f139f80196f19f429c2c32_9658_933872_large.jpg"
    ],
    "verified": false,
    "loanAvailable": true,
    "detailUrl": "https://www.nobroker.in/property/buy/3-bhk-apartment-for-sale-in-koramangala-bangalore/8a9f908496f139f80196f19f429c2c32/detail",
    "sourceUrl": "https://www.nobroker.in/flats-for-sale-in-koramangala_bangalore",
    "source": "nobroker.in",
    "page": 1,
    "transactionType": "BUY"
}
```

### Tips for best results

- **Use a complete listing URL** - Copy the URL after selecting the city, locality, transaction type, and filters on NoBroker.
- **Start with 20 results** - Confirm the search and output fields before increasing the collection size.
- **Use `page-2` URLs when needed** - Page URLs are recognized and used as the starting page.
- **Choose the matching listing type** - `listingType` applies only to location mode; a URL determines its own transaction route.
- **Use sorting for analysis** - Price sorting helps identify lower or higher priced inventory, while update-date sorting helps monitor recent changes.
- **Check image availability** - Listings without published photos will not contain an `imageUrls` field.
- **Review source-dependent fields** - Prices, amenities, coordinates, descriptions, and verification flags can vary by listing.
- **Respect source rules** - Use public listing data responsibly and follow NoBroker terms and applicable laws.

### Integrations and exports

- **Apify dataset API** - Retrieve results programmatically for dashboards, databases, and internal applications.
- **Google Sheets** - Review property inventory, prices, and localities in a spreadsheet.
- **Airtable** - Build searchable property tables for projects, cities, and price ranges.
- **Make or Zapier** - Trigger notifications, enrichment, or business workflows after a run.
- **Webhooks** - Send completed-run events to downstream services.
- **JSON, CSV, Excel, XML, and RSS** - Export data in formats suitable for applications, reporting, and analysis.

### Frequently Asked Questions

#### Does a URL or location take priority?

A supplied `startUrl` takes priority over `location`. The URL also determines the transaction route and preserves supported URL filters. `listingType` is used when the Actor runs in location mode.

#### Does the Actor open property detail pages?

No. Listings and their available image metadata are collected from the selected search results. `detailUrl` is included only if your own workflow needs to perform optional follow-up.

#### Does the Actor require proxy configuration?

No. The current input contract does not include proxy configuration. The Actor is designed to run directly against the public NoBroker listing service.

#### Can I collect sale, rent, PG, plot, and commercial listings?

Yes. URL mode detects the transaction type from the supplied NoBroker URL. Location mode supports `SALE`, `RENT`, `PG`, `COMMERCIAL_BUY`, `COMMERCIAL_RENT`, and `PLOT` through `listingType`.

#### Can I collect more than one page?

Yes. Increase `max_pages`. Collection stops when the requested result count is reached, the reported total is covered, a page is empty, or no new unique listings are returned.

#### Why are some fields missing?

NoBroker does not publish every field for every listing. The Actor omits null, empty, and unavailable values instead of adding placeholder fields.

#### Why does a listing have no `imageUrls` field?

The listing result did not contain usable photo filenames or URLs. The Actor does not open detail pages or make extra image requests to fill missing media.

#### Can I export NoBroker data to CSV or Excel?

Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, RSS, and other supported formats.

#### Can I schedule recurring property collections?

Yes. Create an Apify schedule to refresh a saved URL or location search hourly, daily, weekly, or on a custom interval.

#### Is it legal to collect NoBroker listings?

You are responsible for complying with NoBroker terms, applicable privacy and copyright requirements, and local laws. Collect and use public listing data only for legitimate purposes.

### Related Actors

- [MagicBricks Property Scraper](https://apify.com/shahidirfan/magicbricks-property-scraper) - Collect Indian residential and commercial property listings, prices, locations, amenities, and media from MagicBricks.
- [Housing.com Property Scraper](https://apify.com/shahidirfan/housing-com-property-scraper) - Collect Indian property listings from Housing.com with pricing, location, property details, seller information, and media fields.

### Support

For issues, feature requests, or source changes, use the Issues tab on the Actor page. Include the input mode, a representative public URL or location, and the affected output field when reporting a problem.

### Legal Notice

This Actor is intended for legitimate collection of publicly available NoBroker property information. You are responsible for checking source terms, complying with applicable laws and privacy requirements, and using collected data responsibly. Do not use the output to harass individuals, bypass access controls, make prohibited automated decisions, or redistribute restricted information.

# Actor input Schema

## `startUrl` (type: `string`):

A working NoBroker.in listing URL, for example https://www.nobroker.in/flats-for-sale-in-koramangala\_bangalore. If supplied, this takes priority over Location.

## `location` (type: `string`):

Use when no URL is supplied. Enter a locality and city such as Koramangala, Bangalore, or a city such as Bangalore.

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

Used in location mode. A URL determines its own listing type.

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

Optional NoBroker property type filter for sale searches. Leave empty to use the URL type or all applicable property types.

## `sortBy` (type: `string`):

Optional sort order. Values mirror NoBroker: rank, date, price/rent, or availability.

## `results_wanted` (type: `integer`):

Maximum number of unique property listings to save.

## `max_pages` (type: `integer`):

Maximum number of API result pages to request.

## Actor input object example

```json
{
  "startUrl": "https://www.nobroker.in/flats-for-sale-in-koramangala_bangalore",
  "listingType": "SALE",
  "results_wanted": 20,
  "max_pages": 3
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# 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 = {
    "startUrl": "https://www.nobroker.in/flats-for-sale-in-koramangala_bangalore",
    "results_wanted": 20,
    "max_pages": 3
};

// Run the Actor and wait for it to finish
const run = await client.actor("shahidirfan/nobroker-in-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 = {
    "startUrl": "https://www.nobroker.in/flats-for-sale-in-koramangala_bangalore",
    "results_wanted": 20,
    "max_pages": 3,
}

# Run the Actor and wait for it to finish
run = client.actor("shahidirfan/nobroker-in-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 '{
  "startUrl": "https://www.nobroker.in/flats-for-sale-in-koramangala_bangalore",
  "results_wanted": 20,
  "max_pages": 3
}' |
apify call shahidirfan/nobroker-in-property-scraper --silent --output-dataset

```

## MCP server setup

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