Dataspryva

Indian Property Listings Finder by City & BHK

Search sale and rental property listings across 31 Indian cities by BHK, property type, locality and price band, with area, poster identity and listing links for buyers, agents and researchers.

Input schema

Input fields, types, required flags, descriptions, defaults, and prefills come from the published definition. Prefill examples are distinct from defaults.

FieldTypeRequiredDescription
modestringrequiredWhat to collect. Search by city and filters, paste MagicBricks search-result URLs, or paste property-detail URLs.
startUrlsarrayoptionalMagicBricks search-result or property-detail links (mode=bySearchUrl or byPropertyUrl).
citystringoptionalIndian city to search (mode=searchForSale, searchForRent, searchProperties).
Show all input fields
FieldTypeRequiredDescription
modestringrequiredWhat to collect. Search by city and filters, paste MagicBricks search-result URLs, or paste property-detail URLs.
startUrlsarrayoptionalMagicBricks search-result or property-detail links (mode=bySearchUrl or byPropertyUrl).
citystringoptionalIndian city to search (mode=searchForSale, searchForRent, searchProperties).
localitiesarrayoptionalOptional locality or neighbourhood names inside the city (mode=searchForSale, searchForRent, searchProperties). One search is run per locality.
propertyTypestringoptionalType of property to search (mode=searchForSale, searchForRent, searchProperties).
bedroomsstringoptionalBedroom count. 5+ is sent as 5, the site's maximum (mode=searchForSale, searchForRent, searchProperties).
priceMinintegeroptionalLowest asking price in Indian Rupees (mode=searchForSale, searchForRent, searchProperties).
priceMaxintegeroptionalHighest asking price in Indian Rupees (mode=searchForSale, searchForRent, searchProperties).
areaMinintegeroptionalSmallest covered or carpet area in square feet (mode=searchForSale, searchForRent, searchProperties).
areaMaxintegeroptionalLargest covered or carpet area in square feet (mode=searchForSale, searchForRent, searchProperties).
furnishingstringoptionalFurnishing state filter (mode=searchForSale, searchForRent, searchProperties).
possessionStatusstringoptionalReady-to-move or under-construction filter (mode=searchForSale, searchProperties).
postedSincestringoptionalOnly listings posted in the last 24 hours (mode=searchForSale, searchForRent, searchProperties). MagicBricks does not expose wider server-side posting windows.
tenantTypestringoptionalWho the landlord accepts (mode=searchForRent and rent searches in searchProperties). MagicBricks exposes Bachelors and Family server-side.
sortBystringoptionalOrder of search results (mode=searchForSale, searchForRent, searchProperties).
maxItemsintegeroptionalHard cap on the number of property records returned.
includeDetailsbooleanoptionalAlso open each listing's detail page for project, developer, RERA, full address, GPS, amenities, deposit and maintenance data (search modes).

Download the published input schema

