NoBroker Property Listings Scraper
Pricing
Pay per event
NoBroker Property Listings Scraper
Extract public NoBroker rent, sale, and PG listings with prices, property attributes, location, owner-direct context, images, amenities, and source URLs.
Pricing
Pay per event
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Extract public NoBroker rent, sale, and PG property listings into structured records for owner-direct inventory and price monitoring in India.
The Actor searches six major cities or accepts exact NoBroker search-result URLs. It returns stable listing identity, pricing, property attributes, location, public lister context, amenities, images, timestamps, and source URLs. It never opens the contact-owner flow and does not collect private phone numbers.
What does the NoBroker scraper do?
NoBroker Property Listings Scraper converts public search results from nobroker.in into analysis-ready JSON, CSV, Excel, XML, or RSS through the standard Apify Dataset.
It supports three distinct workflows:
- monthly residential rentals;
- residential properties for sale;
- paying-guest (PG) accommodation.
Each run reads NoBroker's public server-rendered listing data, normalizes the fields, removes duplicate property IDs, and stops at your requested result limit.
Who is it for?
- Property analysts tracking asking rents, sale prices, and available inventory.
- Proptech teams building internal matching, valuation, or market-research pipelines.
- Relocation teams comparing rental and PG supply across major Indian cities.
- Investors monitoring owner-direct sale inventory and locality-level asking prices.
- Data engineers feeding scheduled property snapshots into a warehouse or spreadsheet.
This Actor is for public listing research. It is not a contact-unlocking or owner-phone product.
Why use this Actor?
- Search rent, sale, and PG inventory with one stable input contract.
- Choose Bangalore, Mumbai, Delhi, Hyderabad, Pune, or Chennai without constructing a URL.
- Paste an exact public NoBroker search URL to preserve source-side locality and property filters.
- Receive one typed record per unique listing.
- Preserve stable IDs and timestamps for recurring snapshot comparisons.
- Avoid browser overhead because public structured search data is available in the page response.
- Keep contact-owner data outside the workflow.
What data can you extract?
| Field | Meaning |
|---|---|
listingId | Stable NoBroker listing identifier |
listingType | rent, sale, or pg |
title | Public property listing title |
url | Canonical NoBroker detail URL |
city, locality, address | Public location context |
price | Sale asking price in INR, when applicable |
rent | Monthly rent or minimum PG rent in INR |
deposit | Security deposit or minimum PG deposit in INR |
maintenance | Public maintenance amount when present |
propertyType, bhk | Property and room configuration |
areaSqFt, bathrooms | Size and bathroom count when present |
furnishing, parking | Furnishing and parking descriptions |
floor, totalFloors, propertyAge | Building attributes when available |
availableFrom | Availability timestamp when published |
listedByName | Publicly displayed lister name, when present |
ownerDirect | Owner-direct context inferred from the public record |
latitude, longitude | Public listing coordinates |
amenities | Public amenity codes or labels |
imageUrls | Public listing image URLs |
lastUpdatedAt | Source update timestamp when available |
sourceUrl | Exact result page that produced the record |
scrapedAt | Actor extraction timestamp |
Fields that NoBroker does not publish for a listing are returned as null or an empty array rather than guessed.
Getting started
- Open the Actor input page.
- Choose a City.
- Choose Rent, Sale, or PG accommodation.
- Set Maximum listings to the number of unique records you need.
- Click Start.
- Open the default Dataset when the run finishes.
- Export as JSON, CSV, Excel, XML, or RSS.
The prefilled input requests a small Bangalore rental snapshot and is suitable for a first run.
Input parameters
city
Supported values are Bangalore, Mumbai, Delhi, Hyderabad, Pune, and Chennai.
The default is Bangalore. City mode is convenient for broad inventory snapshots.
listingType
Choose rent, sale, or pg.
The default is rent.
startUrls
Optional array of exact public NoBroker search-result URLs.
Use this mode when you have already selected localities or filters on NoBroker. URLs must be on nobroker.in and have a /property/rent/, /property/sale/, or /property/pg/ path.
When startUrls is supplied, omit city and listingType.
maxItems
Maximum unique records saved across all searches.
Default: 50. Minimum: 1. Maximum: 1000.
maxPages
Maximum result pages fetched for each search URL.
Default: 20. Minimum: 1. Maximum: 40.
The Actor can stop earlier when the requested item limit is reached or pages stop yielding new IDs.
Input examples
Broad Bangalore rental search:
{"city": "Bangalore","listingType": "rent","maxItems": 25,"maxPages": 3}
Mumbai sale inventory:
{"city": "Mumbai","listingType": "sale","maxItems": 50,"maxPages": 5}
Exact NoBroker search URL:
{"startUrls": [{ "url": "https://www.nobroker.in/property/rent/bangalore/Bangalore/?searchParam=..." }],"maxItems": 100,"maxPages": 10}
Output example
A current PG result is normalized like this:
{"listingId": "ff8081816bdfdcea016be14408af5e33","listingType": "pg","title": "PG for Girls in Koti","url": "https://www.nobroker.in/property/pg/pg-hostel-for-girls-in-koti-hyderabad-for-rs-4800/ff8081816bdfdcea016be14408af5e33/detail","city": "hyderabad","locality": "Koti","rent": 4800,"deposit": 4800,"propertyType": "PG","bhk": "1 BHK","listedByName": "Public lister name","ownerDirect": true,"amenities": [],"imageUrls": ["https://assets.nobroker.in/images/..._medium.jpg"],"lastUpdatedAt": "2026-07-13T05:20:34.000Z","scrapedAt": "2026-08-16T06:34:25.320Z"}
The default Dataset view emphasizes identity, type, price, locality, core attributes, owner-direct context, source update time, and canonical URL.
How much does it cost to extract NoBroker property listings?
Pricing uses one start event per run plus one item event for each saved unique listing. Failed, duplicate, or rejected records do not create item charges.
The one-time start event is $0.00005. Active per-listing tiers are:
| Tier | Price per saved listing |
|---|---|
| FREE | $0.00092 |
| BRONZE | $0.0008 |
| SILVER | $0.000624 |
| GOLD | $0.00048 |
| PLATINUM | $0.00032 |
| DIAMOND | $0.000224 |
For budgeting, calculate:
$0.00005 start + (saved listings × your active item tier)
At BRONZE, 25 saved listings cost $0.02005 and 100 saved listings cost $0.08005. At FREE, a 25-listing smoke run costs $0.02305. Runtime infrastructure can also vary slightly with response time, but this lightweight HTTP Actor uses 256 MB memory and does not enable a paid proxy fallback.
Schedule recurring inventory monitoring
Create an Apify Schedule for daily or weekly snapshots.
Use listingId as the stable comparison key. Store each run's Dataset ID or export records to your database, then compare:
- newly observed listing IDs;
- IDs no longer present in the bounded search;
- changed rent, sale price, or deposit;
- changed availability and source update timestamps;
- supply by city, locality, property type, or BHK.
A missing ID from one bounded snapshot does not prove a property was removed. Search ordering and your maxItems limit can also affect membership.
Export to spreadsheets and data pipelines
After a run, open the Dataset and choose CSV or Excel for one-off analysis.
For automation, connect the Dataset to:
- Google Sheets through an Apify integration;
- Make or Zapier for downstream notifications;
- a webhook that starts ETL after the run succeeds;
- your warehouse through the Dataset API;
- Python or JavaScript snapshot-diff jobs.
The Actor returns primary records in the default Dataset, so standard Apify integrations work without a custom dataset name.
API usage
Replace YOUR_TOKEN with an Apify API token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~nobroker-property-listings-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"city":"Bangalore","listingType":"rent","maxItems":25}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/nobroker-property-listings-scraper').call({city: 'Mumbai',listingType: 'sale',maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("automation-lab/nobroker-property-listings-scraper").call(run_input={"city": "Hyderabad", "listingType": "pg", "maxItems": 25})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with Apify MCP
Add the Actor to Claude Code:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/nobroker-property-listings-scraper"
Claude Desktop, Cursor, and VS Code
Claude Desktop, Cursor, and VS Code can use the same actor-scoped HTTP server configuration:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/nobroker-property-listings-scraper"}}}
Example prompts:
- "Run the NoBroker scraper for 25 Bangalore rentals and summarize median rent by BHK."
- "Extract 50 Mumbai sale listings and save the Dataset URL."
- "Create a Hyderabad PG snapshot and compare IDs with my previous Dataset."
Reliability and pagination
The Actor retries transient request failures twice and validates that NoBroker returned the expected structured listing state.
Pagination is sequential and intentionally conservative. Overlapping source pages are deduplicated by stable listing ID. The run stops after two consecutive pages add no unique records.
If NoBroker changes its public page structure, the Actor fails clearly instead of emitting guessed or empty records as success.
Limitations
- City mode covers six major Indian cities; use exact public search URLs for narrower source filters.
- Search ordering, promoted listings, and availability can change between runs.
maxItemslimits a snapshot and does not promise complete city inventory.- Some fields are absent for some listing types and remain
null. - Amenity values can be source codes when NoBroker does not include a display label.
- No contact-owner phone, unlocked contact, login-only, or private account data is collected.
- The Actor does not automatically switch to residential proxies or a browser.
Responsible use and legality
Only collect and process data you are authorized to use.
Review NoBroker's terms, robots guidance, and applicable Indian and international privacy, database, and consumer-protection law. Keep request volume proportionate, use bounded schedules, and avoid republishing personal context in ways that could harm individuals.
Public lister names can still be personal data. Minimize retention, restrict access, and remove the field downstream when your analysis does not need it.
This Actor is an independent data tool and is not affiliated with or endorsed by NoBroker.
Troubleshooting
Why did the run reject my URL?
Only public nobroker.in search-result URLs with rent, sale, or PG paths are accepted. Detail URLs, login pages, and third-party domains fail closed.
Why are there fewer records than maxItems?
The bounded search may contain fewer unique records, pages may overlap, or maxPages may stop pagination first. Check run logs and the exact source URL.
Why is a field null?
NoBroker publishes different fields for rent, sale, and PG records. The Actor does not invent missing values.
What should I do after an upstream HTTP error?
Retry later once. If repeated runs fail on the same public URL, inspect whether it still opens anonymously and include the run URL when reporting the issue.
FAQ
Is NoBroker free to browse with this Actor?
NoBroker's public search pages are the data source. Running this Actor uses Apify's active pay-per-event pricing and platform resources; check Console for your exact tier.
Does it reveal owner phone numbers?
No. It does not open contact-owner workflows or unlock contact details.
Can I scrape my own filtered NoBroker URL?
Yes. Supply the exact public search-result URL in startUrls and omit city and listingType.
Can I run it every day?
Yes. Use an Apify Schedule and compare records by listingId, while keeping limits and legal obligations in mind.
Does ownerDirect: true guarantee a legal or commercial relationship?
No. It reports source-side public listing context. Verify important decisions independently.
Related Automation Lab actors
- Brazil Multi-platform Property Listings for cross-source Brazilian property monitoring.
- PropertyGuru Singapore Listings & Agent Leads Scraper for Singapore listing research.
Use related Actors only when the source and geography match your job; they are not automatic fallbacks for this Actor.