99acres Projects Search Scraper avatar

99acres Projects Search Scraper

Pricing

from $3.99 / 1,000 results

Go to Apify Store
99acres Projects Search Scraper

99acres Projects Search Scraper

Scrape 99acres new project search results with developer info, configurations, RERA, and optional deep scraping.

Pricing

from $3.99 / 1,000 results

Rating

0.0

(0)

Developer

Coding Frontned

Coding Frontned

Maintained by Community

Actor stats

0

Bookmarked

11

Total users

3

Monthly active users

9 days ago

Last modified

Share

What this Actor does

This Actor collects public project listings from 99acres. It can return project identity, per-configuration prices and areas, location details, project specifications, construction counts, amenities, RERA data, developer details, public media and documents, FAQs, and image URLs. Optional detail-page scraping adds fields that the selected project page exposes.

Use the results for new-project discovery, residential market research, location comparisons, and project monitoring. The Actor does not log in, submit contact or brochure forms, solve CAPTCHAs, or bypass access controls.

Get started

  1. Open the Actor's Input tab.
  2. Enter one or more public 99acres project search URLs. The supported paths begin with /search/project/ or /new-projects-in-.
  3. Set a result limit and page limit. Add filters and choose whether to include project details, which are enabled by default.
  4. Click Start.
  5. When the run finishes, open Results for project records or Output summary for the run status and saved-record count.

Input

searchUrls is required. All other fields are optional. The Actor normalizes accepted URLs to www.99acres.com, removes fragments, and rejects unsupported hosts or paths. Duplicate normalized URLs are rejected.

Search and result limits

FieldTypeRequired?DefaultWhat it does
searchUrlsArray of stringsRequiredNoneOne to 10 HTTPS 99acres project-search or new-project URLs. Each URL must use /search/project/ or /new-projects-in-.
maxItemsInteger, 1–500Optional20Maximum number of saved projects across all input URLs.
maxPagesInteger, 1–100Optional25Maximum number of pages to visit for each input URL. The Console prefill is also 25; reaching this limit is normal completion.

maxItems is shared across all search URLs; maxPages applies separately to each URL. The Actor follows a next-page link when one is available. Results are not sorted after collection; they follow the order returned by 99acres and the order the pages are processed.

Filters

FieldTypeRequired?DefaultWhat it does
filtersObjectOptional{}Holds the optional filters below. Unknown filter names are rejected.
filters.statusesArray of strings, each 1–80 charactersOptional[]Keep a project when its status or possession text contains any listed value, ignoring letter case. Duplicate values are rejected.
filters.configurationsArray of strings, each 1–30 charactersOptional[]Keep a project when any listed configuration matches, such as 2 BHK. Letter case and spaces do not affect matching; duplicate values are rejected.
filters.minPriceNumber, 0–1,000,000,000,000OptionalNoneKeep price ranges that overlap this lower bound. Prices are interpreted as INR.
filters.maxPriceNumber, 0–1,000,000,000,000OptionalNoneKeep price ranges that overlap this upper bound.
filters.minAreaNumber, 0–100,000,000OptionalNoneKeep area ranges that overlap this lower bound, using the listing's unit.
filters.maxAreaNumber, 0–100,000,000OptionalNoneKeep area ranges that overlap this upper bound, using the listing's unit.

For each filter array, a project can match any one of its entries. When both minimum and maximum bounds are supplied, the minimum must not exceed the maximum. A project without a numeric price or area cannot pass a filter that needs that value.

Information to include

FieldTypeRequired?DefaultWhat it does
enableDeepScrapingBooleanOptionaltrueOpen each accepted project's public detail page for additional information. A detail-page failure leaves the project record from the search page available and marks the run as partial when a project was saved.
includeDescriptionBooleanOptionaltrueInclude project descriptions from the result card and complete text from an identified detail-page description section.
includeHighlightsBooleanOptionaltrueInclude highlights shown on result cards and the selected project's detail page.
includeImagesBooleanOptionaltrueInclude extracted project images once, plus image-only URLs such as video thumbnails, developer logos, and RERA QR images. Video, document, and floor-plan page URLs remain separate fields.
includeAmenitiesBooleanOptionaltrueInclude labels found in amenity or facility sections on optional detail pages. Mentions elsewhere on a page are not treated as project amenities.
includeContactBooleanOptionaltrueInclude contact fields shown on the listing or optional detail page. contact.name is only for an explicitly named individual; developer or company names belong in developer or contact.companyName.
deduplicateBooleanOptionaltrueKeep only one result per project ID across pages and input URLs. Set to false to allow the same project to appear more than once.

