Magicbricks APImagicbricks.com ↗
Access Magicbricks property listings, new projects, commercial spaces, and locality price trends across major Indian cities via a structured API.
What is the Magicbricks API?
The Magicbricks API provides 4 endpoints covering residential listings, new development projects, commercial properties, and locality-level price trends across major Indian cities. The search_properties endpoint returns up to 30 paginated listings per page with price, GPS coordinates, images, and property features. The get_locality_rates endpoint delivers 12 months of monthly average price-per-sqft data for a target locality and its neighbors.
curl -X GET 'https://api.parse.bot/scraper/b445a4e1-5a2a-43db-bfc0-334e2b50b854/search_properties?bhk=2&city=Noida&page=1&category=S&locality=Sector+128&budget_max=50000000&budget_min=1000000&property_type=Flat' \ -H 'X-API-Key: $PARSE_API_KEY'
Typed, relational, agent-ready
A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.
- Fully typed · autocompletes
- Objects link to objects
- Typed errors & pagination
Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:
uv add parse-sdk uv run parse init uv run parse add --marketplace magicbricks-com-api
uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.
from parse_apis.magicbricks_real_estate_api import Magicbricks, City_, Category, PropertyType
client = Magicbricks()
noida = client.city(City_.NOIDA)
for prop in noida.search_properties(category=Category.SALE, property_type=PropertyType.FLAT, bhk="2", limit=5):
print(prop.property_title, prop.price_display, prop.locality, prop.bedrooms)
for project in noida.search_new_projects(limit=3):
print(project.name, project.developer_name, project.min_price_display, project.is_rera)
pune = client.city(City_.PUNE)
for commercial in pune.search_commercial_properties(category=Category.RENT, limit=3):
print(commercial.property_title, commercial.price_display, commercial.property_type)
for rate in noida.rates.get(locality_id="84421"):
print(rate.locality_name, rate.average_price_per_sqft)
Search for residential properties for sale or rent in Indian cities. Returns detailed listings with price, location, coordinates, and property features. Results are paginated with 30 listings per page. Filtering by BHK, property type, budget range, and locality is supported. The response includes both a resultList array and metadata in editAdditionalDataBean with pagination info.
| Param | Type | Description |
|---|---|---|
| bhk | string | BHK configuration as comma-separated values. Accepted single values: '1', '2', '3', '4', '5'. Combinations are supported like '2,3' for 2 and 3 BHK together. |
| cityrequired | string | City name. Accepted values: 'Noida', 'Pune', 'Bangalore', 'Mumbai', 'Gurgaon', 'Hyderabad', 'Chennai', 'Kolkata', 'Ahmedabad', 'Thane'. |
| page | integer | Page number for pagination. |
| category | string | Category: 'S' for Sale, 'R' for Rent. |
| locality | string | Locality name to filter results within the city. |
| budget_max | integer | Maximum budget in INR. |
| budget_min | integer | Minimum budget in INR. |
| property_type | string | Property type. Accepted values: 'Flat', 'House/Villa', 'Plot', 'Multistorey Apartment', 'Builder Floor', 'Penthouse', 'Studio Apartment', 'Residential House', 'Villa', 'Residential Plot'. |
{
"type": "object",
"fields": {
"resultList": "array of property listing objects with price, location, coordinates, images, and features",
"editAdditionalDataBean": "object containing search metadata, pagination info, and filter options"
},
"sample": {
"data": {
"resultList": [
{
"id": "84916571",
"lt": 86524,
"bathD": "5",
"price": 39912000,
"caSqFt": 2950,
"ctName": "Noida",
"priceD": "3.99 Cr",
"devName": "Jaypee Greens",
"prjname": "Jaypee Greens Knights Court",
"bedroomD": "4",
"lmtDName": "Sector 128, Noida Express Way",
"propTypeD": "Apartment",
"furnishedD": "Unfurnished",
"ltcoordGeo": "28.5259509261874,77.3615789006735",
"possStatusD": "Ready To Move",
"propertyTitle": "4BHK Multistorey Apartment for New Property in Jaypee Greens Knights Court at Sector 128, Noida Express Way",
"transactionTypeD": "New Property"
}
],
"editAdditionalDataBean": {
"pageCount": "50",
"resultCount": 1500
}
},
"status": "success"
}
}About the Magicbricks API
Residential and Commercial Property Search
The search_properties endpoint accepts a required city parameter — confirmed working for Noida, Pune, Bangalore, Mumbai, Gurgaon, Hyderabad, and Chennai — plus optional filters for bhk, category (Sale or Rent), property_type, locality, and budget_min/budget_max in INR. Each listing in the resultList array includes price, location details, GPS coordinates, images, and property features. The editAdditionalDataBean object in the response carries pagination info and available filter options. The search_commercial_properties endpoint follows the same city-and-category structure but returns offices, shops, showrooms, and warehouses instead of residential units.
New Projects
search_new_projects returns 20 projects per page for a given city. Each entry in projectsCards includes the project name, developer/builder name, price range, amenities list, RERA status, and expert review video data. The pageCount and cardsCount fields at the top level give you the total pages available and the count of results on the current page, so pagination can be implemented without guessing.
Locality Price Trends
get_locality_rates requires a city and a locality_id — the numeric string found in the lt or loc field on individual listings from search_properties. The response includes monthwiseData, which maps locality IDs to arrays of 12 monthly average price-per-sqft values, and localitiesDescMap, which maps those same IDs to human-readable locality names. The monthYrAvgPriceStr field provides comma-separated month-year labels aligned to the data arrays. The currentPricesNearbyMap array lists nearby localities with their current average price per sqft, useful for comparable market analysis.
The Magicbricks API is a managed, monitored endpoint for magicbricks.com — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when magicbricks.com changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.
This isn't an official magicbricks.com API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.
Will this API break when the source site changes?+
Is this an official API from the source site?+
Can I fix or extend this API myself if I need a new endpoint or field?+
What happens if I call an endpoint that has an issue?+
- Build a rental budget estimator using
search_propertiesfiltered bycategory: R,city, andbudget_max. - Aggregate new project launches by city using
search_new_projectsto track builder activity and RERA compliance status. - Plot 12-month price-per-sqft trends for a target locality using
monthwiseDatafromget_locality_rates. - Compare commercial office and retail availability across cities using
search_commercial_propertieswithcategory: Sorcategory: R. - Generate neighborhood price heat maps by cross-referencing
currentPricesNearbyMapentries across multiple locality IDs. - Filter BHK-specific listings in a locality to track how per-unit pricing changes by configuration using the
bhkparameter. - Monitor developer pipeline in a specific city by paginating through
search_new_projectsand recording new entries over time.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 100 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Magicbricks have an official public developer API?+
How do I retrieve locality-level price trend data and what IDs do I need?+
get_locality_rates with a city and a locality_id. The locality ID is the numeric string returned in the lt or loc field on individual listing objects from search_properties. Once you have an ID, the response gives you monthwiseData (12 monthly price-per-sqft averages), localitiesDescMap (ID-to-name mapping), and currentPricesNearbyMap (nearby locality current prices).Does the API cover property detail pages or individual listing data beyond what appears in search results?+
resultList — price, location, coordinates, images, and features — as aggregated in search result pages. Individual property detail pages with full amenity breakdowns, floor plans, or contact information are not covered. You can fork this API on Parse and revise it to add a property detail endpoint.Is the API limited to specific cities, or does it cover all Indian cities on Magicbricks?+
What is the pagination behavior across endpoints?+
search_properties and search_commercial_properties return 30 listings per page; use the page integer parameter to advance. search_new_projects returns 20 projects per page with an explicit pageCount field in the response to tell you the total number of pages. get_locality_rates does not paginate — it always returns the full 12-month series for the requested locality.