99acres Property Scraper
Pricing
from $1.80 / 1,000 results
99acres Property Scraper
[๐ฐ $1.8 / 1K] Extract property listings from 99acres.com โ India's largest real estate portal. Search by city, transaction type, BHK, and budget, or paste search URLs directly. Returns prices, locations, specifications, photos, and RERA details for residential and commercial properties.
Pricing
from $1.80 / 1,000 results
Rating
0.0
(0)
Developer
SolidCode
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Pull property listings from 99acres.com โ India's largest real estate portal โ at scale. Capture residential and commercial listings, new-launch developer projects, prices in INR, lakh / crore breakdowns, BHK configurations, map coordinates, RERA registration IDs, builder names, agent contacts, and full photo galleries in one structured dataset. Built for real-estate analysts, property investors, builder-developer intel teams, listing aggregators, and PropTech apps that need fresh 99acres data without wrestling with India-specific price strings, locality slugs, and dual card formats.
Why This Scraper?
- Dual-card normalizer in one feed โ regular property listings AND sponsored new-launch project cards arrive in the same dataset, every row tagged with
cardType: "property"or"project"so you can split them downstream with a single filter. - 43 cities across 8 metro regions โ verified ID coverage for Delhi NCR (Delhi, Noida, Gurgaon, Ghaziabad, Faridabad), Mumbai (incl. Western and Central Suburbs, Navi Mumbai, Thane), Bangalore, Pune, Kolkata, Chennai, Hyderabad, and Ahmedabad, plus their satellite towns.
- 6 transaction types in one schema โ Buy (Residential), Rent (Residential), Paying Guest / Co-living, New Launches, Buy (Commercial), and Rent (Commercial), normalized to a single flat row format.
- 10 property types โ Apartment / Flat, Independent House, Villa, Builder Floor, Studio Apartment, Plot / Land, Farmhouse, Office Space, Retail Shop / Showroom, and Warehouse / Industrial.
- Lat / lng on every listing โ map coordinates extracted from the listing's
MAP_DETAILSblock, ready for spatial joins, heat maps, or distance-to-metro analytics. - Price normalization built in โ heterogeneous Indian price strings ("1.15 Cr", "โน50 Lakh", "โน15,000", "2.5L") parsed into integer rupees in
priceInr, plus a separatepricePerSqftInrrate andpriceMinInr/priceMaxInrrange for project cards. - Builder, RERA, and possession metadata for new launches โ
builderName,reraId,isNewLaunch,possessionStatus, plus the fullconfigSummaryarray (per-BHK area + price breakdown) andkeyHighlightsbullets. - Locality autocomplete by name โ paste neighborhood names like "Bandra West", "Whitefield", or "Koramangala" directly. The actor resolves them to 99acres' internal IDs via the same dropdown the website uses.
- Search-URL passthrough โ paste any 99acres search URL with the filters already applied (BHK, budget, RERA, ready-to-move, property type) and the actor honors them as-is. No filter mapping required.
- Smooth pagination across all pages โ approximately 25 listings per page across pagination (page 1 ships 27, follow-on pages 24-26), with deterministic stop-on-empty so a 200-row run pages until satisfied without overshoot.
Use Cases
Market Research & Pricing Intelligence
- Track ask-price-per-sqft across Mumbai's Western Suburbs, week over week
- Map the supply curve of 2-3 BHK apartments in Bangalore IT corridors
- Build a city-level price heat map from
latitude+longitude+pricePerSqftInr
Investment Analysis
- Surface verified resale apartments under โน1 Cr in target localities
- Compare new-launch project pricing (
cardType: "project") against resale comps - Filter for
verified: truelistings to focus on agent-validated inventory
Lead Generation & CRM Enrichment
- Pull contactable agent names, companies, and city for outbound real-estate sales
- Identify owner-direct postings (
agentType: "Owner") for direct-deal pipelines - Enrich CRM records with society / project name and full address
Builder & Developer Intelligence
- Track which builders are launching the most projects in a given quarter
- Monitor possession status and RERA filings by developer
- Capture
configSummaryto compare 2/3/4 BHK price tiers across launches
Real-Estate Tech & Aggregator Apps
- Power a property comparison feed with photos, amenities, and floor counts
- Feed a mortgage calculator or affordability tool with live
priceInrdata - Build a hyperlocal listings widget keyed on
locality+bedrooms
PG / Co-Living & Rental Operators
- Benchmark rent prices across PG and shared-accommodation listings
- Track 1 BHK and 2 BHK rental supply by furnishing status
- Surface furnished, ready-to-move flats matching corporate housing briefs
Getting Started
Simple โ One City, Buy Listings
{"city": "Mumbai","transactionType": "buy","maxResults": 200}
Filtered โ Bangalore 2+ BHK Rentals in Specific Localities
{"city": "Bangalore","transactionType": "rent","propertyType": "apartment","bedroomsMin": 2,"localities": ["Koramangala", "HSR Layout", "Indiranagar"],"maxResults": 100}
Advanced โ Search-URL Passthrough
For maximum filter precision, paste 99acres search URLs straight from your browser (any combination of filters you can apply on the site):
{"searchUrls": ["https://www.99acres.com/search/property/buy/mumbai?city=12&res_com=R&preference=S","https://www.99acres.com/search/property/rent/bangalore?city=20&res_com=R&preference=R&bedroom_num=2,3"],"maxResults": 500}
New Launches โ Developer Projects Only
{"city": "Pune","transactionType": "new-launches","maxResults": 100}
Input Reference
Search
| Parameter | Type | Default | Description |
|---|---|---|---|
searchUrls | array | [] | Paste one or more 99acres search-result URLs. When provided, the structured filters below are ignored. |
city | string | "Mumbai" | City to search in (e.g. "Mumbai", "Bangalore", "Delhi", "Pune", "Hyderabad"). Common aliases are recognised โ "Bengaluru" maps to Bangalore, "Bombay" to Mumbai, "Calcutta" to Kolkata, "Madras" to Chennai, "Gurugram" to Gurgaon. |
Filters
| Parameter | Type | Default | Description |
|---|---|---|---|
transactionType | enum | "buy" | One of: Buy (Residential), Rent (Residential), Paying Guest / Co-living, New Launches, Buy (Commercial), Rent (Commercial). |
propertyType | enum | null | Apartment / Flat, Independent House, Villa, Builder Floor, Studio Apartment, Plot / Land, Farmhouse, Office Space, Retail Shop / Showroom, or Warehouse / Industrial. Leave blank for all. |
bedroomsMin | integer | null | Minimum BHK. Setting 2 includes 2 BHK, 3 BHK, 4 BHK, and 5+ BHK listings. Ignored for Plot, Commercial, and PG searches. |
priceMinInr | integer | null | Target minimum price in rupees (e.g. 5000000 for โน50 lakh). See Tips for current behavior. |
priceMaxInr | integer | null | Target maximum price in rupees (e.g. 30000000 for โน3 Cr). See Tips for current behavior. |
localities | array | [] | Locality names to narrow within the city (e.g. "Bandra West", "Whitefield", "Gurgaon Sector 49"). Resolved to 99acres' internal IDs automatically. |
Limits
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 200 | Maximum listings to collect across all searches. Set to 0 for no cap (an internal upper limit of 50,000 still applies). The actor stops requesting new pages once this number is reached but keeps the full final page even if it slightly overshoots. |
Output
Output is one flat row per listing, with cardType discriminating regular property listings from sponsored new-launch project cards. The two card types share the same column set โ fields irrelevant to a given card type land as null so downstream pipelines stay schema-stable.
Example โ Property Card (cardType: "property")
{"cardType": "property","spid": "R12345678","propertyUrl": "https://www.99acres.com/3-bhk-bedroom-apartment-flat-for-sale-in-bandra-west-mumbai-spid-R12345678","transactionType": "buy","propertyType": "Apartment","title": "3 BHK in Bandra West","bedrooms": 3,"bedroomsLabel": "3 BHK","bathrooms": 3,"areaSqft": 1450.0,"areaSqm": 134.71,"areaType": "Carpet Area","priceInr": 47500000,"priceLabel": "4.75 Cr","pricePerSqftInr": 32758.62,"negotiable": true,"city": "Mumbai","locality": "Bandra West","society": "Sea Breeze Heights","address": "Bandra West, Mumbai","latitude": 19.0606,"longitude": 72.8362,"furnishing": "Semi-Furnished","propertyAge": "5-10 years","floor": "12 of 22","facing": "North-East","availability": "Ready to Move","verified": true,"reraId": "P51800012345","postedAt": "2026-04-21T08:14:00+00:00","agentName": "Priya Mehta","agentCompany": "Mumbai Realty Co.","agentType": "Broker","agentVerified": true,"propertyImages": ["https://img.99acres.com/...jpg"],"amenities": ["Lift", "Reserved Parking", "Power Backup", "Gymnasium"],"tags": ["Verified", "Negotiable"],"description": "Spacious 3 BHK in a premium tower...","scrapedAt": "2026-05-08T10:00:00+00:00"}
Example โ Project Card (cardType: "project")
{"cardType": "project","spid": "12345","propertyUrl": "https://www.99acres.com/lodha-park-worli-mumbai-npxid-r12345","transactionType": "new-launches","propertyType": "Apartment / Project","title": "Lodha Park","bedrooms": 2,"bedroomsLabel": "2, 3 BHK","areaSqft": 985.0,"areaSqm": 91.51,"priceInr": 35000000,"priceLabel": "3.5 - 6.2 Cr","priceMinInr": 35000000,"priceMaxInr": 62000000,"city": "Mumbai","locality": "Worli","society": "Lodha Park","latitude": 19.0176,"longitude": 72.8175,"builderName": "Lodha Group","possessionStatus": "Ready to Move","isNewLaunch": false,"reraId": "P51900012345","configSummary": [{"bhk": "2 BHK", "areaSqft": 985.0, "priceLabel": "3.5 Cr", "priceMinInr": 35000000, "priceMaxInr": 38000000},{"bhk": "3 BHK", "areaSqft": 1480.0, "priceLabel": "5.2 - 6.2 Cr", "priceMinInr": 52000000, "priceMaxInr": 62000000}],"keyHighlights": ["Riverside views", "Clubhouse with infinity pool", "RERA approved"],"propertyImages": ["https://img.99acres.com/...jpg"],"tags": ["RERA Approved", "Ready to Move"],"scrapedAt": "2026-05-08T10:00:00+00:00"}
Core Identity
| Field | Type | Description |
|---|---|---|
cardType | string | "property" (regular listing) or "project" (new-launch developer card). |
spid | string | 99acres listing or project unit ID. |
propertyUrl | string | Canonical detail page URL on 99acres.com. |
transactionType | string | buy, rent, pg, new-launches, commercial-buy, or commercial-rent. |
title | string | Listing or project headline. |
description | string | Long-form description, when present. |
searchUrl | string | The 99acres search URL this row was collected from. |
scrapedAt | string (ISO) | When the row was captured. |
postedAt | string (ISO) | When the listing was posted. |
updatedAt | string (ISO) | When the listing was last updated. |
Pricing
| Field | Type | Description |
|---|---|---|
priceLabel | string | Original 99acres price string ("1.15 Cr", "โน15,000/mo"). |
priceInr | integer | Numeric price in rupees, parsed from priceLabel or the raw MIN_PRICE field. |
priceMinInr | integer | Project cards only: lowest unit price in the range. |
priceMaxInr | integer | Project cards only: highest unit price in the range. |
pricePerSqftInr | float | Rate per sqft in rupees. |
negotiable | boolean | Whether the seller marked the listing as negotiable. |
Property Details
| Field | Type | Description |
|---|---|---|
propertyType | string | Decoded property type (Apartment, Villa, Plot, Office, etc.). |
bedrooms | integer | BHK count (smallest, for project cards with multiple configs). |
bedroomsLabel | string | "3 BHK" for property cards; "2, 3 BHK" for multi-config projects. |
bathrooms | integer | Bathroom count. |
areaSqft | float | Area in square feet. |
areaSqm | float | Area in square meters (auto-converted). |
areaType | string | Carpet, Built-up, or Super Built-up. |
furnishing | string | Furnished, Semi-Furnished, or Unfurnished. |
propertyAge | string | Age band ("5-10 years", "New", etc.). |
floor | string | Floor number / total floors ("12 of 22"). |
facing | string | Compass direction. |
availability | string | "Ready to Move", "Under Construction", etc. |
availableFrom | string (ISO) | Earliest move-in date, when available. |
verified | boolean | Whether 99acres has verified the listing. |
reraId | string | RERA registration ID, when present. |
Location
| Field | Type | Description |
|---|---|---|
city | string | City name. |
locality | string | Neighborhood / locality. |
society | string | Society or project name. |
address | string | Full address, when available. |
latitude | float | Map latitude. |
longitude | float | Map longitude. |
landmarkDetails | array | Nearby landmarks with name, distance, and category. |
Agent / Builder
| Field | Type | Description |
|---|---|---|
agentName | string | Listed-by name (agent, owner, or builder). |
agentCompany | string | Brokerage or company name. |
agentType | string | Decoded type โ "Agent", "Owner", or "Builder". |
agentCity | string | Agent's listed city. |
agentVerified | boolean | Whether the agent is verified by 99acres. |
builderName | string | Project cards: developer name. |
New Launch / Project
| Field | Type | Description |
|---|---|---|
possessionStatus | string | "Ready to Move", "Under Construction", or possession date. |
isNewLaunch | boolean | Whether the project is flagged as new launch. |
configSummary | array | Per-BHK breakdown โ array of {bhk, areaSqft, priceLabel, priceMinInr, priceMaxInr}. |
keyHighlights | array | Project highlight bullets ("Riverside views", "Clubhouse", etc.). |
Media & Tags
| Field | Type | Description |
|---|---|---|
propertyImages | array | Listing photo URLs. |
propertyVideos | array | Listing video URLs, when present. |
amenities | array | Decoded amenity names ("Lift", "Power Backup", "Swimming Pool"). |
features | array | Decoded extra-feature names. |
tags | array | Listing badges ("Verified", "Negotiable", "RERA Approved"). |
Tips for Best Results
- Use the URL passthrough mode for the most precise control. Apply every filter on 99acres.com (BHK, budget, RERA, ready-to-move, amenities), copy the URL, and paste it into
searchUrlsโ every filter is honored as-is. - Setting
bedroomsMin: 2is inclusive โ it returns 2 BHK, 3 BHK, 4 BHK, and 5+ BHK listings, matching how 99acres' multi-select BHK filter works on the site. - Sponsored new-launch project cards appear alongside regular listings. Filter on
cardTypeafter the run if you want only one or the other โ projects exposebuilderName,configSummary, andpriceMinInr/priceMaxInr, while properties carry agent contacts and exact unit specs. - Price filters are applied locally after fetching. 99acres' server-side budget params behave inconsistently, so the actor enforces
priceMinInr/priceMaxInragainstpriceInron each row. To compensate, it over-fetches up to 3ร yourmaxResultsand trims afterward โ so amaxResults: 100run with a tight price band may scan 300 raw listings to deliver 100 in-range rows. Rows priced "On Request" pass through unfiltered (you can drop them downstream by filteringpriceInr is null). - Add multiple localities at once โ
localitiesaccepts an array of neighborhood names. The actor calls 99acres' locality autocomplete to resolve names to internal IDs, so you can paste the human-readable names directly. If a name doesn't match (typos, unfamiliar spelling), that single locality is skipped with a warning. If none of the names resolve, the search widens to the whole city and the final status message flags the fallback. - Set
maxResults: 0for unbounded runs with an internal 50,000-row safety cap. Note that 99acres caps each search at roughly 60 result pages (~1,500 listings) โ narrow your filters withlocalitiesorbedroomsMinif you hit the wall. - For "On Request" prices (common on premium listings),
priceInrisnullwhilepriceLabelretains the original "Price on Request" string. Use this combination to filter out non-priced listings.
Pricing
$1.80 per 1,000 results โ pay only for what you collect. 10% cheaper than the closest 99acres scraper on the Apify Store.
| Results | Estimated Cost |
|---|---|
| 100 listings | $0.18 |
| 1,000 listings | $1.80 |
| 10,000 listings | $18.00 |
| 100,000 listings | $180.00 |
No compute charges โ you only pay per result returned. Each property row counts as one result, regardless of how many photos, amenities, or landmarks it carries. Apify platform fees may apply on top, depending on your subscription plan.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n โ Workflow automation
- Google Sheets โ Direct spreadsheet export
- Slack / Email โ Notifications on new results
- Webhooks โ Trigger custom APIs on run completion
- Apify API โ Full programmatic access
Use the dataset directly in your CRM, BI tool, or analytics warehouse via REST API or scheduled exports.
Legal & Ethical Use
This actor collects publicly available property listings from 99acres.com. You are responsible for using the data in compliance with 99acres' Terms of Service, applicable Indian data-protection law (including the DPDP Act), and any local regulations governing the use of personal information. Treat agent and owner contact details as personal data โ store them securely, honor opt-outs, and avoid bulk outreach without consent. This actor must not be used to harvest personal data for unlawful purposes, to bypass paywalls, or to overload the source site.