View complete JSON
{
  "description": "Choose what to collect from MagicBricks: city searches for sale or rent, pasted search-result URLs, or pasted property-detail URLs. Add optional BHK, price, area, furnishing, possession and locality filters.",
  "properties": {
    "areaMax": {
      "description": "Largest covered or carpet area in square feet (mode=searchForSale, searchForRent, searchProperties).",
      "maximum": 1000000,
      "minimum": 0,
      "title": "Maximum area (sq.ft)",
      "type": "integer"
    },
    "areaMin": {
      "description": "Smallest covered or carpet area in square feet (mode=searchForSale, searchForRent, searchProperties).",
      "maximum": 1000000,
      "minimum": 0,
      "title": "Minimum area (sq.ft)",
      "type": "integer"
    },
    "bedrooms": {
      "default": "Any",
      "description": "Bedroom count. 5+ is sent as 5, the site's maximum (mode=searchForSale, searchForRent, searchProperties).",
      "editor": "select",
      "enum": [
        "Any",
        "1",
        "2",
        "3",
        "4",
        "5+"
      ],
      "enumTitles": [
        "Any",
        "1 BHK",
        "2 BHK",
        "3 BHK",
        "4 BHK",
        "5+ BHK"
      ],
      "prefill": "Any",
      "title": "Bedrooms (BHK)",
      "type": "string"
    },
    "city": {
      "default": "Mumbai",
      "description": "Indian city to search (mode=searchForSale, searchForRent, searchProperties).",
      "editor": "select",
      "enum": [
        "Mangalore",
        "Belgaum",
        "Mysore",
        "Hubli",
        "Ahmedabad",
        "Bangalore",
        "Beyond Thane",
        "Chennai",
        "Gurgaon",
        "Hyderabad",
        "Indore",
        "Jaipur",
        "Kolkata",
        "Lucknow",
        "Mumbai",
        "Navi Mumbai",
        "New Delhi",
        "Noida",
        "Pune",
        "Thane",
        "Agra",
        "Ahmadnagar",
        "Allahabad",
        "Aluva",
        "Amritsar",
        "Aurangabad",
        "Badlapur",
        "Bareilly",
        "Bhiwadi",
        "Bhiwandi",
        "Bhopal",
        "Bhubaneswar",
        "Bokaro Steel City",
        "Chandigarh",
        "Chengalpattu",
        "Coimbatore",
        "Dehradun",
        "Durgapur",
        "Ernakulam",
        "Erode",
        "Faridabad",
        "Ghaziabad",
        "Goa",
        "Gorakhpur",
        "Greater Noida",
        "Guntur",
        "Guwahati",
        "Gwalior",
        "Haridwar",
        "Hosur",
        "Jabalpur",
        "Jalandhar",
        "Jammu",
        "Jamshedpur",
        "Jodhpur",
        "Kalyan",
        "Kannur",
        "Kanpur",
        "Khopoli",
        "Kochi",
        "Kodaikanal",
        "Kottayam",
        "Kozhikode",
        "Lonavala",
        "Ludhiana",
        "Madurai",
        "Mohali",
        "Nagpur",
        "Nainital",
        "Nanded",
        "Nashik",
        "Navsari",
        "Nellore",
        "Newtown",
        "Ooty",
        "Palakkad",
        "Palghar",
        "Panchkula",
        "Patiala",
        "Patna",
        "Pondicherry",
        "Raipur",
        "Rajahmundry",
        "Ranchi",
        "Salem",
        "Satara",
        "Shimla",
        "Siliguri",
        "Solapur",
        "Sonipat",
        "Surat",
        "Thanjavur",
        "Thrissur",
        "Tirunelveli",
        "Tirupati",
        "Tirupur",
        "Trichy",
        "Trivandrum",
        "Tumkur",
        "Udaipur",
        "Udupi",
        "Vadodara",
        "Vapi",
        "Varanasi",
        "Vijayawada",
        "Visakhapatnam",
        "Vrindavan",
        "Zirakpur"
      ],
      "enumTitles": [
        "Mangalore",
        "Belgaum",
        "Mysore",
        "Hubli",
        "Ahmedabad",
        "Bangalore",
        "Beyond Thane",
        "Chennai",
        "Gurgaon",
        "Hyderabad",
        "Indore",
        "Jaipur",
        "Kolkata",
        "Lucknow",
        "Mumbai",
        "Navi Mumbai",
        "New Delhi",
        "Noida",
        "Pune",
        "Thane",
        "Agra",
        "Ahmadnagar",
        "Allahabad",
        "Aluva",
        "Amritsar",
        "Aurangabad",
        "Badlapur",
        "Bareilly",
        "Bhiwadi",
        "Bhiwandi",
        "Bhopal",
        "Bhubaneswar",
        "Bokaro Steel City",
        "Chandigarh",
        "Chengalpattu",
        "Coimbatore",
        "Dehradun",
        "Durgapur",
        "Ernakulam",
        "Erode",
        "Faridabad",
        "Ghaziabad",
        "Goa",
        "Gorakhpur",
        "Greater Noida",
        "Guntur",
        "Guwahati",
        "Gwalior",
        "Haridwar",
        "Hosur",
        "Jabalpur",
        "Jalandhar",
        "Jammu",
        "Jamshedpur",
        "Jodhpur",
        "Kalyan",
        "Kannur",
        "Kanpur",
        "Khopoli",
        "Kochi",
        "Kodaikanal",
        "Kottayam",
        "Kozhikode",
        "Lonavala",
        "Ludhiana",
        "Madurai",
        "Mohali",
        "Nagpur",
        "Nainital",
        "Nanded",
        "Nashik",
        "Navsari",
        "Nellore",
        "Newtown",
        "Ooty",
        "Palakkad",
        "Palghar",
        "Panchkula",
        "Patiala",
        "Patna",
        "Pondicherry",
        "Raipur",
        "Rajahmundry",
        "Ranchi",
        "Salem",
        "Satara",
        "Shimla",
        "Siliguri",
        "Solapur",
        "Sonipat",
        "Surat",
        "Thanjavur",
        "Thrissur",
        "Tirunelveli",
        "Tirupati",
        "Tirupur",
        "Trichy",
        "Trivandrum",
        "Tumkur",
        "Udaipur",
        "Udupi",
        "Vadodara",
        "Vapi",
        "Varanasi",
        "Vijayawada",
        "Visakhapatnam",
        "Vrindavan",
        "Zirakpur"
      ],
      "prefill": "Mumbai",
      "title": "City",
      "type": "string"
    },
    "furnishing": {
      "default": "Any",
      "description": "Furnishing state filter (mode=searchForSale, searchForRent, searchProperties).",
      "editor": "select",
      "enum": [
        "Any",
        "Furnished",
        "Semi-Furnished",
        "Unfurnished"
      ],
      "enumTitles": [
        "Any",
        "Furnished",
        "Semi-furnished",
        "Unfurnished"
      ],
      "prefill": "Any",
      "title": "Furnishing",
      "type": "string"
    },
    "includeDetails": {
      "default": false,
      "description": "Also open each listing's detail page for project, developer, RERA, full address, GPS, amenities, deposit and maintenance data (search modes).",
      "editor": "checkbox",
      "prefill": false,
      "title": "Fetch detail pages",
      "type": "boolean"
    },
    "localities": {
      "description": "Optional locality or neighbourhood names inside the city (mode=searchForSale, searchForRent, searchProperties). One search is run per locality.",
      "editor": "stringList",
      "items": {
        "type": "string"
      },
      "title": "Localities",
      "type": "array"
    },
    "maxItems": {
      "default": 50,
      "description": "Hard cap on the number of property records returned.",
      "maximum": 10000,
      "minimum": 1,
      "prefill": 3,
      "title": "Max listings",
      "type": "integer"
    },
    "mode": {
      "default": "searchForSale",
      "description": "What to collect. Search by city and filters, paste MagicBricks search-result URLs, or paste property-detail URLs.",
      "editor": "select",
      "enum": [
        "searchForSale",
        "searchForRent",
        "searchProperties",
        "bySearchUrl",
        "byPropertyUrl"
      ],
      "enumTitles": [
        "Search properties for sale",
        "Search properties for rent",
        "Search both sale and rent",
        "Scrape MagicBricks search-result URLs",
        "Scrape MagicBricks property URLs"
      ],
      "prefill": "searchForSale",
      "title": "Mode",
      "type": "string"
    },
    "possessionStatus": {
      "default": "Any",
      "description": "Ready-to-move or under-construction filter (mode=searchForSale, searchProperties).",
      "editor": "select",
      "enum": [
        "Any",
        "Ready to Move",
        "Under Construction"
      ],
      "enumTitles": [
        "Any",
        "Ready to move",
        "Under construction"
      ],
      "prefill": "Any",
      "title": "Possession",
      "type": "string"
    },
    "postedSince": {
      "default": "Any",
      "description": "Only listings posted in the last 24 hours (mode=searchForSale, searchForRent, searchProperties). MagicBricks does not expose wider server-side posting windows.",
      "editor": "select",
      "enum": [
        "Any",
        "1"
      ],
      "enumTitles": [
        "Any time",
        "Last 24 hours"
      ],
      "prefill": "Any",
      "title": "Posted within",
      "type": "string"
    },
    "priceMax": {
      "description": "Highest asking price in Indian Rupees (mode=searchForSale, searchForRent, searchProperties).",
      "maximum": 1000000000000,
      "minimum": 0,
      "title": "Maximum price (INR)",
      "type": "integer"
    },
    "priceMin": {
      "description": "Lowest asking price in Indian Rupees (mode=searchForSale, searchForRent, searchProperties).",
      "maximum": 1000000000000,
      "minimum": 0,
      "title": "Minimum price (INR)",
      "type": "integer"
    },
    "propertyType": {
      "default": "Apartment",
      "description": "Type of property to search (mode=searchForSale, searchForRent, searchProperties).",
      "editor": "select",
      "enum": [
        "Apartment",
        "Builder Floor",
        "Independent House",
        "Villa",
        "Plot",
        "Penthouse",
        "Studio Apartment",
        "Farm House",
        "Serviced Apartment",
        "Commercial Office",
        "Office in IT Park/SEZ",
        "Commercial Shop",
        "Commercial Showroom"
      ],
      "enumTitles": [
        "Apartment / flat",
        "Builder floor",
        "Independent house",
        "Villa",
        "Plot / land",
        "Penthouse",
        "Studio apartment",
        "Farm house",
        "Serviced apartment",
        "Commercial office",
        "Office in IT park / SEZ",
        "Commercial shop",
        "Commercial showroom"
      ],
      "prefill": "Apartment",
      "title": "Property type",
      "type": "string"
    },
    "sortBy": {
      "default": "Relevance",
      "description": "Order of search results (mode=searchForSale, searchForRent, searchProperties).",
      "editor": "select",
      "enum": [
        "Relevance",
        "Price - Low to High",
        "Price - High to Low",
        "Most Recent",
        "Rate/sqft - Low to High",
        "Rate/sqft - High to Low"
      ],
      "enumTitles": [
        "Relevance",
        "Price: low to high",
        "Price: high to low",
        "Most recent",
        "Rate per sq.ft: low to high",
        "Rate per sq.ft: high to low"
      ],
      "prefill": "Relevance",
      "title": "Sort by",
      "type": "string"
    },
    "startUrls": {
      "default": [],
      "description": "MagicBricks search-result or property-detail links (mode=bySearchUrl or byPropertyUrl).",
      "editor": "requestListSources",
      "items": {
        "properties": {
          "url": {
            "description": "MagicBricks search-result or property-detail URL.",
            "title": "URL",
            "type": "string"
          }
        },
        "type": "object"
      },
      "prefill": [],
      "title": "Search or property URLs",
      "type": "array"
    },
    "tenantType": {
      "default": "Any",
      "description": "Who the landlord accepts (mode=searchForRent and rent searches in searchProperties). MagicBricks exposes Bachelors and Family server-side.",
      "editor": "select",
      "enum": [
        "Any",
        "Bachelors",
        "Family"
      ],
      "enumTitles": [
        "Any",
        "Bachelors",
        "Family"
      ],
      "prefill": "Any",
      "title": "Tenant preference",
      "type": "string"
    }
  },
  "required": [
    "mode"
  ],
  "schemaVersion": 1,
  "title": "MagicBricks Property Listings Input",
  "type": "object"
}