The information switches remove their corresponding fields from records when set to false. Missing information is omitted; the Actor does not fill missing values with placeholders.

Request behavior

FieldTypeRequired?DefaultWhat it does
localeString: en-IN or en-USOptionalen-INSets the Accept-Language request header preference. It does not change the source page's displayed language.
requestDelayMsInteger, 0–30,000Optional0Adds a wait after each search page loads and before each optional detail-page navigation.
maxConcurrencyInteger, 1–3Optional1Maximum number of search pages processed at the same time.
detailConcurrencyInteger, 1–5Optional2Maximum number of detail tabs opened at the same time when deep scraping is enabled.
maxRequestRetriesInteger, 0–2Optional0Maximum retries for a failed search-page request.
navigationTimeoutSecsInteger, 30–300Optional90Navigation timeout in seconds for search and detail pages.
requestHandlerTimeoutSecsInteger, 60–600Optional180Maximum time in seconds allowed to process one search page.
proxyConfigurationObjectOptional{"useApifyProxy":true,"apifyProxyGroups":["RESIDENTIAL"],"apifyProxyCountry":"IN"}Uses India residential Apify Proxy for project detail pages. You can choose another supported Apify or custom HTTP proxy configuration.

India residential Apify Proxy is enabled by default and is billed by Apify. Other routes may return only search-card data if detail pages require verification. Set {"useApifyProxy":false} to disable it. Do not put credential values in shared inputs.

Copyable input examples

A small search:

{
"searchUrls": ["https://www.99acres.com/new-projects-in-chennai-west-ffid"],
"maxItems": 5,
"maxPages": 1
}

A filtered search:

{
"searchUrls": ["https://www.99acres.com/new-projects-in-chennai-west-ffid"],
"maxItems": 10,
"maxPages": 2,
"filters": {
"statuses": ["Under Construction"],
"configurations": ["2 BHK", "3 BHK"],
"minPrice": 5000000,
"maxPrice": 20000000,
"minArea": 600,
"maxArea": 2000
}
}

Several search URLs with deduplication:

{
"searchUrls": [
"https://www.99acres.com/new-projects-in-chennai-west-ffid",
"https://www.99acres.com/new-projects-in-porur-chennai-west-ffid"
],
"maxItems": 12,
"maxPages": 3,
"deduplicate": true
}

More pages with optional details switched off:

{
"searchUrls": ["https://www.99acres.com/search/project/buy/pune"],
"maxItems": 25,
"maxPages": 5,
"enableDeepScraping": false,
"includeDescription": false,
"includeHighlights": false,
"includeImages": false,
"includeAmenities": false,
"includeContact": false
}

Search-page results with optional detail enrichment:

{
"searchUrls": ["https://www.99acres.com/new-projects-in-bengaluru-east-ffid"],
"maxItems": 4,
"maxPages": 1,
"enableDeepScraping": true,
"detailConcurrency": 1,
"requestDelayMs": 250
}

Results

You can download the dataset in various formats such as JSON, HTML, CSV, or Excel.

Each dataset item is one validated project record. Projects without a usable source project URL are skipped; the Actor does not construct replacement business links. Price ranges are normalized to INR, including ranges separated by an en dash or em dash. Aggregate price bounds come from visible configuration rows; a conflicting basic-details price is ignored. Aggregate area is included only when configuration rows share an area unit and type; otherwise, use the per-configuration areas. Missing numbers are omitted rather than converted to zero.

The following example is illustrative; its values and URL are made up to show the output shape, not to claim a verified live result. Real items can omit any optional field when 99acres does not provide it or when the corresponding input switch is off.

