India's property market, every listing with its rupee price, area and seller
The 99acres API turns India's largest property-listing site into JSON in two actions.
2 active endpoints. Every call is 3 credits.
- POST/99acres/v1/search
- POST/99acres/v1/listing
What 99acres endpoints does ReefAPI ship?
2 live read endpoints. Read-only data API: no writes, no account actions, no dashboard access on the target site.
99acres API
2 of 2 endpoints, ready to run
Listings for sale, rent or PG in an Indian city with the filters the site applies itself: BHK, property type, price, area, owner, dealer or builder, construction status and posting age.
// Press "Try it" and this pane shows exactly what the // live site returned this second — including an empty // result, if that is the truth. No key, no account.
How the 99acres API works
99acres is a normal ReefAPI surface — the same four rules that hold for every other engine on the key.
No OAuth app, no request signing, no per-site account. One key covers all 491 engines.
Every route is a POST with a JSON body. Parameters are validated against the published schema before anything is charged.
Credits, not seats. Failed and blocked calls are never charged, and cache hits cost nothing.
One envelope everywhere. meta carries latency_ms, record_count and the endpoint that answered.
Compare 2 BHK asking prices in one Pune locality
Three calls. Ids come from the site's own answers, so no filter is a guess, and every price is an integer in rupees.
The site resolves 'baner' to locality 1074 in Pune; meta.resolved echoes the ids.
Owner listings only, so no featured placements or project units in the set; price_per_sqft_inr on every row.
The flat in full: carpet and super built-up area, floor, facing, amenities and the advertiser.
A like-for-like set of 2 BHK asking prices in one locality, with the price per square foot and the area each price is quoted on.
curl -X POST https://api.reefapi.com/99acres/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"city_id":19,"transaction":"buy","bedrooms":"2","posted_by":"owner"}'{
"ok": true,
"data": { … },
"meta": {
"api": "99acres",
"endpoint": "search",
"mode": "live",
"latency_ms": …,
"record_count": …
},
"error": null
}What one 99acres listing returns
Real listings read on 2026-10-14. The integer price matched the lakh/crore string the site prints on 102 of 102 rows across four searches, and the price on 10 of 10 listings matched the search row they came from.
| listing | what the page shows | price_inr / price_max_inr | listing_kind |
|---|---|---|---|
| Residential plot, Ghotawade, Pune, 7,532 sqft, dealer | ₹1.51 Cr · ₹2,000/sqft | 15064000 / null | featured |
| 4 BHK flat, Geras Isle Royale, Bavdhan, Pune, builder | ₹3.42 - 6.19 Cr | 34238189 / 61861357 | project_unit |
| 3 BHK flat for rent, Sector 47, Gurgaon, 2,470 sqft | ₹95,000 a month | 95000 / null | listing |
price_inr is the integer rupee figure the site carries; price_display is the string it prints. A new-project unit is sold as a range, so it has both price_inr (from) and price_max_inr (to). Rent and PG prices are monthly (price_period: month). Carpet, built-up and super built-up area are separate fields, never merged.
What 99acres publishes — measured 2026-10-14
The site lists property across India from owners, dealers and builders. These are the numbers and limits measured on the live source.
Pune 40,045 for sale (12,518 from owners, 206 from builders), Mumbai 96,632 for sale, Delhi / NCR 75,214 for rent, Pune 4,678 commercial and 914 PG.
price_inr in rupees matched the printed lakh/crore string on 102 of 102 rows; rent listing prices matched the page's own structured data on 4 of 4; listing price matched the search row on 10 of 10.
Featured placements, builders' new-project units (sold as a price range) and ordinary listings come mixed; each row says which. Under the default order the first pages of a city are mostly new-project units.
Up to 50 rows a page; a page past the end answers empty with a warning. The total is the site's own live count.
Unmasked phone or e-mail (masked on the public page), a working sort order, and RERA, photo or video filters (the rows and listings carry the RERA data).
What people build with 99acres
The jobs this data is most often used for.
endpoints
credits per call
Track asking prices by locality: the same BHK and property type every week in one locality_id, with price per square foot on every row.
Find owner listings with no broker: posted_by=owner returned 12,518 of 40,045 Pune sale listings.
Map new-project supply: posted_by=builder or the project_unit rows, then listing for the RERA registration number, completion date and unit plans with prices.
Build a rental feed: transaction=rent with a rupee band and furnishing, monthly rent on every row.
What 99acres data costs
The cheapest call here is 3 credits, so $15/mo (Pro) buys 3,333 of them — $1.50 per 1,000 credits. Credits roll over and never expire, and failed or blocked calls are not charged.
Full pricing →- 1,000 free credits on signup, no card
- One key, all 491 APIs, one credit pool
- Failed and blocked calls are never charged
- Credits roll over and never expire
Call it in two lines
Sign up, get 1,000 credits and one key that works on every engine. Then this is the whole protocol.
curl -X POST https://api.reefapi.com/99acres/v1/search \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"city_id":19,"transaction":"buy","bedrooms":"2","posted_by":"owner"}'import requests
r = requests.post(
"https://api.reefapi.com/99acres/v1/search",
headers={"x-api-key": REEF_KEY},
json={
"city_id": 19,
"transaction": "buy",
"bedrooms": "2",
"posted_by": "owner"
},
)
print(r.json()["data"])Have a question? We got answers.
The questions people actually ask before wiring up 99acres.
Get a free key →Which cities are covered?▾
Every city 99acres lists. On 2026-10-14 a sale search returned 40,045 listings in Pune, 96,632 in Mumbai and 57,582 for 'bangalore'; Delhi / NCR had 75,214 listings for rent. Pass city_id (19 Pune, 12 Mumbai, 1 Delhi / NCR), a locality_id, or free text in query: every answer echoes the city and locality ids the site resolved, so you can reuse them.
How are lakh and crore prices returned?▾
As integers in rupees. '₹1.51 Cr' comes back as price_inr 15064000 with price_display '₹1.51 Cr'; '45.99 L' as 4599000; a new-project unit printed '3.42 - 6.19 Cr' as price_inr 34238189 and price_max_inr 61861357. On 102 rows checked, the integer agreed with the printed string every time.
What are featured rows and project units?▾
The site mixes three kinds of rows into its results, and every row says which it is. featured is a paid placement on top of the page. project_unit is a builder's new-project unit sold as a price and size range; under the default order these fill the first pages of a city search. listing is an ordinary listing by an owner or a dealer. meta.row_kinds counts them per page. Use posted_by=owner or posted_by=dealer to get ordinary listings only.
How does the price filter work?▾
Give price_min and price_max in rupees (monthly for rent). The site filters on its own price steps (5 lakh, 10 lakh … 1 crore … for sale, 1,000 … 10 lakh for rent), so a bound between two steps is widened to the next step and meta.filters_applied says which step was used. A 50 lakh to 1 crore search in Pune returned 13,313 of 40,045 listings. Rows whose price falls outside your band carry outside_price_filter: true; none did in the bands measured.
Which area fields are there?▾
Search rows carry carpet_area_sqft, built_up_area_sqft, super_built_up_area_sqft and super_area_sqft separately, plus the area the site displays with its own label ('Plot Area', 'Carpet Area') and unit. A listing returns each area with the unit the page declares, and plot length and breadth for land. price_per_sqft_inr is the site's own figure; price_per_unit_area_type says which area it is quoted on.
Is the seller's phone number included?▾
The site masks phone numbers and e-mail on its public pages, so the API returns the phone the way the page prints it, masked. The advertiser's name, company, type (owner, dealer or builder), member-since date and office address are returned in full.
Can I sort the results?▾
No. None of the site's sort settings changed the order of the results on the day we measured, so the API offers no sort parameter rather than one that does nothing. Use posted_since_days to get the newest listings: 1,011 Pune sale listings were posted in the last day.
How fast is it and how far can I page?▾
One request to the site per call. In two full runs every search (62 of 62) and every listing in the second run (10 of 10) succeeded; the median search took 3.9 seconds and the median listing 7.2 seconds, the slowest search 12.2 seconds. Up to 50 rows a page; a page past the end answers an empty page with a warning.
What is the 99acres API?▾
99acres API is a ReefAPI endpoint group for india's property market as json: flats, houses, plots and commercial space for sale, rent and pg, with rupee prices, area by type, locality, owner, dealer or builder, and new-project units with their rera number. It returns live JSON through POST requests under /99acres/v1.
Is the 99acres API free to try?▾
Yes. ReefAPI starts with 1,000 free credits, no card required. 99acres calls use the same shared credit balance as every other ReefAPI engine.
Do I need a 99acres login or account?▾
No login to 99acres is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the 99acres data?▾
The page example is captured from a live search call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the 99acres API use?▾
99acres actions currently cost 3 credits per successful call. Failed or blocked calls are free. All APIs draw from one credit pool.
Can I call 99acres from an AI assistant or MCP client?▾
Yes. Connect ReefAPI once through MCP and your assistant can call 99acres actions with the same key, credit pool and JSON envelope used by normal REST requests.
24 Real Estate APIs on the same key
One key, one credit pool, one response envelope. If you are pulling 99acres, you are one call away from the rest of the category — no second contract, no second integration.
Need something this API does not do?
Name the endpoint, the field, or a source we do not carry yet. We ship new APIs every week and you would be first to get the key. Real people read every message and reply the same day.
Try it on your own data before you pay anything
The call above is the real endpoint, not a recording. A free key gives you 1,000 credits, the other 490 APIs, and the same envelope everywhere.
Endpoints, parameters and credit costs on this page are read from the live catalog and cannot drift from what the API accepts. Field notes were captured on 2026-10-14.