Output schema

Published result links and storage locations. This schema is not an exhaustive contract for every field in a dataset record.

FieldTypeRequiredDescription
listingsstringoptionalDataset containing all scraped MagicBricks property listings.

Download the published output schema

View complete JSON
{
  "actorOutputSchemaVersion": 1,
  "description": "MagicBricks property listings with price, area, BHK, project, RERA, seller, amenities, images and listing URLs.",
  "properties": {
    "listings": {
      "description": "Dataset containing all scraped MagicBricks property listings.",
      "template": "{{links.apiDefaultDatasetUrl}}/items",
      "title": "MagicBricks property listings",
      "type": "string"
    }
  },
  "title": "MagicBricks Property Listings Output"
}

Dataset schema

Published dataset views and any declared field definitions. A view can select only a subset of the returned record fields.

Download the published dataset schema

View complete JSON
{
  "actorSpecification": 1,
  "views": {
    "overview": {
      "display": {
        "component": "table",
        "properties": {}
      },
      "title": "Property Listings",
      "transformation": {
        "fields": [
          "propertyId",
          "title",
          "price",
          "priceInr",
          "area",
          "bedrooms",
          "propertyType",
          "transactionType",
          "city",
          "locality",
          "projectName",
          "reraIds",
          "propertyUrl"
        ]
      }
    }
  }
}