{
"projectId": "r428776",
"idType": "npxid",
"projectUrl": "https://www.99acres.com/example-heights-chennai-npxid-r428776",
"projectName": "Example Heights",
"developer": "Example Builders",
"propertyType": "Apartment",
"configurations": ["2 BHK", "3 BHK"],
"location": "Example Locality, Example City",
"price": {
"min": 5718000,
"max": 12000000,
"displayPrice": "57.18 L - 1.20 Cr",
"currency": "INR"
},
"area": {
"min": 650,
"max": 1450,
"unit": "sqft"
},
"propertyDetails": {
"bathrooms": 2,
"configurations": ["2 BHK", "3 BHK"]
},
"statusInfo": "Under Construction",
"possessionDate": "Oct 2028",
"verification": {
"isReraRegistered": true,
"reraNumber": "TN/29/Building/0459/2023"
},
"amenities": ["Swimming Pool", "Gymnasium"],
"projectHighlights": ["Rooftop clubhouse", "Close to transit"],
"images": [
"https://newprojects.99acres.com/projects/example/images/pool.jpg",
"https://newprojects.99acres.com/projects/example/images/exterior.jpg"
],
"photoCount": 12,
"description": "Example Heights offers well-planned homes close to city amenities. The project includes landscaped common spaces and residential layouts. Amenities include a swimming pool and gymnasium for residents.",
"dates": {
"posted": "3 weeks ago",
"updated": "15 Jan 2025"
},
"contact": {
"name": "Example Contact",
"companyName": "Example Builders"
},
"totalFloors": 24,
"configurationDetails": [
{
"configuration": "2 BHK",
"propertyType": "Apartment",
"areaType": "Built-up Area",
"area": {"min": 650, "max": 850, "unit": "sqft"},
"secondaryAreaDisplay": "60.39 - 78.97 sq m",
"price": {
"min": 5718000,
"max": 6900000,
"displayPrice": "57.18 L - 69.00 L",
"currency": "INR"
}
},
{
"configuration": "3 BHK",
"propertyType": "Apartment",
"areaType": "Built-up Area",
"area": {"min": 900, "max": 1450, "unit": "sqft"},
"secondaryAreaDisplay": "83.61 - 134.71 sq m",
"price": {
"min": 7200000,
"max": 12000000,
"displayPrice": "72 L - 1.20 Cr",
"currency": "INR"
}
}
],
"latitude": 13.054,
"longitude": 80.241,
"postalCode": "600000",
"state": "Example State",
"city": "Example City",
"locality": "Example Locality",
"totalTowers": 4,
"totalUnits": 320,
"projectArea": {
"min": 2.1,
"max": 2.1,
"unit": "acres",
"display": "2.1 acres",
"secondaryDisplay": "8,498 sq m"
},
"openAreaPercentage": 65,
"specifications": "Example project specifications and features.",
"locationAdvantages": [
{"name": "Example Metro Station", "category": "Metro station", "distance": "8.5 km"}
],
"videos": [
{
"url": "https://newprojects.99acres.com/projects/example/media/walkthrough.mp4",
"title": "Project walkthrough",
"thumbnailUrl": "https://newprojects.99acres.com/projects/example/media/walkthrough.jpg",
"uploadedAt": "2026-03-08"
}
],
"documents": [
{"title": "Project brochure", "url": "https://newprojects.99acres.com/projects/example/brochure.pdf"}
],
"developerDetails": {
"name": "Example Builders",
"url": "https://www.99acres.com/example-builders",
"description": "Example developer profile text.",
"logoUrl": "https://newprojects.99acres.com/projects/example/media/builder-logo.png"
},
"reraDetails": [
{
"phase": "Phase 1",
"registrationStatus": "Registered",
"registrationNumber": "TN/29/Building/0459/2023",
"registrationText": "TN/29/Building/0459/2023",
"websiteUrl": "https://www.tnrera.in/",
"qrCodeUrl": "https://newprojects.99acres.com/projects/example/media/rera-qr.png"
}
],
"mediaCount": 18,
"faqs": [
{"question": "When is possession?", "answer": "October 2028."}
],
"floorPlanUrl": "https://www.99acres.com/example-heights-floor-plan-chennai-npxid-r428776"
}

