MahaRERA Scraper - Maharashtra RERA Projects, Complaints, Sales
Pricing
from $0.62 / 1,000 projects
MahaRERA Scraper - Maharashtra RERA Projects, Complaints, Sales
Scrape the official MahaRERA registry: every registered project in Maharashtra with developer, address, GPS, completion dates and delays, complaints, court cases, construction progress, loans and sold apartments with prices. By RERA number, MagicBricks / 99acres URL or registry scan.
Pricing
from $0.62 / 1,000 projects
Rating
0.0
(0)
Developer
Nice Dev
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
🏠 What is MahaRERA Scraper?
MahaRERA Scraper extracts registered real estate projects from the official MahaRERA registry (Maharashtra Real Estate Regulatory Authority): the project, its developer, address and GPS, completion dates and delays, complaints, court cases, construction progress, loans on the project and the apartments sold with their agreement price — for any RERA number, any MagicBricks or 99acres listing, or the whole registry.
Paste RERA numbers (P51800028936), MagicBricks / 99acres URLs, or leave both empty to go through the registry with filters (district, developer, status, registration date), click Start, and download the projects in JSON, CSV or Excel. No login on your side, nothing to set up: 2 large projects with every option in about 15 seconds.
📋 What data can you extract from MahaRERA?
One item per project, 79 fields:
| Category | What you get |
|---|---|
| 🏷️ Project | name, RERA number, type, status, registration status (active, completed, lapsed, deregistered, in abeyance), link to the official page — SHRADDHA VARDAAN, P51800028936 |
| 📍 Location | full address, locality, village, taluka, district, PIN code, GPS, what lies around the plot — Mumbai Suburban, 400078 |
| 🏗️ Developer | developer name and id, office address, directors, CREDAI / NAREDCO membership — SHRADDHA LANDMARK PRIVATE LIMITED |
| 🕒 Dates and delays | registration, original and revised completion date, delay in days, every extension with its reason — 274 days late |
| 🚧 Construction | buildings and floors, % of work done per building and per task, common facilities, land area, FSI, total cost — 95.9 % done |
| ⚖️ Complaints and court cases | every complaint at MahaRERA (number, date, status, order), appeals, court cases — 1 complaint, order approved |
| 🏦 Money | loans on the project (lender, amount), own funds and borrowings, project bank |
| 🏠 Apartments sold | apartment by apartment: floor, carpet area, agreement price, amount received; booked and unsold ones; min / max / average price per sq ft — A-102, 48.23 m², ₹70,00,000 |
| 👥 Agents and professionals | registered agents (name, MahaRERA agent number, dates), architects, engineers, chartered accountants |
Every field, with an example, is listed in the Output section below. The options (project details, complaints, apartments, agents, professionals) are all off by default: tick the ones you need to get their fields; each option left off leaves its fields empty and is not charged.
✅ Why use MahaRERA Scraper?
- 🏛️ The official source: the MahaRERA registry itself, not a listing portal that prints the RERA number only.
- ⏱️ Delays at a glance: original and revised completion dates, the delay in days and the reason of each extension. The 4-month extension MahaRERA gave to nearly every project in August 2026 (Order 66/2026) is flagged and not counted as a delay:
delayedOnlykeeps the projects whose developer really asked for more time. - ⚖️ Risk in one row: complaints, appeals, court cases and loans on the project, next to the developer and the address.
- 🏠 Real prices: the agreement price and the amount received of every apartment sold, as declared to the regulator.
- 🔗 From a listing to the registry: paste a MagicBricks or 99acres URL, get the registered project behind it.
- 🔔 Monitoring built in: new projects only, or also the projects that changed since the last run (a new complaint, a revised date), with what changed.
- 🔌 API, scheduling, monitoring, integrations (Make, Zapier, n8n, Google Sheets…) and JSON/CSV/Excel export via the Apify platform.
🚀 How to scrape MahaRERA
- Create a free Apify account.
- Open MahaRERA Scraper and paste one or more RERA registration numbers (e.g.
P51800028936). - Or paste MagicBricks / 99acres URLs (a property, a project or a search page) into Start URLs — or leave both empty and set filters (district, developer, status, registration date) to go through the whole registry.
- Set Max projects (100 by default, 0 = no limit), tick the options you need (Project details, Complaints and appeals, Apartments, Registered agents, Architects, engineers, accountants), then click Start.
- Download the dataset in JSON, CSV, Excel or via API.
💰 How much does it cost to scrape MahaRERA?
This Actor uses pay per event pricing. Platform usage (compute, proxy) is included in the price.
| Event | Price |
|---|---|
| Project saved | $0.65 per 1,000 (Free plan) down to $0.62 per 1,000 (Gold plan and above) |
| Each option ticked (project details, complaints and appeals, apartments, agents, professionals) | $0.09 per 1,000 projects, per option |
| MagicBricks or 99acres page read for its RERA numbers (a page may hold several projects) | $5 per 1,000 pages (Free) down to $4.97 (Gold) |
| Project read and dropped by a filter the registry does not offer (location, keyword, dates) | $0.19 per 1,000 |
| Run start | $0.001 |
- 1,000 projects, no option, Free plan: 1,000 × $0.00065 + $0.001 = $0.65.
- 1,000 projects with all 5 options, Gold plan: 1,000 × ($0.00062 + 5 × $0.00009) + $0.001 = $1.07.
⚙️ Input
{"registrationNumbers": ["P51800028936", "PR1260002502426"],"maxItems": 100}
The newest projects of a district, delayed ones only, registered this year:
{"location": "Pune","delayedOnly": true,"postedAfter": "2026-01-01","includeUnits": false,"maxItems": 200}
Or from MagicBricks / 99acres pages, and a daily watch of what changed:
{"startUrls": [{ "url": "https://www.magicbricks.com/property-for-sale-in-pune-pppfs" },{ "url": "https://www.99acres.com/new-projects-in-pune-ffid" }],"onlyNew": true,"stateKey": "pune-watch","maxItems": 500}
| Field | Notes |
|---|---|
registrationNumbers | RERA numbers: P51800028936, or PR1260002502426 (since October 2025). Case and spaces are ignored. |
startUrls | MagicBricks / 99acres pages (every RERA number printed on them is read, search pages are followed) or MahaRERA project pages. |
query, searchQueries | Keep the projects whose name or developer contains one of these, e.g. Lodha. |
location, locations | District, taluka, village, locality or PIN code of the project land: Pune, Mumbai Suburban, 411014. Whole names only: Wardha does not find Wardhaman Nagar, and a project on the Pune Mumbai Highway is not in Mumbai. |
maxItems | Stop after this many projects for the whole run (0 = unlimited). |
maxItemsPerQuery | Cap for EACH start URL and for the registry scan. 0 = no per-search cap. |
includeDetails, includeComplaints, includeUnits, includeAgents, includeProfessionals | What to extract on top of the project (all off by default); each one ticked adds its fields and its charge. |
includeComplainantNames | Add the names of the private persons who filed a complaint or an appeal, and the file names of the orders, named after them (off by default; companies are always named). |
projectStatuses | Keep only New projects (started after RERA) or Ongoing ones (started before). |
registrationStatuses | Keep only these registration states: active, completed, lapsed, deregistered, abeyance. |
propertyTypes | Keep the projects whose type contains one of these words, such as Residential or Commercial. |
postedAfter, postedBefore | Registration date range: 2026-01-01, or a period before now (30 days, 6 months). |
latitude, longitude, radiusKm | Keep the projects within radiusKm of the point. |
delayedOnly, withComplaintsOnly | Keep only the projects whose developer asked for an extension (the general 4-month extension of August 2026 does not count), or those with at least one complaint. |
excludeKeywords | Drop the projects whose name contains one of these words (case and accents ignored). |
onlyNew, alsoChanged, stateKey, resetState | Monitoring: only the projects never delivered under this memory key (and, with alsoChanged, those that changed since); resetState forgets the memory. |
projectIdFrom, projectIdTo | Registry scan range (internal ids, newest first by default). |
| Advanced | proxyConfiguration (no proxy by default: the registry answers fastest directly; your own proxy URLs are accepted; the residential Apify proxy is not available), maxConcurrency, maxRequestsPerMinute, minRequestIntervalMs, maxRequestRetries, debugLog. |
📦 Output
A real project (shortened: the lists keep their first entry, a few fields left out):
{"id": "33591","reraId": "P51800028936","url": "https://maharerait.maharashtra.gov.in/public/project/view/33591","projectName": "SHRADDHA VARDAAN","propertyType": "Residential / Group Housing","projectStatus": "New","registrationStatus": "Active","registrationDate": "2021-04-15","originalCompletionDate": "2027-12-31","revisedCompletionDate": "2028-04-30","completionDelayDays": 0,"address": "VILLAGE KANJUR, BHANDUP WEST, Kurla, Mumbai Suburban, 400078","district": "Mumbai Suburban","pinCode": "400078","latitude": 19.1283227,"longitude": 72.9281371,"developer": "SHRADDHA LANDMARK PRIVATE LIMITED","totalUnits": 723,"soldUnitsCount": 681,"totalCost": 2530000000,"currency": "INR","workDonePercent": 95.9,"extensions": [{ "applicationNumber": "P51800028936/War", "originalDate": "2027-12-31", "revisedDate": "2028-04-30", "reason": null, "generalOrder": true }],"litigationCount": 1,"encumbrances": [{ "lender": "Aditya Birla Capital Limited", "trustee": null, "securedAmount": 850000000 }],"complaintCount": 1,"complaints": [{"number": "CC12504491","date": "2025-12-16","type": "Regular","status": "Order Approved","complainant": null,"respondent": "SHRADDHA LANDMARK PRIVATE LIMITED","orderFileName": null,"orderDate": "2025-12-16"}],"priceMin": 3040000,"priceMax": 10993750,"pricePerSqFt": 13890,"soldUnits": [{"building": "WING A","wing": null,"floor": "Floor 1","unit": "A-102","carpetAreaSqm": 48.23,"agreementPrice": 7000000,"receivedAmount": 4896500,"balanceAmount": 2103500}],"agentCount": 0,"searchUrl": null,"scrapedAt": "2026-09-26T08:00:00.000Z"}
You can download the dataset in various formats such as JSON, HTML, CSV or Excel.
All 79 fields
| Fields | What you get |
|---|---|
id, reraId, url, projectName, propertyType | 🏷️ Project: registry id, RERA number, official page, name, type |
projectStatus, registrationStatus, isLapsed, isDeregistered, isInAbeyance, certificateStatus, isMigrated | New / Ongoing, Active / Lapsed…, flags, registered on the old portal (2017-2025) |
applicationNumber, applicationDate, registrationDate, certificateDate | 🕒 Dates: filing, registration (what the date filters read), latest certificate |
originalCompletionDate, revisedCompletionDate, completionDelayDays, extensionCount, extensions | completion promised and revised, delay in days (the developer's own extensions; the general 4-month order of August 2026 is flagged generalOrder, not counted), each extension with its reason |
address, street, locality, village, taluka, district, state, pinCode, latitude, longitude, boundaries | 📍 Location of the project land |
developer, developerId, developerContactPerson, developerDistrict, developerPinCode, developerType, developerAddress, developerDirectors, developerMemberships | 🏗️ Developer |
totalUnits, soldUnitsCount, landAreaSqm, builtUpAreaSqm, permissibleFsiSqm, plotNumbers, planningAuthority, buildingCount, buildings | 🚧 Construction: units (sold + booked in soldUnitsCount), land and plan, buildings with floors, units, cost and % done |
totalCost, currency, workDonePercent, constructionTasks, commonFacilities | total cost (INR), % of work done, progress per task and per common facility |
litigationCount, litigations, hasEncumbrance, encumbrances, financing, projectBank, projectBankIfsc | ⚖️🏦 court cases, loans on the project, means of finance, project bank |
complaintCount, complaints, appealCount, appeals | complaints at MahaRERA and appeals at the Appellate Tribunal |
priceMin, priceMax, pricePerSqFt, soldUnits, bookedUnits, unsoldUnits | 🏠 Apartments: sold and booked with agreement price and amount received, unsold with their ready-reckoner value |
agentCount, agents, professionals | 👥 registered agents (name, agent number, dates), architects, engineers, accountants |
searchUrl, changeType, changes, scrapedAt | the page of Start URLs the project was found through, new / changed with what changed (monitoring), ISO timestamp |
💡 Tips
How to get more results
Leave RERA numbers and Start URLs empty and set maxItems to 0: the Actor goes through the whole registry, newest files first (a project may be registered a year after its file was opened: for the latest registrations, set postedAfter). Filters (location, query, statuses, dates) narrow it down; a project a filter drops costs only the filter fee.
How to reduce costs
The price is per project and per option: tick only the options you need (the apartments of a large project are hundreds of rows), cap the run with maxItems, and use onlyNew for recurring runs (you never pay twice for the same project).
From a listing to the registry
Paste the MagicBricks or 99acres page of a property, a project or a search: the Actor reads the RERA numbers printed on it and returns the registered projects. A search page is followed page after page; maxItemsPerQuery caps each page you paste.
Monitoring: only the new projects, or also the ones that changed
Tick Only new projects (onlyNew) and schedule the Actor. The first run returns everything; each later run skips the projects already delivered: they are not saved, not charged. With Also projects that changed (alsoChanged, on by default) a project already delivered comes back when a new complaint, court case or appeal was filed, its completion date was revised, its registration or certificate status changed, an agent was added or removed, or its units sold or % of work done moved — with changeType: "changed" and the list of changes, before and after. The memory lives in a named key-value store of your account (maharera-projects-scraper-seen, up to 150,000 projects per key) and is only updated with projects that really reached the dataset. Give each schedule its own stateKey, and tick resetState once to start over. Without alsoChanged, the projects you already have are skipped unread, and a registry scan without a date stops once it meets a long run of them: a project registered since whose file was opened long before (its id is then below them) is missed. To catch every new registration, add postedAfter (for example 30 days): the scan then reads the whole period (see below), the projects you already have still skipped and free.
Filter by registration date
postedAfter and postedBefore take a date (2026-01-01, the whole day is included, India time) or a period before now (30 days, 6 months; via the API also a full ISO date-time). The filter reads registrationDate; a project without one is dropped as soon as a date bound is set. The registry's order says little about dates: a project may be registered a year after its file was opened, so a registry scan with a date reads every project of the current MahaRERA portal (opened in mid-2025) and only stops at the old portal's projects when the period starts after November 2025; an earlier period reads the whole registry. A project out of the period is recognised from its registration date alone and costs the filter fee.
🔌 Integrations and API
Call the Actor via the Apify API, the JavaScript or Python clients, or connect it with integrations and webhooks (Make, Zapier, n8n, Google Sheets, Slack, Airtable…). The dataset can be fetched as JSON or CSV from any tool.
🤖 Use with AI agents (MCP)
AI agents (Claude, ChatGPT, Cursor…) can find and run this Actor through the Apify MCP server, billed to their Apify account like any run. It returns one item per MahaRERA project. Actor id: nice_dev/maharera-projects-scraper; MCP server with this Actor only: https://mcp.apify.com/?tools=fetch-actor-details,nice_dev/maharera-projects-scraper.
Smallest input, for a cheap first call:
{"registrationNumbers": ["P51800028936"],"includeUnits": false,"includeAgents": false,"includeProfessionals": false,"maxItems": 1}
Key output fields: reraId, projectName, developer, district, registrationStatus, revisedCompletionDate, completionDelayDays, complaintCount.
Cost: see the pricing section above. Cap each call with maxItems and, through the API, with the run option maxTotalChargeUsd.
❓ FAQ
Is it legal to scrape MahaRERA?
The Actor only reads what the MahaRERA public project pages show to any visitor: the registry is published by law (RERA Act, 2016) so that buyers can check a project. It needs no account of yours. The data holds names of developers, their directors, agents and professionals as the registry publishes them, protected by data protection law: do not store them without a legitimate reason. The names of private persons who filed a complaint are left out unless you ask for them. What the public pages mask (PAN, phone numbers, e-mails, bank accounts) is never returned. You are responsible for using the data in compliance with the registry's terms and applicable law. This Actor is not affiliated with MahaRERA or the Government of Maharashtra, nor with MagicBricks or 99acres.
Does it need a login or a proxy?
No login on your side, and no proxy needed: leave the default setting. MagicBricks / 99acres pages go through our own residential proxy, included in their price (the residential Apify proxy is not available). A request the site turns away is retried at once on a new proxy session, up to 10 times on top of the retries (without a proxy, after a pause of 5 seconds, doubled at each retry up to 150 seconds).
Is the data safe to open in Excel or to show on a web page?
Names, addresses and reasons are the developers' own words, copied as they are. A text can begin with -, +, = or @: Excel and Google Sheets may read such a cell of a CSV file as a formula. The Actor leaves the text as it is: when you open a CSV, import these columns as text. Every URL field holds an http(s) URL or null. On a web page, escape every field like any text written by a stranger.
Known limitations
- The registry has no search box: names and places are filters applied to every project read, so a filtered registry scan reads many projects to find a few (each one dropped costs the filter fee).
- Projects registered on the old portal (2017-2025) often have no apartments or agents declared: those fields are empty lists.
- Documents (certificates, orders, quarterly reports) are named with their date, not downloaded.
- A dossier still being filed (no RERA number yet) is not a registered project: it is skipped.
- Two runs sharing the same
stateKeyat the same time may both return the same new project.
A run the platform stops without warning (out of memory, run timeout)
- Resurrect it: it goes on from where it stood at most a minute before the stop. What it had read since is read again, and the projects already saved are skipped: none is delivered or charged twice, and
maxItemsstill counts them. - With
onlyNew, the memory is saved once a minute: resurrect the stopped run and the projects it had saved meanwhile join the memory; leave it stopped for good, and the next run may return up to a minute of them once more.
Something doesn't work?
The last line of the log counts the projects saved, filtered out and not found (a RERA number the registry does not know), and the requests that failed after every retry. Those requests and the numbers not found are listed, with the reason, in the FAILED_REQUESTS record of the run's key-value store. A part of a project the registry could not give after every retry (its complaints, its apartments) leaves the project saved without it — not charged for it — and is listed there too. A run that saved nothing and had failed requests fails, and its last message gives the cause.
If the registry changes its pages, you are told instead of paying for blank rows. If the first 20 projects read all lack their name, registration date, district, developer, type, status or registration status — or, with their option on, their buildings or professionals — or if one part of them fails on every call for all 20, the run saves nothing more, stops and fails, and its last message names what is missing: at most those first projects are charged. The projects a filter drops after reading them count among those 20 too (a project without a date under postedAfter / postedBefore, without a status under projectStatuses…). If the first 1,000 dossiers of a registry scan all come without a RERA number, the run stops and fails the same way instead of reading the whole registry for nothing.
🛟 Support
Open an issue in the Issues tab with a link to your run: the run log and the FAILED_REQUESTS record of the key-value store show exactly which projects failed and why.