Key-value schema

Published key-value store definitions, when provided by this build.

This definition is not present in the default published build. See the published README for available documentation.

Published README

Read the full published documentation

MagicBricks Listings Finder: Sale, Rent & Detail Pages

Collect MagicBricks property listings across 108 Indian cities. Search for sale, rent, or both with BHK, budget, area, furnishing, possession and locality filters; paste search-result links to keep the site's own filters; or paste property-detail links for a single enriched record. Every listing keeps a clean, human-readable set of price, size, project, seller, RERA, GPS, amenity and image fields.

What this actor does

  • Five modes: searchForSale, searchForRent, searchProperties, bySearchUrl, byPropertyUrl
  • 108 cities with the site's own canonical names, plus locality filters and 13 residential and commercial property types
  • Server-side filters: BHK, budget, area, furnishing, possession, tenant preference, last-24-hours posting age and six sort orders
  • Optional detail pages add project, developer, RERA registrations, full address, GPS, complete amenities, estimated deposit, maintenance, booking amount and brokerage
  • Clean output: numeric INR prices, carpet and covered areas, ISO dates, absolute links, and empty fields omitted instead of returned as null

Output per property

  • propertyId — MagicBricks listing id
  • title — listing headline
  • propertyType — Apartment, Builder Floor, Independent House, Villa, Plot, Penthouse, Studio Apartment, Farm House, Serviced Apartment, Commercial Office, Office in IT Park/SEZ, Commercial Shop or Commercial Showroom
  • transactionType — Sale or Rent
  • saleType — New Property or Resale (sale listings)
  • price — price as shown on MagicBricks (e.g. 1.10 Cr)
  • priceInr — numeric asking price in Indian Rupees
  • priceCurrency — INR
  • pricePerSqft — rate per square foot (the site's own value, or derived from price and carpet area when it is missing)
  • priceBreakdown — all-inclusive price, stamp duty and brokerage (detail pages)
  • bookingAmount, maintenanceCharges, maintenancePeriod, securityDeposit (MagicBricks estimate), brokerage
  • area — covered or carpet area as a display string
  • carpetArea, carpetAreaUnit, coveredArea, coveredAreaUnit
  • bedrooms, bathrooms, balconies
  • floorNumber, totalFloors, floorDisplay
  • furnishing, facing, ownershipType, ageOfProperty, parking
  • possessionStatus, availableFrom
  • postedAt, postedLabel, expiresAt
  • city, locality, address, landmark
  • latitude, longitude — real coordinates, omitted when the source only carries a zero placeholder
  • projectName, projectId, projectUrl, developerName
  • reraIds[], reraUrl, agentReraId, approvedBy
  • postedBy — publicly displayed owner, agent or builder name
  • listerName, listerType, companyName
  • agentId, agentUrl, agentRating, agentExperienceSince, agentBuyersServed
  • description, autoDescription
  • amenities[], luxuryAmenities[], amenitiesFacing
  • images[], imageUrl, imageCount
  • searchUrl — the search that produced the record
  • detailFetched — present when detail-page data was merged
  • source — magicbricks
  • recordType — property
  • scrapedAt — ISO 8601 timestamp

Input

Field Type Default Description
mode string searchForSale searchForSale, searchForRent, searchProperties, bySearchUrl or byPropertyUrl
startUrls array – MagicBricks search or property links (URL modes)
city string Mumbai One of 108 Indian cities (search modes)
localities array – Locality names inside the city; one search per locality (search modes)
propertyType string Apartment 13 residential and commercial types (search modes)
bedrooms string Any Any, 1, 2, 3, 4 or 5+ (search modes)
priceMin integer – Minimum price in INR (search modes)
priceMax integer – Maximum price in INR (search modes)
areaMin integer – Minimum area in sq.ft (search modes)
areaMax integer – Maximum area in sq.ft (search modes)
furnishing string Any Any, Furnished, Semi-Furnished or Unfurnished (search modes)
possessionStatus string Any Any, Ready to Move or Under Construction (sale searches)
postedSince string Any Any or 1 (last 24 hours; search modes). MagicBricks exposes only this server-side window.
tenantType string Any Any, Bachelors or Family (rent searches). MagicBricks exposes these two server-side.
sortBy string Relevance Relevance, price, recency or rate per sq.ft (search modes)
maxItems integer 50 Hard cap on returned listings (1–10,000)
includeDetails boolean false Open each listing's detail page for project, RERA, address, GPS, amenities and cost data

Example: 2 BHK flats for sale in Mumbai

{
  "mode": "searchForSale",
  "city": "Mumbai",
  "propertyType": "Apartment",
  "bedrooms": "2",
  "priceMin": 10000000,
  "priceMax": 30000000,
  "maxItems": 100
}

Example: rentals in two Bangalore localities

{
  "mode": "searchForRent",
  "city": "Bangalore",
  "localities": ["Whitefield", "Hebbal"],
  "bedrooms": "2",
  "furnishing": "Furnished",
  "tenantType": "Bachelors",
  "maxItems": 60
}
{
  "mode": "bySearchUrl",
  "startUrls": [
    {"url": "https://www.magicbricks.com/property-for-sale/residential-real-estate?cityName=Pune&proptype=Villa"}
  ],
  "maxItems": 50
}
{
  "mode": "byPropertyUrl",
  "startUrls": [
    {"url": "https://www.magicbricks.com/propertyDetails/3-BHK-1600-Sq-ft-Multistorey-Apartment-FOR-Sale-Juhu-in-Mumbai&id=4d423836393237353637"}
  ],
  "maxItems": 10
}

Use cases

  • Home buyers — shortlist flats by BHK, budget, locality and ready-to-move status
  • Tenants — compare furnished rentals by locality, deposit and maintenance
  • Real-estate agencies — monitor new listings and seller types in target micro-markets
  • Market research — compare asking prices and rates per sq.ft across cities and property types
  • PropTech products — feed structured listing, project and RERA data into search and valuation tools

FAQ

Is this affiliated with MagicBricks? No. This is an independent, third-party actor that reads publicly visible MagicBricks pages. It is not operated by or endorsed by MagicBricks.

Do I need a MagicBricks account or cookies? No. Every supported mode works without a login, cookies or API keys.

How many listings can one run return? maxItems is a hard cap up to 10,000. MagicBricks serves 30 listings per page and exposes a finite number of results for each filter set. Once that ceiling is reached, narrow the city, locality, property type or budget to reach more listings. The run summary says when the ceiling was hit.

Why do some records have more fields than others? Fields are filled only when the source publishes them. A listing without a project, RERA number or agent rating simply omits those fields. Empty strings, nulls and empty lists are never emitted.

What does includeDetails add? It opens each listing's detail page for project name, developer, RERA registrations, full address, GPS, complete amenities, description, image gallery, estimated deposit, maintenance, booking amount, brokerage and price breakup. It is slower and uses more resources than a plain search, so it is off by default.

Which URLs can I paste? A search-results URL that contains property-for-sale or property-for-rent and cityName=, or a /propertyDetails/... link. City landing pages such as property-for-sale-rent-in-Mumbai do not contain listings; the actor reports that instead of returning zero silently.

Can I get phone numbers or email addresses? No. MagicBricks reveals contact details only after an OTP or login flow, so this actor does not return phones, emails or masked numbers.

Why does the listing count change between pages? MagicBricks updates results continuously. The actor removes duplicate listings by id and stops when a page repeats, so a run can finish slightly below the site's displayed result count.

Do I need to configure a proxy? No. The actor chooses a working connection to MagicBricks automatically. Fill in the input and run it.

Can I search several localities at once? Yes. Add each locality to localities; the actor runs a separate search per locality and removes duplicates. Multiple localities are not combined into one AND filter.

Python quickstart

Use a schema-derived input and the Python standard library to start a run. An Apify account and token are required for execution.

Open the step-by-step Python guide →

Source build 9lCmU3P2oSAmJd2ok. Documentation is regenerated from the default published build; private drafts are not included.