Output fields

FieldTypeRequired?Meaning
projectIdStringRequiredStable 99acres project ID.
idTypeStringRequiredID marker from the project URL, such as npxid or npspid.
projectUrlStringRequiredDirect HTTPS link to the project page.
projectNameStringRequiredProject name shown by 99acres.
developerStringOptionalDeveloper or builder name.
propertyTypeStringOptionalProperty category inferred from the listing, such as Apartment or Land.
configurationsArray of stringsOptionalConfigurations such as 2 BHK or 3 BHK. BHK means bedrooms, hall, and kitchen.
locationStringOptionalLocality or address text.
priceObjectOptionalAggregate min, max, displayPrice, and currency from visible configuration rows; normalized numeric prices are in INR.
areaObjectOptionalAggregate min, max, and unit; included only when configuration rows share an area unit and type.
propertyDetailsObjectOptionalbedrooms is a nonnegative whole number only when one value is unambiguous, including from a single listed configuration; bathrooms is a nonnegative whole number when shown. Several configurations do not imply one bedroom count.
statusInfoStringOptionalConstruction or launch status.
possessionDateStringOptionalPossession text shown on the card.
verificationObjectOptionalisReraRegistered when explicitly reported or supported by a registration number or positive registration label, and reraNumber when found. An absent registration fact is omitted, rather than reported as false.
amenitiesArray of stringsOptionalLabels from identified amenity or facility sections during optional detail scraping.
projectHighlightsArray of stringsOptionalHighlight text from the result card or project summary.
imagesArray of stringsOptionalAll extracted card and optional gallery image URLs, deduplicated by URL. Detail images add to the card images.
photoCountNonnegative integerOptionalPhoto count shown on the result card; omitted if no photo count is published. It is photo-only and is not calculated from extracted image URLs.
descriptionStringOptionalDescription text from the card or complete text from an identified detail-page description section. Paragraph text is retained and whitespace is normalized.
datesObjectOptionalposted and updated date text from optional detail scraping.
contactObjectOptionalname only for an explicitly named individual; companyName for a developer or company.
totalFloorsNonnegative integerOptionalFloor count found on an optional detail page.
configurationDetailsArray of objectsOptionalOne object per visible configuration, with its configuration label, property/area types, area and price ranges, and secondary area display text.
latitudeNumber, −90 to 90OptionalProject coordinate from the identity-matched page.
longitudeNumber, −180 to 180OptionalProject coordinate from the identity-matched page.
postalCodeStringOptionalPostal code shown in the project location data.
stateStringOptionalState name from project location data.
cityStringOptionalCity name from project location data.
localityStringOptionalLocality name from project location data.
totalTowersNonnegative integerOptionalTower count from the project specifications.
totalUnitsNonnegative integerOptionalUnit count from the project specifications.
projectAreaObjectOptionalProject-site min, max, unit, and source display strings when available.
openAreaPercentageNumber, 0–100OptionalOpen-area percentage shown in project specifications.
specificationsStringOptionalText from the project's specifications section.
locationAdvantagesArray of objectsOptionalNearby points of interest with their source category and distance. These are not project amenities.
videosArray of objectsOptionalPublic video URLs and source titles, thumbnails, and upload dates when available. Video URLs remain when includeImages is off; thumbnail URLs follow that switch.
documentsArray of objectsOptionalPublic document URLs, such as a brochure or price list, and their source titles.
developerDetailsObjectOptionalDeveloper name, public profile URL, description, and logo URL when exposed. The developer remains separate from an individual contact name.
reraDetailsArray of objectsOptionalPhase-level registration status, number/text, registry URL, and QR image URL when exposed.
mediaCountNonnegative integerOptionalSource-published combined photo and video count. It is separate from photoCount and is not computed from collected URLs.
faqsArray of objectsOptionalQuestion and answer text from the project's FAQ section.
floorPlanUrlHTTPS URLOptionalSame-project floor-plan page link when exposed and its project identity matches.

Nested output values

