99acres.com Property Scraper (India) avatar

99acres.com Property Scraper (India)

Pricing

from $0.60 / 1,000 listings

Go to Apify Store
99acres.com Property Scraper (India)

99acres.com Property Scraper (India)

Collect public property listings from 99acres.com by Indian city, for sale or rent. Each record has the listing URL, asking price in INR, area, bedrooms, locality, city, images and the time collected. Choose your cities, buy or rent, and a result limit — every run returns fresh listings.

Pricing

from $0.60 / 1,000 listings

Rating

0.0

(0)

Developer

Philip Kirkbride

Philip Kirkbride

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

10 days ago

Last modified

Categories

Security

Limited permissions

Share

Collect public property listings and project developments from 99acres.com across major Indian cities. Every record has one normalized shape — URL, price in INR, area in sq.ft., bedrooms (BHK), locality, city, sale or rent, and images — so you can build shortlists, track asking prices and enrich leads with fresh data from each run.

Quick Start

{"cities":["Bangalore"],"operation":"buy","maxResults":50}

The Console prefill searches Bangalore for up to 20 results. An empty input ({}), or an input that omits both city fields, uses the six default cities, with up to 5 pages per city and 50 results overall. maxPages and maxResults are limits, not promised counts; narrow the city list before raising them.

Input

InputTypeDefaultMeaning
citiesarray["Bangalore","Mumbai","Delhi","Pune","Hyderabad","Chennai"]Indian cities to search. Free-text city names are accepted.
citystringemptySingle-city shorthand, for example "Mumbai".
operationstringbuybuy for sale listings or rent for rental listings.
maxPagesinteger5Maximum result pages per city, 1–10. A city stops early once maxResults is reached or a page returns no results.
maxResultsinteger50Maximum listings across all cities, 1–200.
requestDelaySecsnumber1.0Pause between page requests, minimum 0.5 s.
proxyUrl, proxyUsername, proxyPasswordstringemptyOptional custom proxy. Leave empty to use the actor's default connection.

What it returns

Each run returns one record per search result. A result is either an individual property or a project development, identified by resultType.

Common fields: listing_key (stable join key), url (canonical listing URL), resultType (property or project), title, locality, city, listing_type (buy/rent), images, source and scraped_at.

Property rows keep the flat fields:

FieldMeaning
price_inrAbsolute asking price in INR. For a price range this is the lower bound; null when the listing says "price on request" or shows only a per-area rate.
priceMinInr, priceMaxInrBoth ends of a source price range; equal to price_inr for a single price.
price_per_sqft_inrAsking rate in INR per sq.ft., when the source gives one. A per-square-yard or per-square-metre rate is converted to per sq.ft. so the number matches the field name.
price_textThe price exactly as shown, for example ₹ 2 Cr or ₹ 8,982 /sq.ft..
area_sqftArea normalized to sq.ft.
areaMinSqft, areaMaxSqftBoth ends of an area range; equal to area_sqft for a single value.
bedrooms, bedroomsMin, bedroomsMaxBedrooms (BHK) as a single value or as range bounds.
configurationsnull for a property row.

Project development rows describe a development instead of one flat: projectUnitId, priceMinInr/priceMaxInr, areaMinSqft/areaMaxSqft, bedroomsMin/bedroomsMax, and configurations (one entry per BHK card with its own area and price range). The single-value price_inr, area_sqft and bedrooms are null because a development is not one unit.

Only real listing or project photos are returned; interface images such as arrows, icons and placeholders are dropped.

Output example

Illustrative property and project rows (JSON Lines):

{"listing_key":"99acres.com:Z72955163","url":"https://www.99acres.com/residential-land-plot-for-sale-in-banashankari-stage-6-block-3-bangalore-south-133-sqyd-r5-spid-Z72955163","resultType":"property","title":"Residential land / Plot in Banashankari 6th Stage 3rd Block","projectUnitId":null,"price_inr":20000000,"priceMinInr":20000000,"priceMaxInr":20000000,"price_per_sqft_inr":null,"price_text":"₹ 2 Cr","area_sqft":1200.0,"areaMinSqft":1200.0,"areaMaxSqft":1200.0,"bedrooms":null,"bedroomsMin":null,"bedroomsMax":null,"configurations":null,"locality":"Banashankari 6th Stage 3rd Block, Banashankari Stage 6","city":"Bangalore","listing_type":"buy","images":["https://imagecdn.99acres.com/media1/23274/17/465497998M-1768900002221.jpg"],"source":"99acres.com","scraped_at":"2026-10-18T12:00:00+00:00"}
{"listing_key":"99acres.com:r443829","url":"https://www.99acres.com/reviva-by-ssi-chandapura-bangalore-south-npxid-r443829","resultType":"project","title":"Reviva By SSI","projectUnitId":"443829","price_inr":null,"priceMinInr":7942000,"priceMaxInr":11324000,"price_per_sqft_inr":null,"price_text":null,"area_sqft":null,"areaMinSqft":1045.0,"areaMaxSqft":1490.0,"bedrooms":null,"bedroomsMin":2,"bedroomsMax":3,"configurations":[{"label":"2 BHK","areaMinSqft":1045.0,"areaMaxSqft":1085.0,"priceMinInr":7942000,"priceMaxInr":8246000,"bedrooms":2},{"label":"3 BHK","areaMinSqft":1315.0,"areaMaxSqft":1490.0,"priceMinInr":9994000,"priceMaxInr":11324000,"bedrooms":3}],"locality":"Chandapura","city":"Bangalore","listing_type":"buy","images":["https://newprojects.99acres.com/projects/sri_sai_infra_bangalore/reviva_by_ssi/images/rp2cv6d_1747209613_595772169_med.jpg"],"source":"99acres.com","scraped_at":"2026-10-18T12:00:00+00:00"}

Limits and caveats

  • Asking prices, areas and availability can change; verify a listing before making a decision.
  • A price that is not an absolute INR is returned as null rather than guessed. A per-area rate is stored in price_per_sqft_inr, not in price_inr.
  • Coverage is limited to the mapped cities and to the requested page and result limits. Up to 10 pages per city and 200 results per run.
  • Results are collected during the run and are not a publication date or proof of a price change.
  • Unavailable fields are null, not invented values.
  • Listings are saved page by page. A run with saved listings succeeds even if another city is blocked; the status names the blocked cities. This is partial coverage, not a complete search of every requested city.
  • Collection stops before the run timeout, with the status Stopped before the run timeout; saved N listings. Increase the timeout to collect more.
  • A run with no saved listings fails with a plain status message instead of returning a silent empty dataset. An empty search page is checked again on a fresh connection before it is accepted.

FAQ

How fresh is the data? Listings are collected from 99acres.com during each run.

Which cities are supported? The mapped Indian cities, with a single-city shorthand for convenience.

Can I collect rentals? Yes. Set operation to rent.

Why is a price null? The listing either states "price on request" or shows only a per-area rate. In the second case the rate is available in price_per_sqft_inr.

How many pages does a run fetch? Five per city by default. Lower maxPages to 1 to fetch only the first page of each city, or raise it up to 10.

Price

$0.0006 per listing delivered, plus $0.00005 per run start. The run-start event is charged per GB of memory; the default 1024 MB run is one start event. The start is charged even if the run saves no results. Platform usage is included in these prices.

For help, contact Apify Support and include the run URL.