99acres Property Scraper - India Buy, Rent, Commercial & Land
Pricing
from $1.32 / 1,000 property searches
99acres Property Scraper - India Buy, Rent, Commercial & Land
Scrape 99acres listings in any Indian city: exact rupee price, BHK, carpet area, RERA ID, GPS, pre-leased commercial rent and the posting agent. Buy and rent.
Pricing
from $1.32 / 1,000 property searches
Rating
0.0
(0)
Developer
SIÁN OÜ
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
3 days ago
Last modified
Categories
Share
99acres Property Scraper — India Listings, Prices & RERA Data 🏙️
🎉 Real listings, not builder adverts. 88 fields per property, from $1.50 per 1,000
For analysts, brokers and proptech teams who need Indian commercial, land and residential inventory in one table
🔎 What is the 99acres Property Scraper — and when should you use it?
The 99acres Property Scraper turns any 99acres search on India's highest-traffic property portal into clean, structured rows you can filter, export and feed straight into a spreadsheet, database or AI agent. No account, no portal API key, no browser automation to maintain.
Use it when you need: asking prices in exact rupees, price per square foot, BHK, and carpet, built-up and super built-up area as three separate figures. Rows also carry floor out of total floors, furnishing, availability, possession, ownership basis and the RERA registration id, for property to buy or to rent in any Indian city. Commercial listings add whether the unit is pre-leased, the sitting tenant's monthly rent, the lease tenure, the quoted annual return and the coworking seat range. GPS coordinates, amenities, nearby landmarks and photos come with every row, as does the name, firm and type of whoever posted it — Owner, Dealer or Builder.
Use something else when: the property is outside India. Use Property Finder Scraper for the UAE, Saudi Arabia and Qatar. Use Smart Idealista Scraper for Spain, Italy and Portugal. Use Redfin Property Scraper for the United States, with sold prices and market KPIs. For the same Indian city from the other major portal, use MagicBricks Property Scraper — running both and comparing is often the point. This actor reads live 99acres listings only. The portal masks the poster's phone number and email on the page itself, so a row carries their name, firm and listing history but never a number. Budget filtering is not a field, because the site's budget parameters do nothing when appended by hand; paste a result URL you built on 99acres into searchUrls instead.
🤖 Use with AI agents
Already connected to the Apify MCP server? Just ask for this Actor by name: sian.agency/99acres-property-scraper
Your agent can pay for its own runs. This Actor is eligible for agentic payments, so an agent can discover it, run it and settle the bill over x402 (USDC on Base) or Skyfire — without an Apify account or API token of its own. Billing is the same either way: per successful row, never for errors.
Otherwise copy this prompt into Claude, ChatGPT, Cursor or any MCP-enabled assistant:
I want to research the Indian property market, including its commercial and land inventory using the Apify Actor `sian.agency/99acres-property-scraper`.Use it when I need: asking prices in exact rupees, price per square foot, BHK, and carpet, built-up and super built-up area as three separate figures. Rows also carry floor out of total floors, furnishing, availability, possession, ownership basis and the RERA registration id, for property to buy or to rent in any Indian city. Commercial listings add whether the unit is pre-leased, the sitting tenant's monthly rent, the lease tenure, the quoted annual return and the coworking seat range. GPS coordinates, amenities, nearby landmarks and photos come with every row, as does the name, firm and type of whoever posted it — Owner, Dealer or Builder.Don't use it when: the property is outside India — use propertyfinder-property-scraper or smart-idealista-scraper or redfin-property-scraper instead.How to call it: give `cities` a list of Indian cities written the way 99acres writes them (`Mumbai`, `Delhi`, `Bangalore`, `Pune`, `Hyderabad`, `Chennai`, `Kolkata`, `Noida`, `Gurgaon`), then set `listingType` to `sale` or `rent` and `propertyType` to one of fifteen values — `all-residential`, `flats`, `independent-house`, `builder-floor`, `penthouse`, `farm-house`, `residential-land`, `paying-guest`, `all-commercial`, `office-space`, `shop`, `showroom`, `warehouse`, `commercial-land` or `agricultural-land`. Narrow with `bedrooms` (1 to 5, residential only), `minAreaSqft`, `maxAreaSqft` and `maxResults`. `includeDetails` adds the government registry transaction rate for the locality, its one, three and five-year price trend, the full construction specification and the posting dealer's profile, for an extra charge per listing. To expand listings you already have, set `operation` to `detail` and pass `propertyUrls`; to reuse a search you built on the site with its own budget or amenity filters, paste the URL into `searchUrls`.Start with this input:{"operation": "search","cities": ["Mumbai"],"listingType": "sale","propertyType": "all-residential","bedrooms": "2","maxResults": 120}Ask me which cities they want, whether they are buying or renting, and whether they mean residential, commercial or land, then run the Actor and summarise the results as a table.
Things you can ask your agent for:
- Find every pre-leased warehouse and office for sale in Mumbai and Pune, then rank them by the yield each listing quotes.
- Compare carpet-area price per square foot for 2 BHK flats in Powai versus Andheri West and tell me which is better value.
- Pull residential plots in Bangalore over 2,000 sqft and flag which ones carry a RERA registration.
Machine-readable API, MCP config and OpenAPI definition for this Actor are published at apify.com/sian.agency/99acres-property-scraper.md.
📋 Overview
Indian property data, without the browser tabs. The 99acres Scraper reads any city search on India's largest-traffic property portal and hands back structured rows. Analysts use it for comparables, brokers to find inventory, product teams to keep a valuation model fed.
Why thousands of professionals choose us:
- ✅ Real listings, not project cards: 99acres groups residential sale results into builder advertisements. This Actor requests the ungrouped view, so a page that would have returned 2 properties and 25 adverts returns 27 properties.
- ⚡ 88 fields per row, one request per page: everything arrives with the result page, so there is no second lookup to pay for and no browser to wait on.
- 🎯 Three area figures, kept apart: carpet, built-up and super built-up ship as separate columns. A price per square foot means the same thing on every row you compare.
- 💰 From $1.50 per 1,000 rows: no other 99acres Actor on the Store charges less per row.
- 💎 Commercial and land treated as first-class: pre-leased status, the tenant's monthly rent, lease tenure, quoted annual return, booking amount and coworking seat range.
- ✨ NEW: full property pages add the government registry transaction rate for the locality and its one, three and five-year price movement.
✨ Features
- 🏙️ Any Indian city: Mumbai, Delhi, Bangalore, Pune, Hyderabad, Chennai, Kolkata, Ahmedabad, Noida, Gurgaon, Thane and the rest.
- 🔑 Buy and rent: one switch. Rent prices come back as monthly rupees.
- 🏢 Fifteen property types: flats, independent houses, builder floors, penthouses, farm houses, residential plots, agricultural land, offices, shops, showrooms, warehouses and paying-guest accommodation.
- 🛡️ RERA on every row: the listing's registration id, plus separate flags for whether the poster and the dealer are registered.
- 📍 Coordinates included: latitude and longitude, with the source 99acres used to place the pin.
- 📈 Pre-leased economics: sitting rent, tenure and yield on commercial rows — the numbers an investor actually screens on.
- 🧑💼 Lister history: name, firm, Owner/Dealer/Builder, how long they have been on the platform and how many enquiries they have taken.
- 📄 Optional deep pages: registry transaction rates, locality price trend, flooring, ceiling height, power backup, lifts, fire NOC, occupancy certificate and parking type.
- 🔗 Paste your own search: build any filter combination on the site and hand the URL over.
- 📊 Export anywhere: JSON, CSV or Excel, straight from the dataset.
🎬 Quick Start
Pick a city, pick buy or rent, press run. The first page returns in a few seconds and the run keeps paging until it hits your row limit. Nothing else needs configuring.
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~99acres-property-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"cities": ["Mumbai"], "listingType": "sale", "maxResults": 50}'
🚀 Getting Started (3 Simple Steps)
Step 1: Name your cities
Type them the way 99acres does — Bangalore, not Bengaluru; Delhi, not New Delhi. Add as many as you want; each one runs as its own search.
Step 2: Choose what you are looking for
Buy or rent, then a property type. "Every residential type" and "Every commercial type" are the widest nets; plots, warehouses and offices are their own searches.
Step 3: Set a row limit and run
Leave the rest alone. Turn on full property pages if you want registry rates and the locality price trend.
That's it! In under a minute, you'll have:
- A table of live listings with prices, areas, BHK, floor and coordinates
- RERA registration ids where the seller filed one
- The name and type of whoever posted each listing
📥 Input Configuration
| Field | Type | Required | Description |
|---|---|---|---|
operation | string | No | search (default) or detail |
cities | array | No | Indian cities to search, e.g. Mumbai, Bangalore, Pune |
listingType | string | No | sale or rent |
propertyType | string | No | all-residential, flats, independent-house, builder-floor, penthouse, farm-house, residential-land, paying-guest, all-commercial, office-space, shop, showroom, warehouse, commercial-land, agricultural-land |
bedrooms | string | No | any, 1, 2, 3, 4 or 5 |
minAreaSqft | integer | No | Lower area bound in square feet; 0 for none |
maxAreaSqft | integer | No | Upper area bound in square feet; 0 for none |
maxResults | integer | No | Stop after this many listings across all cities |
includeDetails | boolean | No | Open each property page for registry rates, price trend and full specification |
propertyUrls | array | No | Property URLs for the detail operation |
searchUrls | array | No | Paste 99acres result-page URLs instead of using the fields above |
Example:
{"operation": "search","cities": ["Mumbai"],"listingType": "sale","propertyType": "all-residential","bedrooms": "2","maxResults": 50}
Commercial and land:
{"operation": "search","cities": ["Mumbai", "Pune"],"listingType": "sale","propertyType": "warehouse","minAreaSqft": 5000,"maxResults": 200}
Your own search URL:
{"operation": "search","searchUrls": [{ "url": "https://www.99acres.com/flats-in-mumbai-50-lakhs-to-75-lakhs-ffid" }],"maxResults": 100}
📤 Output
Results are saved to the Apify dataset with 88 fields including:
| Field | Type | Description |
|---|---|---|
propertyId | string | 99acres listing id |
listingTitle | string | Listing headline |
propertyUrl | string | Link to the listing |
price | number | Asking price in exact rupees |
priceText | string | The figure as 99acres displays it, e.g. 3.6 Cr |
pricePerSqft | number | Rupees per square foot |
carpetAreaSqft | number | Carpet area |
superBuiltUpAreaSqft | number | Super built-up area |
bedrooms | number | BHK count |
floorNumber | number | Floor, with totalFloors alongside |
reraId | string | RERA registration id |
isPreLeased | boolean | Commercial: whether a tenant is sitting |
preLeasedMonthlyRent | number | Commercial: the tenant's monthly rent |
latitude / longitude | number | Coordinates |
listerName / listerType | string | Who posted it, and whether Owner, Dealer or Builder |
Example:
{"propertyId": "Q93309702","listingTitle": "2 BHK Flat in Sewri, Mumbai","propertyUrl": "https://www.99acres.com/2-bhk-bedroom-apartment-flat-for-sale-in-sewri-south-mumbai-805-sqft-spid-Q93309702","listingType": "sale","propertyCategory": "residential","propertyType": "Residential Apartment","price": 36000000,"priceText": "3.6 Cr","pricePerSqft": 44720,"bedrooms": 2,"bathrooms": 2,"carpetAreaSqft": 805,"areaType": "Carpet Area","floorNumber": 8,"totalFloors": 34,"furnishing": "Semifurnished","reraId": "A51900000980","isPosterReraRegistered": true,"societyName": "Rustoomjee Vista Bay","locality": "Sewri, Mumbai","city": "Mumbai South","latitude": 19.000645,"longitude": 72.854859,"listerName": "Manoj Prithiani","listerCompany": "DHM Estates","listerType": "Dealer","highlights": ["8th out of 34 Floors", "Overlooking Park", "North-East Facing"],"imageCount": 3}
💼 Use Cases & Examples
1. Pre-Leased Commercial Yield Screening
A real-estate investment analyst screening a city's investable commercial stock on yield rather than asking price.
Input: Mumbai and Pune, all-commercial, for sale
Output: Rows carrying the sitting tenant's monthly rent, the lease tenure and the quoted annual return
Use: Rank a whole city's warehouses, offices and shops by real yield in one pass
2. Plot and Land Banking
A land buyer building a shortlist of plots across satellite towns.
Input: residential-land or agricultural-land, with a minimum area
Output: Area, price per square foot, ownership basis and coordinates for every plot
Use: The land dataset residential-only portals cannot supply
3. RERA Compliance and Developer Audit
A compliance team separating registered inventory from unregistered.
Input: Any city, all-residential
Output: RERA registration ids, plus flags for whether the poster and the dealer are registered
Use: See in one table which developers and dealers are operating without a filing
4. Locality Price Benchmarking
A valuation team building comparables for a micro-market.
Input: Two localities, same BHK, with full property pages turned on Output: Carpet area, price per square foot, the registry transaction rate for the locality and its one, three and five-year price movement Use: Benchmark asking prices against what actually registered
5. Dealer and Agent Lead Generation
A broker deciding which agents in a micro-market are worth calling.
Input: A city, with full property pages turned on Output: Lister name, firm, Owner/Dealer/Builder, tenure on the platform, listing and verified counts, and the localities they cover Use: Rank agents by real inventory instead of guessing
6. Rental Yield Modelling
An analyst modelling gross yield without a research subscription.
Input: The same city run once for sale and once for rent Output: Both sides joined on society and BHK, with tenant preference and furnishing on the rent rows Use: Gross yield for a micro-market in two runs
7. Proptech Search and Valuation Feeds
A product team feeding an Indian property search or pricing model.
Input: Several cities on a schedule Output: Coordinates, three area figures, amenities, nearby landmarks and society name on every row Use: A comparables feed that refreshes itself
🔗 Integration Examples
JavaScript/Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('sian.agency/99acres-property-scraper').call({cities: ['Mumbai', 'Pune'],listingType: 'sale',propertyType: 'all-commercial',maxResults: 200});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items[0]);
Python
from apify_client import ApifyClientclient = ApifyClient('YOUR_TOKEN')run = client.actor('sian.agency/99acres-property-scraper').call(run_input={'cities': ['Bangalore'],'listingType': 'rent','bedrooms': '2','maxResults': 100,})for item in client.dataset(run['defaultDatasetId']).iterate_items():print(item['price'], item['locality'])
cURL
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~99acres-property-scraper/runs?token=YOUR_TOKEN' \-H 'Content-Type: application/json' \-d '{"cities": ["Mumbai"], "listingType": "sale", "maxResults": 50}'
Automation Workflows (N8N / Zapier / Make)
- Trigger: Schedule, weekly or nightly
- HTTP Request: Call the actor API with your cities
- Process: Filter the JSON on price per square foot or RERA presence
- Action: Append to a sheet, write to a database, or alert on new inventory
📊 Performance & Pricing
FREE Tier (Try It Now)
- 25 listings per run — every field, same quality
- No credit card required
- Enough to check the columns before you commit
PAID Tier (Production Ready)
- Unlimited listings per run
- Deep paging across as many cities as you list
- Pay-per-result: charged for listings returned, never for a search that matched nothing
💰 The lowest price on the board. No other live 99acres Actor charges less per row.
❓ Frequently Asked Questions
Q: How many listings can I get from one search? A: About 5,000. Paging stays clean past 200 pages, deeper than most searches have inventory for. To go wider, add cities and property types.
Q: Do I need an API key, a login or a proxy? A: No. Give it a city and press run.
Q: Why do other 99acres scrapers return so few real listings? A: The site groups residential sale results into new-launch project cards, so a page that presents as 27 results is often 25 builder adverts and 2 properties. This Actor asks for the ungrouped view, so every row you are billed for is a real listing.
Q: Can I filter by budget? A: Not as a field. The site's budget parameters change nothing when appended by hand, so exposing them would bill you for a filter that does not apply. Build the search on 99acres with the budget band you want and paste that URL into Search URLs — the page applies it and every row honours it.
Q: Do I get phone numbers or email addresses? A: No. 99acres masks them on the page itself. You get the name, the firm, the type and their listing history.
Q: What is different about the commercial rows? A: They carry columns residential rows do not — pre-leased status, the sitting tenant's monthly rent, lease tenure, quoted annual return, booking amount and, for coworking, the seat range.
Q: Why does price divided by area sometimes disagree with the price-per-sqft column?
A: That column is 99acres' own published figure, and on a small share of listings the portal computes it against a different area basis than the one the card displays — a plot's land area rather than its built-up area, for example. It came out at about 3 rows in 50 on a Mumbai run. The price and areaSqft columns are both the displayed values, so divide those yourself when the two disagree.
Q: What output formats are available? A: JSON, CSV and Excel, exported directly from the Apify dataset.
Q: Is this legal? A: Yes — only publicly available listings are read. See the legal section below.
🐛 Troubleshooting
"99acres does not list that property type in that city"
- The site answered with a general city search instead of the type you asked for, which means it carries no such inventory there.
- Switch to "Every residential type" or "Every commercial type", or try a larger city.
"99acres has no results page for that combination"
- Check the city spelling the way 99acres writes it: Bangalore, not Bengaluru; Delhi, not New Delhi.
- Some property types are sale-only. Switch "Buy or rent" to "For sale".
"99acres returned no listings for that search"
- The filters are narrower than the inventory. Clear the BHK or area limits, or widen the property type.
"99acres declined the request"
- The site throttled the run. Search fewer cities at a time, or space scheduled runs further apart.
A run returned fewer rows than the limit you set
- The search ran out of inventory. Add cities or property types rather than raising the limit.
⚖️ Is it legal to scrape data?
Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.
However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.
You can also read Apify's blog post on the legality of web scraping.
99acres is a trademark of Info Edge (India) Limited. This actor is not affiliated with, endorsed by, or sponsored by Info Edge (India) Limited.
🤝 Support
Join our active support community
- For issues or questions, open an issue in the actor's repository
- Check SIÁN Agency Store for more automation tools
- 📧 apify@sian-agency.online
Built by SIÁN Agency | More Tools