{
  "data": {
    "id": "GfLPEtbM3CuOX9T6U",
    "actId": "2TFMROZoJNU2eMqGS",
    "userId": "zq8lKbpLzTjGDayPC",
    "startedAt": "2026-10-23T00:06:58.791Z",
    "finishedAt": "2026-10-23T00:07:15.216Z",
    "status": "SUCCEEDED",
    "meta": {
      "origin": "CLI"
    },
    "stats": {
      "durationMillis": 16313,
      "runTimeSecs": 16.313,
      "computeUnits": 0.018125555555555554,
      "imageSizeBytes": 354940928
    },
    "options": {
      "useCache": true,
      "betaPackages": false,
      "memoryMbytes": 4096,
      "diskMbytes": 8192
    },
    "createdByOrganizationMemberUserId": "GK9YjZRyQZVzOdoH5",
    "exitCode": 0,
    "inputSchema": "{\n  \"title\": \"99acres Scraper Input\",\n  \"description\": \"Search 99acres sale and rent listings by city, BHK, property type, locality, and price.\",\n  \"type\": \"object\",\n  \"schemaVersion\": 1,\n  \"properties\": {\n    \"mode\": {\n      \"title\": \"Listing type\",\n      \"type\": \"string\",\n      \"description\": \"Search properties for sale or for rent.\",\n      \"editor\": \"select\",\n      \"enumTitles\": [\n        \"For sale\",\n        \"For rent\"\n      ],\n      \"default\": \"searchForSale\",\n      \"prefill\": \"searchForRent\",\n      \"enumSuggestedValues\": [\n        \"searchForSale\",\n        \"searchForRent\"\n      ]\n    },\n    \"city\": {\n      \"title\": \"City\",\n      \"type\": \"string\",\n      \"description\": \"Indian city to search in.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"Delhi\",\n        \"Mumbai\",\n        \"Bangalore\",\n        \"Hyderabad\",\n        \"Chennai\",\n        \"Kolkata\",\n        \"Pune\",\n        \"Ahmedabad\",\n        \"Jaipur\",\n        \"Noida\",\n        \"Gurugram\",\n        \"Navi Mumbai\",\n        \"Thane\",\n        \"Ghaziabad\",\n        \"Faridabad\",\n        \"Lucknow\",\n        \"Surat\",\n        \"Indore\",\n        \"Bhopal\",\n        \"Nagpur\",\n        \"Vadodara\",\n        \"Chandigarh\",\n        \"Coimbatore\",\n        \"Kochi\",\n        \"Visakhapatnam\"\n      ],\n      \"enumTitles\": [\n        \"Delhi\",\n        \"Mumbai\",\n        \"Bangalore\",\n        \"Hyderabad\",\n        \"Chennai\",\n        \"Kolkata\",\n        \"Pune\",\n        \"Ahmedabad\",\n        \"Jaipur\",\n        \"Noida\",\n        \"Gurugram\",\n        \"Navi Mumbai\",\n        \"Thane\",\n        \"Ghaziabad\",\n        \"Faridabad\",\n        \"Lucknow\",\n        \"Surat\",\n        \"Indore\",\n        \"Bhopal\",\n        \"Nagpur\",\n        \"Vadodara\",\n        \"Chandigarh\",\n        \"Coimbatore\",\n        \"Kochi\",\n        \"Visakhapatnam\"\n      ],\n      \"default\": \"Delhi\",\n      \"prefill\": \"Noida\"\n    },\n    \"propertyType\": {\n      \"title\": \"Property type\",\n      \"type\": \"string\",\n      \"description\": \"Residential property type to search for.\",\n      \"editor\": \"select\",\n      \"enumTitles\": [\n        \"Residential apartment\",\n        \"Independent house\",\n        \"Villa\",\n        \"Residential plot / land\",\n        \"Independent / builder floor\",\n        \"Studio apartment\",\n        \"Farm house\"\n      ],\n      \"default\": \"Residential Apartment\",\n      \"prefill\": \"Residential Apartment\",\n      \"enumSuggestedValues\": [\n        \"Residential Apartment\",\n        \"Independent House\",\n        \"Villa\",\n        \"Residential Plot\",\n        \"Independent Floor\",\n        \"Studio Apartment\",\n        \"Farm House\"\n      ]\n    },\n    \"bedrooms\": {\n      \"title\": \"Bedrooms (BHK)\",\n      \"type\": \"string\",\n      \"description\": \"Number of bedrooms. Choose '5+' for five or more.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"1\",\n        \"2\",\n        \"3\",\n        \"4\",\n        \"5+\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"1 BHK\",\n        \"2 BHK\",\n        \"3 BHK\",\n        \"4 BHK\",\n        \"5+ BHK\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"2\"\n    },\n    \"locality\": {\n      \"title\": \"Locality\",\n      \"type\": \"string\",\n      \"description\": \"Optional locality or sector name within the city, e.g. 'Sector 43'. The actor looks up the 99acres locality ID.\",\n      \"editor\": \"textfield\"\n    },\n    \"localities\": {\n      \"title\": \"Localities (multiple)\",\n      \"type\": \"array\",\n      \"description\": \"Optional list of locality names; each is resolved to a 99acres locality ID.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"priceMin\": {\n      \"title\": \"Min price (INR)\",\n      \"type\": \"integer\",\n      \"description\": \"Minimum price in Indian Rupees. Applied while scanning pages because 99acres ignores price query parameters.\",\n      \"minimum\": 0,\n      \"maximum\": 999999999\n    },\n    \"priceMax\": {\n      \"title\": \"Max price (INR)\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum price in Indian Rupees. Applied while scanning pages because 99acres ignores price query parameters.\",\n      \"minimum\": 0,\n      \"maximum\": 999999999\n    },\n    \"furnishing\": {\n      \"title\": \"Furnishing\",\n      \"type\": \"string\",\n      \"description\": \"Filter by furnishing status.\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"\",\n        \"Furnished\",\n        \"Unfurnished\",\n        \"Semi-furnished\"\n      ],\n      \"enumTitles\": [\n        \"Any\",\n        \"Furnished\",\n        \"Unfurnished\",\n        \"Semi-furnished\"\n      ],\n      \"default\": \"\",\n      \"prefill\": \"\"\n    },\n    \"sortBy\": {\n      \"title\": \"Sort by\",\n      \"type\": \"string\",\n      \"description\": \"Result order. 'Newest' is 99acres' recently-updated order (updatedAt), not the original posting date (postedAt).\",\n      \"editor\": \"select\",\n      \"enum\": [\n        \"relevance\",\n        \"newest\"\n      ],\n      \"enumTitles\": [\n        \"Relevance\",\n        \"Newest first\"\n      ],\n      \"default\": \"relevance\",\n      \"prefill\": \"relevance\"\n    },\n    \"includeProjects\": {\n      \"title\": \"Include new-launch projects\",\n      \"type\": \"boolean\",\n      \"description\": \"Include new-launch project cards alongside individual listings. Project rows have recordType 'project'.\",\n      \"default\": true,\n      \"prefill\": false\n    },\n    \"includeDetails\": {\n      \"title\": \"Include detail-page enrichment\",\n      \"type\": \"boolean\",\n      \"description\": \"Fetch each property's detail page for RERA numbers, amenity labels, carpet area, floor, furnishing details, and coordinates. Off by default because it adds one residential request per property.\",\n      \"default\": false,\n      \"prefill\": false\n    },\n    \"searchUrls\": {\n      \"title\": \"Search URLs\",\n      \"type\": \"array\",\n      \"description\": \"Optional 99acres search URLs: /property-in-<city>-ffid?... or /<n>-bhk-flats-in-<city>-ffid?... When provided, city and filter fields are ignored.\",\n      \"editor\": \"stringList\",\n      \"items\": {\n        \"type\": \"string\"\n      }\n    },\n    \"maxItems\": {\n      \"title\": \"Max items\",\n      \"type\": \"integer\",\n      \"description\": \"Maximum number of property and project records to return.\",\n      \"minimum\": 1,\n      \"maximum\": 1000,\n      \"default\": 50,\n      \"prefill\": 3\n    }\n  },\n  \"required\": [\n    \"mode\",\n    \"city\"\n  ]\n}",
    "readme": "# 99acres City & BHK Property Listing Scraper\n\nPull live 99acres sale and rent listings for a city, BHK size, property type, locality, and price band. Every row is a structured property record with the asking price, area, seller details, photos, amenity IDs, floor, furnishing, and map coordinates — plus optional new-launch project cards.\n\n## What this actor does\n\n- Searches 99acres for **sale or rent** across 25 Indian cities, from Delhi and Mumbai to Noida, Pune, Bangalore, Gurugram, and Kochi.\n- Filters by **BHK, residential property type, locality, furnishing, and price**. Localities are resolved to 99acres' own location IDs, so names like `Sector 43` work instead of silently returning the whole city.\n- Returns **one row per listing** with title, price text and numeric INR value, area in square feet and square metres, BHK, bathrooms, property type, locality, city, project/society, seller name and type, posted date, images, video, amenity IDs, floor, furnishing, availability, coordinates, and RERA registration flags.\n- Adds **new-launch project cards** when `includeProjects` is on; each project row has its builder, price range, configurations, construction status where the card shows it, possession, photos, and project URL. Listings are collected first; project cards are appended only up to 20% of `maxItems`, so they never crowd out individual listings.\n- Accepts **pasted 99acres search URLs** for filters configured on the site, and supports 99acres' date-descending (recently updated) sort.\n- Omits fields 99acres does not show for a listing instead of writing `null` or a placeholder.\n\n## Output per property\n\n- `propertyId`, `propId` — 99acres listing identifiers\n- `title`, `propertyType`, `bedrooms`, `bathrooms`, `balconies`\n- `price` (as displayed), `priceValue`, `priceMaxValue`, `pricePerSqft`\n- `area` (as displayed), `areaSqft`, `areaSqm`, `areaType`\n- `city`, `locality`, `projectName`\n- `postedBy`, `sellerName`, `sellerCompany`, `sellerType`\n- `postedAt`, `updatedAt`, `availability`, `statusTags`\n- `furnishing`, `floor`, `totalFloors`, `facing`\n- `description`, `images[]`, `imageCount`, `videoUrl`\n- `amenityIds[]`\n- `latitude`, `longitude`\n- `reraRegistered`, `reraDealerRegistered`\n- `transactionType`, `dealType`\n- `propertyUrl`, `sourceUrl`\n- `recordType: \"property\"`, `scrapedAt`\n\nWith `includeDetails: true`, property rows also include: `reraNumber`, `dealerReraNumber`, `amenities[]` (labels), `carpetAreaSqft`, `superBuiltupAreaSqft`, `floorLabel`, `furnishingDetails`, `flooring`, `ownership`, `ageLabel`, `deposit`, `priceNegotiable`, `powerBackup`, `waterSource`, `petFriendly`, `brokerage`, `availabilityText`, `availabilityDate`, `detailsEnriched`.\n\n## Output per project (`includeProjects: true`)\n\n`recordType: \"project\"`, `projectId`, `title`, `subtitle`, `builder`, `priceMin`, `priceMax`, `priceLabel`, `pricePerSqft`, `areaType`, `configurations[]` (`bhk`, `area`, `price`), `constructionStatus` (when shown), `possession`, `locality`, `city`, `latitude`, `longitude`, `images[]`, `imageCount`, `tags[]`, `description`, `projectUrl`, `isNewLaunch`, `reraTag`, `scrapedAt`.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `searchForSale` | `searchForSale` or `searchForRent` |\n| `city` | string | `Delhi` | One of the 25 supported Indian cities |\n| `propertyType` | string | `Residential Apartment` | Residential apartment, independent house, villa, plot, independent floor, studio, or farm house |\n| `bedrooms` | string | any | `1`–`4` or `5+` BHK |\n| `locality` | string | – | One locality name within the city |\n| `localities` | array | – | Multiple locality names |\n| `priceMin` | integer | – | Minimum price in INR |\n| `priceMax` | integer | – | Maximum price in INR |\n| `furnishing` | string | any | Furnished, unfurnished, or semi-furnished |\n| `sortBy` | string | `relevance` | `relevance` or `newest` |\n| `includeProjects` | boolean | `true` | Add new-launch project cards (they count toward `maxItems`; set `false` for listings only) |\n| `searchUrls` | array | – | Full 99acres `/property-in-<city>-ffid?...` search URLs |\n| `maxItems` | integer | `50` | Record cap, 1–1,000 |\n\n### Example: 2 BHK rentals in Noida\n\n```json\n{\n  \"mode\": \"searchForRent\",\n  \"city\": \"Noida\",\n  \"propertyType\": \"Residential Apartment\",\n  \"bedrooms\": \"2\",\n  \"maxItems\": 30\n}\n```\n\n### Example: family homes in a locality\n\n```json\n{\n  \"mode\": \"searchForSale\",\n  \"city\": \"Bangalore\",\n  \"propertyType\": \"Independent House\",\n  \"bedrooms\": \"3\",\n  \"localities\": [\"HSR Layout\", \"Koramangala\"],\n  \"priceMin\": 10000000,\n  \"priceMax\": 30000000,\n  \"maxItems\": 50\n}\n```\n\n### Example: newest furnished rentals\n\n```json\n{\n  \"mode\": \"searchForRent\",\n  \"city\": \"Pune\",\n  \"bedrooms\": \"2\",\n  \"furnishing\": \"Semi-furnished\",\n  \"sortBy\": \"newest\",\n  \"includeProjects\": false,\n  \"maxItems\": 40\n}\n```\n\n### Example: enrich property details\n\n```json\n{\n  \"mode\": \"searchForRent\",\n  \"city\": \"Noida\",\n  \"bedrooms\": \"2\",\n  \"includeProjects\": false,\n  \"includeDetails\": true,\n  \"maxItems\": 5\n}\n```\n\n### Example: reuse a search URL\n\n```json\n{\n  \"searchUrls\": [\n    \"https://www.99acres.com/property-in-mumbai-ffid?preference=R&res_com=R&bedroom_num=2&page=1\"\n  ],\n  \"maxItems\": 25\n}\n```\n\n## Use cases\n\n- **Market research** — compare asking prices and inventory across cities, BHK sizes, and localities.\n- **Investment screening** — build a shortlist by price band, property type, and furnishing.\n- **Rental tracking** — refresh a neighbourhood feed with current rents and new listings.\n- **Lead sourcing** — collect public seller names, seller types, and active listing URLs.\n- **PropTech feeds** — populate dashboards, comparison pages, or CRMs with clean listing records.\n- **New-launch monitoring** — track project price ranges and possession dates alongside resale inventory.\n\n## FAQ\n\n**Do I need a 99acres login or cookies?**\nNo. The actor reads public search results and needs no account, cookie, or API key.\n\n**Do I need to configure a proxy?**\nNo. The actor chooses a working connection to 99acres automatically. Just fill in the input and run it.\n\n**Why are some fields missing from a record?**\n99acres does not show every field for every listing. Missing values are omitted rather than sent as `null` or a placeholder.\n\n**What does `includeDetails` add, and what does it cost?**\nIt fetches the individual property page for RERA numbers, amenity labels, carpet area, floor and furnishing details, and coordinates. Each property needs one extra residential request, so keep `maxItems` small when it is on.\n\n**Why does a price filter sometimes take longer?**\n99acres ignores price query parameters, so the actor applies your price range while it scans result pages. A narrow band may need more pages than a broad one.\n\n**What is the difference between a property row and a project row?**\n`recordType: \"property\"` is an individual resale or rental listing. `recordType: \"project\"` is a new-launch project card with a builder, price range, and unit configurations. Set `includeProjects` to `false` for listings only.\n\n**Why do some localities return no rows?**\nThe actor resolves locality names from the city's own locality list, not from the filtered result page. A name can resolve correctly and still return no rows if that BHK, property type, furnishing, or price band has no listings there. The actor says so instead of returning the whole city.\n\n**Why doesn't \"Newest first\" match the posted date?**\n99acres' date sort is a **recently updated** order. Use `updatedAt` when you need to compare the sort order; `postedAt` is the original listing date.\n\n**Does the actor support commercial property?**\nThis revision covers residential sale and rent. Commercial property types are not exposed yet.\n\n**Is this actor affiliated with 99acres?**\nNo. This is an independent, third-party actor that reads 99acres' public search pages and is not operated by or affiliated with 99acres.com.\n",
    "actorDefinition": {
      "actorSpecification": 1,
      "name": "99acres-city-and-bhk-property-listing-scraper",
      "title": "99acres City & BHK Property Listing Scraper",
      "description": "Scrape 99acres sale and rent listings by city, BHK, property type, locality, and price across 25 Indian cities. Get prices, area, seller type, images, amenities, floor, furnishing, coordinates, and project cards. No login or proxy setup.",
      "version": "1.0",
      "buildTag": "latest",
      "dockerfile": "./Dockerfile",
      "readme": "# 99acres City & BHK Property Listing Scraper\n\nPull live 99acres sale and rent listings for a city, BHK size, property type, locality, and price band. Every row is a structured property record with the asking price, area, seller details, photos, amenity IDs, floor, furnishing, and map coordinates — plus optional new-launch project cards.\n\n## What this actor does\n\n- Searches 99acres for **sale or rent** across 25 Indian cities, from Delhi and Mumbai to Noida, Pune, Bangalore, Gurugram, and Kochi.\n- Filters by **BHK, residential property type, locality, furnishing, and price**. Localities are resolved to 99acres' own location IDs, so names like `Sector 43` work instead of silently returning the whole city.\n- Returns **one row per listing** with title, price text and numeric INR value, area in square feet and square metres, BHK, bathrooms, property type, locality, city, project/society, seller name and type, posted date, images, video, amenity IDs, floor, furnishing, availability, coordinates, and RERA registration flags.\n- Adds **new-launch project cards** when `includeProjects` is on; each project row has its builder, price range, configurations, construction status where the card shows it, possession, photos, and project URL. Listings are collected first; project cards are appended only up to 20% of `maxItems`, so they never crowd out individual listings.\n- Accepts **pasted 99acres search URLs** for filters configured on the site, and supports 99acres' date-descending (recently updated) sort.\n- Omits fields 99acres does not show for a listing instead of writing `null` or a placeholder.\n\n## Output per property\n\n- `propertyId`, `propId` — 99acres listing identifiers\n- `title`, `propertyType`, `bedrooms`, `bathrooms`, `balconies`\n- `price` (as displayed), `priceValue`, `priceMaxValue`, `pricePerSqft`\n- `area` (as displayed), `areaSqft`, `areaSqm`, `areaType`\n- `city`, `locality`, `projectName`\n- `postedBy`, `sellerName`, `sellerCompany`, `sellerType`\n- `postedAt`, `updatedAt`, `availability`, `statusTags`\n- `furnishing`, `floor`, `totalFloors`, `facing`\n- `description`, `images[]`, `imageCount`, `videoUrl`\n- `amenityIds[]`\n- `latitude`, `longitude`\n- `reraRegistered`, `reraDealerRegistered`\n- `transactionType`, `dealType`\n- `propertyUrl`, `sourceUrl`\n- `recordType: \"property\"`, `scrapedAt`\n\nWith `includeDetails: true`, property rows also include: `reraNumber`, `dealerReraNumber`, `amenities[]` (labels), `carpetAreaSqft`, `superBuiltupAreaSqft`, `floorLabel`, `furnishingDetails`, `flooring`, `ownership`, `ageLabel`, `deposit`, `priceNegotiable`, `powerBackup`, `waterSource`, `petFriendly`, `brokerage`, `availabilityText`, `availabilityDate`, `detailsEnriched`.\n\n## Output per project (`includeProjects: true`)\n\n`recordType: \"project\"`, `projectId`, `title`, `subtitle`, `builder`, `priceMin`, `priceMax`, `priceLabel`, `pricePerSqft`, `areaType`, `configurations[]` (`bhk`, `area`, `price`), `constructionStatus` (when shown), `possession`, `locality`, `city`, `latitude`, `longitude`, `images[]`, `imageCount`, `tags[]`, `description`, `projectUrl`, `isNewLaunch`, `reraTag`, `scrapedAt`.\n\n## Input\n\n| Field | Type | Default | Description |\n|---|---|---|---|\n| `mode` | string | `searchForSale` | `searchForSale` or `searchForRent` |\n| `city` | string | `Delhi` | One of the 25 supported Indian cities |\n| `propertyType` | string | `Residential Apartment` | Residential apartment, independent house, villa, plot, independent floor, studio, or farm house |\n| `bedrooms` | string | any | `1`–`4` or `5+` BHK |\n| `locality` | string | – | One locality name within the city |\n| `localities` | array | – | Multiple locality names |\n| `priceMin` | integer | – | Minimum price in INR |\n| `priceMax` | integer | – | Maximum price in INR |\n| `furnishing` | string | any | Furnished, unfurnished, or semi-furnished |\n| `sortBy` | string | `relevance` | `relevance` or `newest` |\n| `includeProjects` | boolean | `true` | Add new-launch project cards (they count toward `maxItems`; set `false` for listings only) |\n| `searchUrls` | array | – | Full 99acres `/property-in-<city>-ffid?...` search URLs |\n| `maxItems` | integer | `50` | Record cap, 1–1,000 |\n\n### Example: 2 BHK rentals in Noida\n\n```json\n{\n  \"mode\": \"searchForRent\",\n  \"city\": \"Noida\",\n  \"propertyType\": \"Residential Apartment\",\n  \"bedrooms\": \"2\",\n  \"maxItems\": 30\n}\n```\n\n### Example: family homes in a locality\n\n```json\n{\n  \"mode\": \"searchForSale\",\n  \"city\": \"Bangalore\",\n  \"propertyType\": \"Independent House\",\n  \"bedrooms\": \"3\",\n  \"localities\": [\"HSR Layout\", \"Koramangala\"],\n  \"priceMin\": 10000000,\n  \"priceMax\": 30000000,\n  \"maxItems\": 50\n}\n```\n\n### Example: newest furnished rentals\n\n```json\n{\n  \"mode\": \"searchForRent\",\n  \"city\": \"Pune\",\n  \"bedrooms\": \"2\",\n  \"furnishing\": \"Semi-furnished\",\n  \"sortBy\": \"newest\",\n  \"includeProjects\": false,\n  \"maxItems\": 40\n}\n```\n\n### Example: enrich property details\n\n```json\n{\n  \"mode\": \"searchForRent\",\n  \"city\": \"Noida\",\n  \"bedrooms\": \"2\",\n  \"includeProjects\": false,\n  \"includeDetails\": true,\n  \"maxItems\": 5\n}\n```\n\n### Example: reuse a search URL\n\n```json\n{\n  \"searchUrls\": [\n    \"https://www.99acres.com/property-in-mumbai-ffid?preference=R&res_com=R&bedroom_num=2&page=1\"\n  ],\n  \"maxItems\": 25\n}\n```\n\n## Use cases\n\n- **Market research** — compare asking prices and inventory across cities, BHK sizes, and localities.\n- **Investment screening** — build a shortlist by price band, property type, and furnishing.\n- **Rental tracking** — refresh a neighbourhood feed with current rents and new listings.\n- **Lead sourcing** — collect public seller names, seller types, and active listing URLs.\n- **PropTech feeds** — populate dashboards, comparison pages, or CRMs with clean listing records.\n- **New-launch monitoring** — track project price ranges and possession dates alongside resale inventory.\n\n## FAQ\n\n**Do I need a 99acres login or cookies?**\nNo. The actor reads public search results and needs no account, cookie, or API key.\n\n**Do I need to configure a proxy?**\nNo. The actor chooses a working connection to 99acres automatically. Just fill in the input and run it.\n\n**Why are some fields missing from a record?**\n99acres does not show every field for every listing. Missing values are omitted rather than sent as `null` or a placeholder.\n\n**What does `includeDetails` add, and what does it cost?**\nIt fetches the individual property page for RERA numbers, amenity labels, carpet area, floor and furnishing details, and coordinates. Each property needs one extra residential request, so keep `maxItems` small when it is on.\n\n**Why does a price filter sometimes take longer?**\n99acres ignores price query parameters, so the actor applies your price range while it scans result pages. A narrow band may need more pages than a broad one.\n\n**What is the difference between a property row and a project row?**\n`recordType: \"property\"` is an individual resale or rental listing. `recordType: \"project\"` is a new-launch project card with a builder, price range, and unit configurations. Set `includeProjects` to `false` for listings only.\n\n**Why do some localities return no rows?**\nThe actor resolves locality names from the city's own locality list, not from the filtered result page. A name can resolve correctly and still return no rows if that BHK, property type, furnishing, or price band has no listings there. The actor says so instead of returning the whole city.\n\n**Why doesn't \"Newest first\" match the posted date?**\n99acres' date sort is a **recently updated** order. Use `updatedAt` when you need to compare the sort order; `postedAt` is the original listing date.\n\n**Does the actor support commercial property?**\nThis revision covers residential sale and rent. Commercial property types are not exposed yet.\n\n**Is this actor affiliated with 99acres?**\nNo. This is an independent, third-party actor that reads 99acres' public search pages and is not operated by or affiliated with 99acres.com.\n",
      "input": {
        "title": "99acres Scraper Input",
        "description": "Search 99acres sale and rent listings by city, BHK, property type, locality, and price.",
        "type": "object",
        "schemaVersion": 1,
        "properties": {
          "mode": {
            "title": "Listing type",
            "type": "string",
            "description": "Search properties for sale or for rent.",
            "editor": "select",
            "enumTitles": [
              "For sale",
              "For rent"
            ],
            "default": "searchForSale",
            "prefill": "searchForRent",
            "enumSuggestedValues": [
              "searchForSale",
              "searchForRent"
            ]
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "Indian city to search in.",
            "editor": "select",
            "enum": [
              "Delhi",
              "Mumbai",
              "Bangalore",
              "Hyderabad",
              "Chennai",
              "Kolkata",
              "Pune",
              "Ahmedabad",
              "Jaipur",
              "Noida",
              "Gurugram",
              "Navi Mumbai",
              "Thane",
              "Ghaziabad",
              "Faridabad",
              "Lucknow",
              "Surat",
              "Indore",
              "Bhopal",
              "Nagpur",
              "Vadodara",
              "Chandigarh",
              "Coimbatore",
              "Kochi",
              "Visakhapatnam"
            ],
            "enumTitles": [
              "Delhi",
              "Mumbai",
              "Bangalore",
              "Hyderabad",
              "Chennai",
              "Kolkata",
              "Pune",
              "Ahmedabad",
              "Jaipur",
              "Noida",
              "Gurugram",
              "Navi Mumbai",
              "Thane",
              "Ghaziabad",
              "Faridabad",
              "Lucknow",
              "Surat",
              "Indore",
              "Bhopal",
              "Nagpur",
              "Vadodara",
              "Chandigarh",
              "Coimbatore",
              "Kochi",
              "Visakhapatnam"
            ],
            "default": "Delhi",
            "prefill": "Noida"
          },
          "propertyType": {
            "title": "Property type",
            "type": "string",
            "description": "Residential property type to search for.",
            "editor": "select",
            "enumTitles": [
              "Residential apartment",
              "Independent house",
              "Villa",
              "Residential plot / land",
              "Independent / builder floor",
              "Studio apartment",
              "Farm house"
            ],
            "default": "Residential Apartment",
            "prefill": "Residential Apartment",
            "enumSuggestedValues": [
              "Residential Apartment",
              "Independent House",
              "Villa",
              "Residential Plot",
              "Independent Floor",
              "Studio Apartment",
              "Farm House"
            ]
          },
          "bedrooms": {
            "title": "Bedrooms (BHK)",
            "type": "string",
            "description": "Number of bedrooms. Choose '5+' for five or more.",
            "editor": "select",
            "enum": [
              "",
              "1",
              "2",
              "3",
              "4",
              "5+"
            ],
            "enumTitles": [
              "Any",
              "1 BHK",
              "2 BHK",
              "3 BHK",
              "4 BHK",
              "5+ BHK"
            ],
            "default": "",
            "prefill": "2"
          },
          "locality": {
            "title": "Locality",
            "type": "string",
            "description": "Optional locality or sector name within the city, e.g. 'Sector 43'. The actor looks up the 99acres locality ID.",
            "editor": "textfield"
          },
          "localities": {
            "title": "Localities (multiple)",
            "type": "array",
            "description": "Optional list of locality names; each is resolved to a 99acres locality ID.",
            "editor": "stringList",
            "items": {
              "type": "string"
            }
          },
          "priceMin": {
            "title": "Min price (INR)",
            "type": "integer",
            "description": "Minimum price in Indian Rupees. Applied while scanning pages because 99acres ignores price query parameters.",
            "minimum": 0,
            "maximum": 999999999
          },
          "priceMax": {
            "title": "Max price (INR)",
            "type": "integer",
            "description": "Maximum price in Indian Rupees. Applied while scanning pages because 99acres ignores price query parameters.",
            "minimum": 0,
            "maximum": 999999999
          },
          "furnishing": {
            "title": "Furnishing",
            "type": "string",
            "description": "Filter by furnishing status.",
            "editor": "select",
            "enum": [
              "",
              "Furnished",
              "Unfurnished",
              "Semi-furnished"
            ],
            "enumTitles": [
              "Any",
              "Furnished",
              "Unfurnished",
              "Semi-furnished"
            ],
            "default": "",
            "prefill": ""
          },
          "sortBy": {
            "title": "Sort by",
            "type": "string",
            "description": "Result order. 'Newest' is 99acres' recently-updated order (updatedAt), not the original posting date (postedAt).",
            "editor": "select",
            "enum": [
              "relevance",
              "newest"
            ],
            "enumTitles": [
              "Relevance",
              "Newest first"
            ],
            "default": "relevance",
            "prefill": "relevance"
          },
          "includeProjects": {
            "title": "Include new-launch projects",
            "type": "boolean",
            "description": "Include new-launch project cards alongside individual listings. Project rows have recordType 'project'.",
            "default": true,
            "prefill": false
          },
          "includeDetails": {
            "title": "Include detail-page enrichment",
            "type": "boolean",
            "description": "Fetch each property's detail page for RERA numbers, amenity labels, carpet area, floor, furnishing details, and coordinates. Off by default because it adds one residential request per property.",
            "default": false,
            "prefill": false
          },
          "searchUrls": {
            "title": "Search URLs",
            "type": "array",
            "description": "Optional 99acres search URLs: /property-in-<city>-ffid?... or /<n>-bhk-flats-in-<city>-ffid?... When provided, city and filter fields are ignored.",
            "editor": "stringList",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max items",
            "type": "integer",
            "description": "Maximum number of property and project records to return.",
            "minimum": 1,
            "maximum": 1000,
            "default": 50,
            "prefill": 3
          }
        },
        "required": [
          "mode",
          "city"
        ]
      },
      "output": {
        "actorOutputSchemaVersion": 1,
        "title": "99acres City & BHK Property Listing Scraper Output",
        "description": "One record per 99acres property listing or new-launch project, with price, area, BHK, locality, seller, images, amenities, floor, furnishing, coordinates, and URL.",
        "properties": {
          "properties": {
            "type": "string",
            "title": "99acres property listings",
            "description": "Dataset containing all scraped 99acres property and project records.",
            "template": "{{links.apiDefaultDatasetUrl}}/items"
          }
        }
      },
      "storages": {
        "dataset": {
          "actorSpecification": 1,
          "views": {
            "overview": {
              "title": "Property Listings",
              "transformation": {
                "fields": [
                  "title",
                  "price",
                  "priceValue",
                  "area",
                  "areaSqft",
                  "bedrooms",
                  "propertyType",
                  "city",
                  "locality",
                  "sellerType",
                  "postedAt",
                  "latitude",
                  "longitude",
                  "recordType",
                  "propertyUrl"
                ]
              },
              "display": {
                "component": "table",
                "properties": {}
              }
            }
          }
        }
      },
      "environmentVariables": {}
    },
    "buildNumber": "1.0.2",
    "imageDigest": "a2fc92ead3ebe2d34818be8f142edb01a43ae19b9ed620d2ad5118c38fd0f488",
    "actVersion": {
      "sourceType": "SOURCE_FILES",
      "buildTag": "latest",
      "versionNumber": "1.0"
    },
    "usage": {
      "ACTOR_COMPUTE_UNITS": 0.018125555555555554
    }
  }
}