99acres Scraper — India Property for Sale & Rent
Pricing
from $2.50 / 1,000 listing scrapeds
99acres Scraper — India Property for Sale & Rent
Scrape 99acres listings for sale or rent from search URLs or city/locality + filters: price in INR, price/sqft, BHK, area, locality, society, coordinates, amenities, photos, poster, RERA.
Pricing
from $2.50 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Trevor Ortega
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape property listings for sale and for rent from 99acres.com, one of India's largest property portals. Paste any 99acres search URL, or type cities and localities like "Pune", "Andheri West, Mumbai" or "Baner, Pune" and pick filters (BHK, budget, area, property type, owner/dealer/builder, furnishing, ready to move). You get the price in INR, price per sq ft, deposit and brokerage, BHK, bathrooms, carpet / built-up / super built-up / plot area, floor, furnishing, facing, possession or age, society and project, locality, city, map point, amenities, description, photos, posted date, whether an owner, dealer or builder posted it, and RERA numbers. Export as JSON, CSV or Excel.
Residential and commercial listings are both supported (flats, independent houses, builder floors, plots, offices, shops, showrooms, warehouses, land). With Only new or changed items, a scheduled run outputs only listings that are new or whose price changed.
What data does 99acres Scraper extract?
| Field | Example | Notes |
|---|---|---|
id, propertyId, url | 91686652, F91686652, https://www.99acres.com/...-spid-F91686652 | 99acres listing id (SPID) and listing URL |
title, listingType, category, propertyType | 2 BHK Flat in Wakad, Pune, sale, residential, Residential Apartment | listingType: sale, rent or lease (commercial) |
transactionType, availability, ageOrPossession, availableFrom | Resale, Ready to move, 5 to 10 years old | Under-construction listings give the possession year |
price, priceText, priceMax | 8700000, 87 Lac | Price in rupees (monthly rent for rentals). priceMax for ranges |
pricePerSqft, pricePerSqftBasis | 12428, carpet area | As 99acres computes it |
deposit, depositMonths, brokerage, brokerageRate, bookingAmount | 600000, 6, 120000, 2 | Deposit as rupees or months of rent; brokerage as rupees or a rate |
bedrooms, bathrooms, balconies | 2, 2, 1 | |
carpetArea, builtUpArea, superBuiltUpArea, plotArea | 700 | Each with ...Unit (as the advertiser entered it) and ...Sqft |
floor, totalFloors, furnishing, facing, ownershipType | 6, 24, Furnished, East, Freehold | |
society, projectId, projectUrl | ANP Royal Grande | Society / project the listing belongs to |
locality, localityId, city, cityId, address | Wakad, 1283, Pune West, 1171162, Wakad, Pune | 99acres splits big cities into zones (Pune West, Mumbai Andheri-Dahisar, ...) |
latitude, longitude, locationAccuracy | 18.5996253, 73.7457522, verified | building / locality point, or approximate (rounded to ~1 km for owners' own pins) |
amenities, amenityIds, highlights, tags | ["Gymnasium", "Lift"], ["6th out of 24 Floors"], ["RERA"] | |
description, photos, photoCount, videos | Full description text and photo URLs in every result | |
postedAt, updatedAt, postedAgo, expiresAt | 2026-06-06T05:03:55Z, 2 days ago | |
postedBy, advertiserName, contactName, verified, featured | Dealer, Propline.in, Mohini, true | postedBy: Owner, Dealer or Builder. Names are given for dealers and builders only, never for private owners. No phone numbers or e-mails |
reraId, posterReraId, posterReraRegistered, newLaunch | P52100015350, A52100043900, true | Project and agent RERA registration numbers when published |
With Include listing page details: reraStatus, homeAmenities, societyAmenities, flooring, overlooking, powerBackup, widthOfFacingRoad, priceNegotiable, gatedCommunity, additionalRooms, tenantPreference, lastUpdatedLabel, advertiserMemberSince, advertiserListings | REGISTERED, ["Private Garden"], Vitrified, Partial, true, Family Only | From the listing's own page |
search, scrapedAt, detailsFetched | Which start URL or location found the listing | |
changeType, previousValues | changed, {"price": 9000000} | Only with monitoring on |
How to scrape 99acres listings
- Open 99acres.com, search with the filters you want and copy the address bar into Start URLs. Both kinds of URLs work:
https://www.99acres.com/property-for-rent-in-pune-ffidandhttps://www.99acres.com/search/property/buy/pune?city=19&bedroom_num=2&preference=S&res_com=R. - Or leave Start URLs empty and type Locations, one per line, the way 99acres names them: "Pune", "Mumbai", "Bangalore", "Gurgaon", "Baner, Pune", "Andheri West, Mumbai". Then pick For sale or for rent, residential or commercial, and the filters you need: property types, BHK, budget, area, posted by owner / dealer / builder, ready to move or under construction, furnishing.
- Set Max items and start the run. To get one listing with every detail, paste its URL (
...-spid-V92517588).
Input example
{"locations": ["Baner, Pune", "Wakad, Pune"],"listingType": "sale","propertyTypes": ["apartment"],"bedrooms": ["2", "3"],"minPrice": 5000000,"maxPrice": 15000000,"postedBy": ["owner"],"sort": "newest","maxItems": 500}
Start URLs and single listings can be mixed in one run:
{"startUrls": [{ "url": "https://www.99acres.com/property-for-rent-in-pune-ffid" },{ "url": "https://www.99acres.com/search/property/buy/mumbai?city=12&preference=S&res_com=C" },{ "url": "https://www.99acres.com/2-bhk-bedroom-apartment-flat-for-rent-in-ganga-platino-kharadi-pune-1059-sqft-spid-J93563578" }],"maxItems": 2000}
Output example
{"id": "91686652","propertyId": "F91686652","url": "https://www.99acres.com/2-bhk-bedroom-apartment-flat-for-sale-in-anp-royal-grande-wakad-pune-700-sqft-r1-spid-F91686652","title": "2 BHK Flat in Wakad, Pune","listingType": "sale","category": "residential","propertyType": "Residential Apartment","transactionType": "Resale","price": 8700000,"priceText": "87 Lac","pricePerSqft": 12428,"pricePerSqftBasis": "carpet area","brokerageRate": 2,"bookingAmount": 200000,"bedrooms": 2,"bathrooms": 2,"balconies": 1,"carpetArea": 700,"carpetAreaUnit": "sq.ft.","carpetAreaSqft": 700,"floor": "6","totalFloors": 24,"furnishing": "Furnished","facing": "East","availability": "Ready to move","ageOrPossession": "5 to 10 years old","ownershipType": "Freehold","society": "ANP Royal Grande","projectUrl": "https://www.99acres.com/anp-royal-grande-wakad-pune-npxid-r274153","locality": "Wakad","city": "Pune West","address": "Wakad, Pune","latitude": 18.5996253,"longitude": 73.7457522,"locationAccuracy": "verified","amenities": ["Gymnasium", "Club house", "Vaastu Compliant", "Park", "Gas Pipeline", "Lift"],"highlights": ["6th out of 24 Floors", "Overlooking Main Road", "East Facing", "1 Covered Parking"],"tags": ["READY TO MOVE", "RESALE", "RERA"],"description": "This property faces the east direction. Containing 2 bedroom(s), 2 bathrooms and 1 balcony, ...","photos": ["https://imagecdn.99acres.com/media1/42160/2/843202311M-1789896144357.jpg"],"photoCount": 8,"videos": ["https://www.youtube.com/watch?v=wgGQGJOdFK0"],"postedAt": "2026-06-06T05:03:55Z","updatedAt": "2026-10-08T14:31:32Z","postedAgo": "2 days ago","expiresAt": "2026-12-07","postedBy": "Dealer","advertiserName": "Propline.in","contactName": "Mohini","verified": true,"featured": false,"reraId": "P52100015350","posterReraId": "A52100043900","posterReraRegistered": true,"detailsFetched": false,"search": "Pune (sale, residential)","scrapedAt": "2026-10-10T07:52:30Z"}
How many listings can I get per search?
All of them. 99acres shows 25 listings per result page and does not stop at a page limit: in tests, page 1,590 of a 39,914-listing search (every flat, house and plot for sale in Pune) still returned 25 listings. One run can therefore collect a whole city; Max items decides where it stops. "New project" groupings are turned off, so every result is an individual listing, and a listing that moves between pages while the run reads them is output and charged once.
Does it work without login? Does it collect phone numbers?
No login is needed: the actor reads the same public pages any visitor sees. It never collects phone numbers or e-mail addresses. 99acres shows them only after a click ("View Number" / "Contact"), often only to logged-in users, and the actor does not click or log in. It exports the advertiser type (owner, dealer, builder), the dealer or agency name, the contact name that 99acres publishes with the listing, and RERA registration numbers. Map points that an individual owner placed on their own property are rounded to about 1 km; society, building and locality points are kept as published.
Do I need a proxy?
Yes. 99acres answers datacenter IPs with its own bot check, so the default is Apify RESIDENTIAL proxy in India. Some residential requests get the check too; the actor retries them on a new IP. Residential traffic is billed by Apify per GB: about 0.16 MB per result page of 25 listings (about 6.5 MB, roughly $0.05-0.06, per 1,000 listings) and about 0.1 MB (about $0.0008) per listing page when Include listing page details is on.
Monitor changes on a schedule
Turn on Only new or changed items to watch a search, for example rentals in one locality sorted newest first. Each run remembers what earlier runs of the same search returned and outputs only new listings and listings whose price changed; unchanged listings are dropped before any listing page request, so they are not charged. Max items then sets how many of the newest listings are checked per run (e.g. 50-300 for a locality). Save the input as a task in Apify and add a Schedule (for example daily); give each watch its own Monitoring key if several schedules use the same search. Every output item gets changeType (new or changed), and changed items get previousValues with the old price, e.g. {"price": 9000000}.
Pricing
Pay per result: each listing saved to the dataset is one result event. With Include listing page details on (and for single listing URLs), each listing whose own page is loaded adds one detail event. Listings repeated on a later page and unchanged listings in monitoring mode are not charged. Platform usage (mostly residential proxy traffic, see above) is paid by you: a 300-listing run used $0.023 of platform usage in tests, about $0.08 per 1,000 listings.
Integrations and API
Run it from the Apify API, a schedule, Make, Zapier, n8n or any language with the Apify client; results are available as JSON, CSV, Excel or XML from the dataset. Each listing's search field tells you which start URL or location found it.
Is it legal to scrape 99acres?
This actor collects listing data that anyone can see on 99acres without logging in. It does not log in and does not collect phone numbers, e-mail addresses or anything else shown only after a click. Advertiser and contact names (including individual owners' names published with their listings) are personal data under India's Digital Personal Data Protection Act, 2023: you are responsible for having a legitimate purpose for processing them and for respecting 99acres' terms of use. If in doubt, ask a lawyer.
Support
Found a bug or need a field that is not there? Open an issue on the Issues tab with the input you used and the run link.