MagicBricks Scraper — India Property Listings & Agents avatar

MagicBricks Scraper — India Property Listings & Agents

Pricing

from $3.50 / 1,000 results

Go to Apify Store
MagicBricks Scraper — India Property Listings & Agents

MagicBricks Scraper — India Property Listings & Agents

Scrape MagicBricks property listings across Indian cities. Extract price, carpet area, BHK configuration, locality, GPS, possession status, RERA number, project, developer and the posting agent. No API key, no login.

Pricing

from $3.50 / 1,000 results

Rating

0.0

(0)

Developer

Logiover

Logiover

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

MagicBricks Scraper — India Property Listings, Prices & Agents

Pull structured property data out of India's largest real-estate portal: price, carpet area, BHK configuration, locality, GPS, RERA registration and the agent behind every listing.

What does the MagicBricks Scraper do?

This Actor collects live listings from MagicBricks, the portal where a large share of India's property supply is advertised. It talks to the same search service the site's own result page calls, so each request returns thirty complete listings as structured JSON — no browser, no CSS selectors that break on the next redesign.

Choose a city, whether you want sale or rent, and a property category, and the Actor pages through the results and writes one flat row per property. Each row carries the asking price both as a number and in the "10.13 Cr" form Indian buyers read, carpet area with its unit, bedrooms, bathrooms and balconies, furnishing, possession status, locality, full address, latitude and longitude, nearby landmarks, the project and developer for new builds, the RERA registration number, and the agent or agency that posted it. No API key, no login.

Who is it for?

  • Proptech teams and property portals building or benchmarking an inventory dataset for Indian cities.
  • Real-estate investors and analysts tracking price per square foot across localities and over time.
  • Brokers and agencies monitoring competing listings and identifying active agents in their patch.
  • Lead-generation teams assembling agent and agency lists with track-record signals.
  • Banks, valuers and researchers who need comparable-sale evidence with GPS and RERA identifiers.

Use cases

  • Compare asking price per carpet-area square foot across Mumbai localities, month over month.
  • Build a rental yield model by running the same city twice — once for sale, once for rent.
  • Track how much new-build supply a specific developer has live, and at what price band.
  • Extract every RERA-registered listing in a city for compliance or due-diligence work.
  • Rank agencies in a city by live-listing count, rating and years in business.

Why use this MagicBricks Scraper?

  • Keyless and login-free — no account, no API key, no cookies to maintain.
  • 43 fields per property, including GPS, landmarks, RERA numbers and agent details that card-scrapers usually miss.
  • 20 major cities in a dropdown plus a free-text city code for anywhere else on the portal.
  • Sale and rent, residential and commercial — four combinations from one Actor.
  • Bulk by design — 30 listings per request, tens of thousands live per metro city.
  • Export anywhere — JSON, CSV, Excel, Google Sheets — and pay per result.

What data can you extract?

One row per property. Anything the advertiser left blank comes back as null, so a missing bathroom count never looks like zero bathrooms.

FieldTypeDescription
listingIdstringMagicBricks property id
titlestringListing headline, e.g. "4BHK Multistorey Apartment…"
urlstringDirect link to the property page
descriptionstringFull listing description
pricenumberAsking price in INR
priceTextstringPrice as displayed, e.g. "10.13 Cr"
currencystringINR when a price is quoted
listingTypestringSale or Rent
transactionTypestringNew Property or Resale
propertyTypestringApartment, Independent House, Plot, Villa…
bedroomsnumberBHK configuration
bathroomsnumberBathroom count
balconiesnumberBalcony count
furnishingstringUnfurnished, Semi-Furnished, Furnished
carpetAreanumberCarpet area
areaUnitstringUnit the area is quoted in, usually Sq ft
possessionStatusstringReady to move, or possession month for under-construction
tenantsPreferencestringPreferred tenant type on rentals
isLuxurybooleanPortal's luxury flag
isPrimeLocationbooleanPortal's prime-location flag
citystringCity
localitystringLocality
addressstringFull posted address
latitude / longitudenumberGPS coordinates
landmarksstringNearby landmarks, pipe-separated
projectNamestringProject or society name
developerNamestringDeveloper for new builds
reraNumberstringRERA registration number(s)
postedBystringAgent, Owner or Builder
agentNamestringName of the posting agent
agencyNamestringAgency name
agencyRatingnumberAgency star rating
agencyTrackRecordstringTrack-record label, e.g. "5500+ Buyers Served"
agencyOperatingSincenumberYear the agency started
agentReraNumberstringAgent's own RERA registration
isReraRegisteredAgentbooleanWhether the agent is RERA registered
postedAtstringISO 8601 posting timestamp
postedTextstringPosting date as displayed
expiresAtstringWhen the listing expires
imageUrlstringMain photo
imageCountnumberNumber of photos
scrapedAtstringISO 8601 collection timestamp