Nested fields are optional unless marked required. URL values are public HTTPS links with no embedded credentials.

FieldNested shape
pricemin and max: nonnegative numbers; displayPrice: string; currency: INR.
areamin and max: nonnegative numbers; unit: string.
propertyDetailsbedrooms and bathrooms: nonnegative whole numbers; configurations: array of strings. A single count is not inferred from varied configurations.
verificationisReraRegistered: boolean; reraNumber: string.
datesposted and updated: strings.
contactname and companyName: strings. name is for an explicitly named individual only.
configurationDetails[]Required: configuration string and at least one of area or price. propertyType, areaType, and secondaryAreaDisplay: strings. area: min/max nonnegative numbers and unit string. price: min/max nonnegative numbers, displayPrice string, and currency INR.
projectAreamin and max: nonnegative numbers; unit, display, and secondaryDisplay: strings.
locationAdvantages[]Required: name string; category and distance: strings.
videos[]Required: url HTTPS string; title, thumbnailUrl, and uploadedAt: strings.
documents[]Required: url HTTPS string; title: string.
developerDetailsRequired: name string; url, description, and logoUrl: optional strings. The URL and logo URL are omitted when unavailable; the logo URL follows includeImages.
reraDetails[]phase, registrationStatus, registrationNumber, registrationText, websiteUrl, and qrCodeUrl: strings. At least one of registrationNumber or registrationText is present. The QR image URL follows includeImages.
faqs[]Required: question and answer strings.

Fields inside optional objects are also omitted when unavailable. Run status and collection metadata are not included in project records.

Business arrays have no additional item cap imposed by the Actor. maxItems limits the number of project records, not the number of images, videos, documents, amenities, configurations, location advantages, FAQs, or highlights within each record. Only content exposed in the visited page is available; the Actor does not promise to open every gallery or hidden section. The source-published combined mediaCount and photo-only photoCount can differ from the number of image and video URLs exposed on the visited pages.

Run status

  • SUCCEEDED means at least one valid project record was written successfully.
  • SUCCEEDED with limited results means real records were saved before a search-page, detail-page, or storage failure interrupted part of collection. The run remains successful and the summary marks it partial.
  • FAILED means no valid project records were saved, including an empty, blocked, fully filtered, or invalid-input run. The Actor does not add placeholder rows.

The requested result limit or page limit being reached is normal completion. Run failure details are kept in the run log.

Output summary

The Output summary link opens the OUTPUT_SUMMARY record in the run's default Key-value store. It contains exactly these three fields:

FieldTypeRequired?Meaning
statusString (SUCCEEDED or FAILED)RequiredWhether at least one project record was saved.
itemsStoredNonnegative integerRequiredNumber of validated project records whose dataset writes completed.
isPartialBooleanRequiredtrue when a collection failure followed one or more saved project records.

Illustrative completed-run summary:

{
"status": "SUCCEEDED",
"itemsStored": 5,
"isPartial": false
}

Illustrative limited-results summary:

{
"status": "SUCCEEDED",
"itemsStored": 3,
"isPartial": true
}

Illustrative failed-run summary:

{
"status": "FAILED",
"itemsStored": 0,
"isPartial": false
}

A summary-write problem is logged and does not change the status determined by saved project records.

Tips, access, and support

Start with one URL, one page, and a small maxItems value. Project details are included by default; switch them off for faster collection of search-page records. Detail pages add browser navigations and can take longer. Reduce concurrency or add a delay if you need to make collection gentler.

99acres may block automated access or show a verification page. The Actor stops at those access controls and does not attempt to bypass them. Access depends on the source accepting requests from your network or configured proxy. An HTTP 403 Access Denied response prevents collection and detail enrichment; adding retries does not guarantee access. Fields vary by listing, and some fields are only available when deep scraping is enabled.

Apify usage depends on browser runtime, pages visited, optional detail navigations, retries, and proxy use. No fixed price is set in this README; check the run's platform usage for your account. For help, share the run ID and relevant run-log messages in the Actor's Issues tab. This Actor is not affiliated with 99acres or Info Edge. Follow the site's terms and applicable privacy requirements.