99acres Scraper
Pricing
from $0.97 / 1,000 listings
Go to Apify Store
99acres Scraper
Scrape property listings from 99acres.com using search queries or start URLs. Extract prices, amenities, seller/agent details, and optional listing-page extras.
99acres Scraper
Pricing
from $0.97 / 1,000 listings
Scrape property listings from 99acres.com using search queries or start URLs. Extract prices, amenities, seller/agent details, and optional listing-page extras.
You can access the 99acres Scraper programmatically from your own applications by using the Apify API. You can also choose the language preference from below. To use the Apify API, you’ll need an Apify account and your API token, found in API & Integrations in Apify Console.
{ "openapi": "3.0.1", "info": { "version": "1.0", "x-build-id": "ptvPhgl3znOFAxlca" }, "servers": [ { "url": "https://api.apify.com/v2" } ], "paths": { "/acts/rigelbytes~99acres-scraper/run-sync-get-dataset-items": { "post": { "operationId": "run-sync-get-dataset-items-rigelbytes-99acres-scraper", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } }, "/acts/rigelbytes~99acres-scraper/runs": { "post": { "operationId": "runs-sync-rigelbytes-99acres-scraper", "x-openai-isConsequential": false, "summary": "Executes an Actor and returns information about the initiated run in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/runsResponseSchema" } } } } } } }, "/acts/rigelbytes~99acres-scraper/run-sync": { "post": { "operationId": "run-sync-rigelbytes-99acres-scraper", "x-openai-isConsequential": false, "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.", "tags": [ "Run Actor" ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/inputSchema" } } } }, "parameters": [ { "name": "token", "in": "query", "required": true, "schema": { "type": "string" }, "description": "Enter your Apify token here" } ], "responses": { "200": { "description": "OK" } } } } }, "components": { "schemas": { "inputSchema": { "type": "object", "properties": { "searchQueries": { "title": "Search Queries", "type": "array", "description": "Locations to search on 99acres.com (e.g. \"Delhi\", \"Whitefield Bangalore\", \"Bandra Mumbai\"). Primary input for AI agents — no URL required. The first city or locality match is used.", "items": { "type": "string" } }, "startUrls": { "title": "Start URLs", "type": "array", "description": "99acres search or listing URLs (e.g. \"https://www.99acres.com/search/property/buy/delhi?city=1075722&preference=S&res_com=R\" or a ...-spid- / ...-npxid- listing page). Optional — filters still apply to query-based searches.", "items": { "type": "object", "required": [ "url" ], "properties": { "url": { "type": "string", "title": "URL of a web page", "format": "uri" } } } }, "category": { "title": "Category", "enum": [ "buy", "rent" ], "type": "string", "description": "Buy or rent inventory. Applies to search queries and start URLs that do not already encode a category.", "default": "buy" }, "segment": { "title": "Segment", "enum": [ "residential", "commercial" ], "type": "string", "description": "Residential homes or commercial inventory.", "default": "residential" }, "propertyTypes": { "title": "Property types", "uniqueItems": true, "type": "array", "description": "Restrict results to these property types (e.g. apartment, villa, plot). Leave empty for all types.", "items": { "type": "string", "enum": [ "apartment", "builder_floor", "house", "villa", "plot", "studio", "farmhouse", "serviced_apartment", "office", "shop", "warehouse" ], "enumTitles": [ "Apartment / flat", "Builder floor", "Independent house", "Villa", "Plot / land", "Studio apartment", "Farm house", "Serviced apartment", "Office space", "Shop / showroom", "Warehouse / godown" ] } }, "bedrooms": { "title": "BHK", "uniqueItems": true, "type": "array", "description": "Bedroom configuration to include (e.g. 2, 3). Leave empty for all.", "items": { "type": "string", "enum": [ "1", "2", "3", "4", "5" ], "enumTitles": [ "1 BHK", "2 BHK", "3 BHK", "4 BHK", "5+ BHK" ] } }, "furnishTypes": { "title": "Furnishing", "uniqueItems": true, "type": "array", "description": "Furnishing filter (furnished, semi-furnished, unfurnished).", "items": { "type": "string", "enum": [ "furnished", "semi_furnished", "unfurnished" ], "enumTitles": [ "Furnished", "Semi-furnished", "Unfurnished" ] } }, "postedBy": { "title": "Posted by", "enum": [ "", "owner", "dealer", "builder" ], "type": "string", "description": "Restrict to owners, dealers, or builders." }, "possession": { "title": "Possession", "enum": [ "", "ready_to_move", "under_construction" ], "type": "string", "description": "Ready-to-move inventory, under construction, or no restriction." }, "minPrice": { "title": "Minimum price (INR)", "minimum": 0, "type": "integer", "description": "Keep listings at or above this price in Indian rupees (e.g. 5000000 for ₹50 L)." }, "maxPrice": { "title": "Maximum price (INR)", "minimum": 0, "type": "integer", "description": "Keep listings at or below this price in Indian rupees (e.g. 20000000 for ₹2 Cr)." }, "extractListingDetails": { "title": "Extract listing details", "type": "boolean", "description": "Open each listing in parallel for description extras, photos, reviews, and page amenities. Charged as listing-details only when extras are actually attached. Search-card fields are always returned.", "default": false }, "extractAgentDetails": { "title": "Extract agent details", "type": "boolean", "description": "Emit unique dealer / owner / builder records from listing posters and featured-dealer widgets. Each agent is a separate dataset row charged as agent-details. Listing seller fields on the card are always included.", "default": false }, "maxConcurrency": { "title": "Max concurrency", "minimum": 1, "maximum": 10, "type": "integer", "description": "Parallel listing-detail workers (1–10). Higher is faster; each request uses a rotated residential proxy.", "default": 5 }, "maxItems": { "title": "Max Items", "minimum": 0, "type": "integer", "description": "Maximum number of listing records to scrape (0 = unlimited). Agent rows do not count toward this cap.", "default": 0 }, "proxyConfiguration": { "title": "Proxy Configuration", "type": "object", "description": "Proxy settings for anti-bot protection. Apify Residential is recommended for 99acres.com.", "default": { "useApifyProxy": true, "apifyProxyGroups": [ "RESIDENTIAL" ] } } } }, "runsResponseSchema": { "type": "object", "properties": { "data": { "type": "object", "properties": { "id": { "type": "string" }, "actId": { "type": "string" }, "userId": { "type": "string" }, "startedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "finishedAt": { "type": "string", "format": "date-time", "example": "2025-01-08T00:00:00.000Z" }, "status": { "type": "string", "example": "READY" }, "meta": { "type": "object", "properties": { "origin": { "type": "string", "example": "API" }, "userAgent": { "type": "string" } } }, "stats": { "type": "object", "properties": { "inputBodyLen": { "type": "integer", "example": 2000 }, "rebootCount": { "type": "integer", "example": 0 }, "restartCount": { "type": "integer", "example": 0 }, "resurrectCount": { "type": "integer", "example": 0 }, "computeUnits": { "type": "integer", "example": 0 } } }, "options": { "type": "object", "properties": { "build": { "type": "string", "example": "latest" }, "timeoutSecs": { "type": "integer", "example": 300 }, "memoryMbytes": { "type": "integer", "example": 1024 }, "diskMbytes": { "type": "integer", "example": 2048 } } }, "buildId": { "type": "string" }, "defaultKeyValueStoreId": { "type": "string" }, "defaultDatasetId": { "type": "string" }, "defaultRequestQueueId": { "type": "string" }, "buildNumber": { "type": "string", "example": "1.0.0" }, "containerUrl": { "type": "string" }, "usage": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "integer", "example": 1 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } }, "usageTotalUsd": { "type": "number", "example": 0.00005 }, "usageUsd": { "type": "object", "properties": { "ACTOR_COMPUTE_UNITS": { "type": "integer", "example": 0 }, "DATASET_READS": { "type": "integer", "example": 0 }, "DATASET_WRITES": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_READS": { "type": "integer", "example": 0 }, "KEY_VALUE_STORE_WRITES": { "type": "number", "example": 0.00005 }, "KEY_VALUE_STORE_LISTS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_READS": { "type": "integer", "example": 0 }, "REQUEST_QUEUE_WRITES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_INTERNAL_GBYTES": { "type": "integer", "example": 0 }, "DATA_TRANSFER_EXTERNAL_GBYTES": { "type": "integer", "example": 0 }, "PROXY_RESIDENTIAL_TRANSFER_GBYTES": { "type": "integer", "example": 0 }, "PROXY_SERPS": { "type": "integer", "example": 0 } } } } } } } } }}OpenAPI is a standard for designing and describing RESTful APIs, allowing developers to define API structure, endpoints, and data formats in a machine-readable way. It simplifies API development, integration, and documentation.
OpenAPI is effective when used with AI agents and GPTs by standardizing how these systems interact with various APIs, for reliable integrations and efficient communication.
By defining machine-readable API specifications, OpenAPI allows AI models like GPTs to understand and use varied data sources, improving accuracy. This accelerates development, reduces errors, and provides context-aware responses, making OpenAPI a core component for AI applications.
You can download the OpenAPI definitions for 99acres Scraper from the options below:
If you’d like to learn more about how OpenAPI powers GPTs, read our blog post.
You can also check out our other API clients: