
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape 99acres.com property listings and new-launch projects across India: buy, rent, PG and commercial. Price, BHK, area, locality, coordinates, builder or dealer, amenities, photos and posting date.
Scrape property listings and new-launch projects from 99acres.com, India's large real estate portal. You get price, BHK, area, locality, coordinates, builder or dealer, amenities, photos and posting dates for flats, houses, plots, PGs and commercial space to buy or rent, as clean rows ready for Excel, CSV or JSON. You don't need a login, and the right Indian proxy is set up for you.
-spid-) and project pages (-npxid-).| Field | What it does |
|---|---|
startUrls | 99acres search URLs, listing URLs (-spid-) or project URLs (-npxid-) |
maxItems | Maximum results for the run (0 = no limit) |
city | City search instead of URLs (comma-separate several cities) |
searchMode | buy, rent, pg, commercial-buy, commercial-rent |
propertyTypes | e.g. apartment, independent-house, builder-floor, plot, office, shop |
bedrooms | BHK, e.g. 2, 3 |
minPrice / maxPrice | Rupees (total price for buy, monthly rent for rent and PG) |
minArea / maxArea | Square feet |
saleType | Buy only: all, resale, new-booking |
includeProjects | Keep builder projects as rows (default on) |
scrapeDetails | Open each listing's detail page for more fields |
{
"city": "Pune",
"searchMode": "rent",
"bedrooms": ["2"],
"maxPrice": 40000,
"maxItems": 200,
"scrapeDetails": false
}
Each row is one listing (resultType: "listing") or one new-launch project (resultType: "project").
| Field | Description |
|---|---|
title, url | Listing heading and link |
price, priceMax, priceDisplay | Price in rupees (monthly rent for rentals) and as shown on the site |
pricePerSqft, deposit, brokerage, bookingAmount | Money details |
bedrooms, bathrooms, balconies | Layout |
area, areaType, superArea, builtUpArea, carpetArea | Areas in sq ft |
propertyType, transactionType, saleType | Apartment / house / plot …, sale / rent / PG / lease, resale / new booking |
furnishing, facing, floor, totalFloors, ageOfProperty, availability | Property details |
locality, city, latitude, longitude | Location |
projectName, buildingName, builderName | Society, project and builder |
listedBy, dealerName, companyName | Who posted it (owner, dealer or builder), as shown publicly |
amenities, topUsps, tags, tenantPreference | Highlights and preferences |
images, imageCount, description | Photos and text |
postedDate, updatedDate | Dates |
configurations, possessionStatus, nearby | Projects only |
specification, advertiser, fullDescription | With detail pages on |
Example rows (values are fictional, the shape is real):
[
{
"resultType": "listing",
"listingId": "X12345678",
"searchMode": "rent",
"title": "2 BHK Flat for rent in Sample Nagar, Pune",
"propertyType": "Residential Apartment",
"transactionType": "Rent",
"bedrooms": 2,
"bathrooms": 2,
"price": 32000,
"priceDisplay": "32,000",
"pricePerSqft": 34,
"depositMonths": 2,
"area": 950,
"areaType": "Super Built-up Area",
"carpetArea": 760,
"furnishing": "Semifurnished",
"facing": "East",
"floor": "4",
"totalFloors": 12,
"ageOfProperty": "1-5 years",
"availability": "Ready to move",
"locality": "Sample Nagar, Pune",
"city": "Pune West",
"latitude": 18.5601,
"longitude": 73.7802,
"projectName": "Example Heights",
"listedBy": "Dealer",
"dealerName": "Demo Realty Team",
"companyName": "Demo Realty",
"amenities": ["4th out of 12 Floors", "East Facing", "1 Covered Parking"],
"tenantPreference": "Family, Single women",
"images": ["https://imagecdn.99acres.com/media1/00000/0/000000000M-0000000000000.jpg"],
"imageCount": 12,
"url": "https://www.99acres.com/2-bhk-bedroom-apartment-flat-for-rent-in-sample-nagar-pune-950-sqft-spid-X12345678",
"postedDate": "2026-10-01T09:30:00.000Z",
"scrapedAt": "2026-10-15T08:00:00.000Z"
},
{
"resultType": "project",
"listingId": "r123456",
"projectId": "123456",
"title": "Example Greens",
"subtitle": "2, 3 BHK Apartment in Sample Road, Mumbai",
"price": 18900000,
"priceMax": 28500000,
"priceDisplay": "1.89 - 2.85 Cr",
"configurations": [{"config": "2 BHK Apartment", "areaMin": 662, "areaType": "Carpet Area", "priceDisplay": "1.89 Cr"}],
"possessionStatus": "New Launch (Completion in Dec, 2030)",
"locality": "Sample Road",
"city": "Central Mumbai",
"builderName": "Example Developers",
"reraRegistered": true,
"url": "https://www.99acres.com/example-greens-sample-road-mumbai-npxid-r123456"
}
]
You pay $1.50 per 1,000 results ($0.0015 per saved listing or project), plus the small platform usage of the run (compute and Indian residential proxy traffic). A plain search for 1,000 listings uses only a few MB of proxy traffic, so platform usage stays at a few cents. Detail pages add one page load per listing, which adds roughly $0.20 of proxy traffic per 1,000 listings. You can set a maximum charge per run, and the scraper stops cleanly before going over it.
Is it legal to scrape 99acres? The scraper reads only public pages that anyone can open without an account. You are responsible for how you use the data, including personal data rules in your country and in India.
Do I need a login or my own proxy? No. 99acres only answers visitors from India, so the scraper uses an Indian residential exit by default.
How many results can I get? As many as 99acres shows for a search. It pages through every result page (25 per page) until your limit or the end. In our tests 10,000 rental listings from one search took about 10 minutes. For very large searches, split by locality, budget or property type.
Why is a field empty? 99acres only shows what the poster filled in. Owner listings often have no photos or builder, and projects have no bathroom count. Detail pages fill some gaps.
Are phone numbers included? No. 99acres hides contact numbers behind its contact form. You get the advertiser's name, company and, for dealers, the website they publish.
Can I schedule it or use the API? Yes. Schedule the scraper to track prices daily, or call it from the API and read the dataset as JSON or CSV.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
startUrlsarrayOptionalSearch & property URLs
99acres search-results URLs (any filters you set on the site are kept), listing URLs (…-spid-…) and new-project URLs (…-npxid-…). Mix freely. Leave empty if you use the city search below.
maxItemsintegerOptionaldefault 20Max results
Maximum results for the whole run. 0 means no limit. Each saved row (listing or project) is one billed result.
Builds a 99acres search from a city and filters. Leave the city empty if you pasted URLs above.
citystringOptionalCity
City name such as Bangalore, Mumbai, Delhi, Pune, Gurgaon, Hyderabad, Chennai or Kolkata. Separate several cities with commas.
searchModeenumOptionaldefault "buy"Search mode
Which 99acres section to search for the city.
propertyTypesarrayOptionalProperty types
Optional. apartment, independent-house, villa, builder-floor, plot, farm-house, studio, serviced-apartment, office, coworking, shop, showroom, warehouse, commercial-land, agricultural-land, industrial-land, factory, hotel, restaurant.
bedroomsarrayOptionalBedrooms (BHK)
Optional, for example 2 and 3. 5 means 5 or more. Ignored for PG and commercial.
minPriceintegerOptionalMin price (₹)
Total price for buy, monthly rent for rent and PG. Example: 5000000 = ₹50 Lac.
maxPriceintegerOptionalMax price (₹)
Total price for buy, monthly rent for rent and PG. Example: 10000000 = ₹1 Cr.
minAreaintegerOptionalMin area (sq ft)
Minimum area in square feet.
maxAreaintegerOptionalMax area (sq ft)
Maximum area in square feet.
saleTypeenumOptionaldefault "all"Sale type (buy only)
Buy searches only.
includeProjectsbooleanOptionaldefault trueInclude new-launch projects
99acres mixes builder projects into buy results. Keep on to save them as rows with resultType "project" (builder, price range, configurations, possession). Turn off for individual listings only.
scrapeDetailsbooleanOptionaldefault falseOpen each listing's detail page
Adds the full amenity list, specification (flooring, power backup, parking, maintenance), advertiser profile and all photos. One extra request per listing, so slower.
maxItemsPerSearchintegerOptionalMax results per search
Optional cap for each search URL or city. Empty or 0 means only the run limit applies.
maxConcurrencyintegerOptionaldefault 10Parallel requests
How many pages load at once.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["RESIDENTIA…Proxy configuration
99acres only answers visitors from India and blocks datacenter addresses, so an Indian residential exit is used by default.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| url | any | Listing |
| resultType | any | Type |
| title | any | Title |
| price | any | Price (₹) |
| priceDisplay | any | Price |
| transactionType | any | For |
| propertyType | any | Property type |
| bedrooms | any | BHK |
| bathrooms | any | Baths |
| area | any | Area |
| areaType | any | Area type |
| pricePerSqft | any | ₹ / sq ft |
| locality | any | Locality |
| city | any | City |
| projectName | any | Project / society |
| builderName | any | Builder |
| listedBy | any | Listed by |
| companyName | any | Company |
| furnishing | any | Furnishing |
| availability | any | Availability |
| possessionStatus | any | Possession |
| postedDate | any | Posted |
| images | any | Photos |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Result | One 99acres listing or new-launch project saved to the dataset | $0.0015 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('roamandroof/99acres-scraper').call({
"startUrls": [
"https://www.99acres.com/property-for-rent-in-bangalore-ffid"
],
"maxItems": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"RESIDENTIAL"
],
"scrapelyProxyCountry": "IN"
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run roamandroof/99acres-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=roamandroof/99acres-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Rental flats filtered by bedrooms and maximum rent.
Listing cards from a pasted 99acres search page.
Full property pages for each listing on the search URL.
Scrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.