Sample output

{
"listingId": "85485987",
"title": "4BHK Multistorey Apartment for New Property in Parinee Elenora Juhu Mumbai",
"url": "https://www.magicbricks.com/propertyDetails-4-BHK-1655-Sqft-Flat-FOR-Sale-Juhu-Mumbai",
"price": 101311000,
"priceText": "10.13 Cr",
"currency": "INR",
"listingType": "Sale",
"transactionType": "New Property",
"propertyType": "Apartment",
"bedrooms": 4,
"bathrooms": 4,
"balconies": 2,
"furnishing": "Unfurnished",
"carpetArea": 1655,
"areaUnit": "Sq ft",
"possessionStatus": "Sep '26",
"city": "Mumbai",
"locality": "Juhu",
"address": "Plot No. 5, N. S. Road No. 10, Juhu, Vile Parle West, Mumbai",
"latitude": 19.1142783,
"longitude": 72.8301489,
"landmarks": "Juhu Beach Bus Stop | Navrang Theatre | Podar World College",
"projectName": "Parinee Elenora",
"developerName": "Parinee Developers",
"reraNumber": "P51800046382",
"postedBy": "Agent",
"agentName": "Desai Rakesh",
"agencyName": "Tejasvi Realty Pvt. Ltd.",
"agencyRating": 4,
"agencyTrackRecord": "5500+ Buyers Served",
"agencyOperatingSince": 1993,
"postedAt": "2026-08-07T17:37:12.000Z",
"imageCount": 32,
"scrapedAt": "2026-08-13T17:27:30.894Z"
}

How to use the MagicBricks Scraper

Option A — a city from the dropdown

The common case: pick one of twenty major cities, choose sale or rent, and run.

{
"city": "4320",
"listingType": "sale",
"propertyTypes": "residential",
"maxResults": 1000,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "IN" }
}
  1. Choose a City — Mumbai, Delhi NCR, Bangalore, Hyderabad and so on.
  2. Set Sale or rent.
  3. Choose a Property type — residential covers flats, builder floors, houses, villas, plots and studios; commercial covers offices, shops, showrooms and warehouses.
  4. Set Max results and run.

Option B — any city by code

MagicBricks covers far more cities than fit in a dropdown. Open the portal's own search for the city you want and read the city= parameter out of the URL (or the data-citycode attribute in the page source), then pass it as City code. It overrides the dropdown.

{
"cityCode": "3808",
"listingType": "rent",
"propertyTypes": "apartments",
"maxResults": 500,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "IN" }
}

Input parameters

ParameterTypeDefaultDescription
citystring4320 (Mumbai)City to crawl, chosen from 20 major markets.
cityCodestringRaw MagicBricks city code; overrides the dropdown.
listingTypestringsalesale or rent.
propertyTypesstringresidentialresidential, apartments, houses, plots or commercial.
maxResultsinteger500How many properties to collect.
proxyConfigurationobjectResidential / INMagicBricks answers reliably from Indian IPs.

Tips for best results

  • One city per run. MagicBricks indexes each city separately; running Mumbai and Bangalore as two runs is both faster and cleaner than trying to combine them.
  • Carpet area, not built-up area. The portal's search feed publishes carpet area — the number that matters for a price-per-square-foot comparison. Compare like with like across your dataset.
  • Sale and rent need separate runs if you want a yield model; the prices are not comparable in one column.
  • Use reraNumber as a quality filter. RERA-registered listings are regulated inventory and tend to carry more reliable project data.
  • postedBy separates owners from agents. Owner listings are the ones brokers usually want; agent listings are the ones lead-gen teams want.
  • Keep the India proxy country. The search service is tuned for Indian traffic and non-local exits are throttled harder.
  • Add a short schedule rather than one enormous run. A daily run captures new supply and price revisions with far less duplication.
  • Deduplicate on listingId across runs; the same property can reappear with a refreshed posting date.
  • Zero rows? Check the city-code and listing-type combination first — a small city may have no commercial rentals at all.

Integrations

  • Google Sheets — send each run's dataset to a sheet your acquisitions team already uses.
  • Slack — notify a channel when new listings appear in a target locality.
  • Zapier / Make — push rows into a CRM as leads.
  • Webhooks — receive the dataset id as soon as a run finishes.
  • Schedules — daily or weekly runs build a price history no portal exposes directly.

API usage

cURL

curl -X POST "https://api.apify.com/v2/acts/logiover~magicbricks-india-property-scraper/run-sync-get-dataset-items?token=YOUR_TOKEN" \
-H "Content-Type: application/json" \
-d '{"city":"4320","listingType":"sale","maxResults":200}'

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });
const run = await client.actor('logiover/magicbricks-india-property-scraper').call({
city: '3327',
listingType: 'rent',
propertyTypes: 'apartments',
maxResults: 500,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'properties');

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_TOKEN")
run = client.actor("logiover/magicbricks-india-property-scraper").call(run_input={
"city": "4320",
"listingType": "sale",
"propertyTypes": "residential",
"maxResults": 500,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["locality"], item["priceText"], item["carpetArea"])

Use with AI agents (MCP)

Expose this Actor through Apify's MCP server (https://mcp.apify.com) and an AI assistant can query the Indian property market live rather than from stale training data.

"Use the MagicBricks scraper to collect 300 apartments for sale in Bangalore, then show me median price per square foot by locality and flag anything RERA-registered under ₹1 Cr."

FAQ

Do I need a MagicBricks account or API key?

No. The Actor reads publicly visible listings through the portal's own public search service. Nothing to register, nothing to store.

Which cities are supported?

Twenty major markets are in the dropdown: Mumbai, Delhi NCR, Bangalore, Hyderabad, Pune, Chennai, Kolkata, Ahmedabad, Noida, Gurgaon, Thane, Navi Mumbai, Jaipur, Lucknow, Chandigarh, Indore, Coimbatore, Kochi, Bhopal and Nagpur. Any other city works through the City code field.

How many listings can one run return?

A metro city carries tens of thousands of live listings. Set maxResults to what you need; the Actor pages until it reaches that number or the city runs out.

Why did my run return zero rows?

Usually an impossible filter combination — commercial rentals in a small city, for instance. Switch back to residential and sale to confirm the city code works, then narrow again.

Why are some fields null?

Because the advertiser left them blank. Balconies, agent RERA numbers and agency ratings are optional on MagicBricks. A null means "not published", never "zero".

Does it include the agent's phone number?

No. MagicBricks keeps contact numbers behind a login and an OTP, so they are not part of the public listing data and this Actor does not attempt to reach them. You do get the agent's name, agency, rating, track record and RERA registration.

What is the RERA number for?

RERA is India's real-estate regulator. A registration number means the project or agent is registered with the state authority, which is a strong quality and compliance signal when filtering listings.

Can I export to CSV or Excel?

Yes — JSON, CSV, Excel, XML and RSS from the run's Storage tab or through the API.

How fresh is the data?

Every run fetches live search pages, sorted by the portal's recency-weighted default. postedAt on each row tells you exactly how old a listing is.

The Actor collects only publicly visible listing information. See the legal note below before large-scale or commercial use.

How often is the Actor updated?

It is monitored and maintained. Reading a structured JSON service rather than page markup means it survives the portal's frequent visual redesigns.

This Actor collects publicly available information only — property listings MagicBricks publishes openly to every visitor, without a login or paywall. Collecting public data is broadly lawful in most jurisdictions, but how you use it is your responsibility.

Read MagicBricks' Terms of Service before large-scale or commercial collection. Agent names and agency details may constitute personal data under India's DPDP Act, the GDPR or similar laws — make sure you have a lawful basis before storing or processing them, especially for marketing. This is not legal advice.