# Changelog of Magicbricks Property Listings Scraper \[Just 💰$0.72] (`blackfalcondata/magicbricks-com-scraper`) Actor

- **URL**: https://apify.com/blackfalcondata/magicbricks-com-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/blackfalcondata/magicbricks-com-scraper.md

## Changelog

All notable changes to this Actor are documented here.

### \[0.1.0] — 2026-11-07

Initial release.

#### Added

- Scrape listings from magicbricks.com.
- Optional latitude/longitude centre: every listing gets a `distanceKm`, and `radiusKm` keeps only listings within that distance (listings without coordinates are left out while a radius is set).
- Large searches reach every listing the site reports: the results are read in most-recent order, so paid listings no longer repeat on every page and crowd out others.
- `photo_urls` is filled for listings whose photo list the site sends as plain paths.
- Listings the site never placed on a map report empty coordinates instead of 0, 0.
- Property filters: type, bedrooms, price and area range, furnishing, availability, poster and recency. Filters in pasted search URLs are kept, and a URL filter the actor cannot apply stops the run with a clear error.
- Tenant type filter for rent searches (`tenantType`: family, bachelor). Listings open to both match either; a `bachelor=` parameter in a pasted rent URL is kept. A sale search with a tenant type stops with a clear error instead of returning nothing.
- Listings now include `flooring_type`, `maintenance_charges_inr` and `maintenance_period` when the site states them.
- Listings now include `water_status`, `power_status` and `available_from` (e.g. "Water Availability 24 Hours Available", "No/Rare Powercut", "Dec '26") when the site states them.
- Large searches no longer fail when a single request to the site drops or times out: it is retried instead of stopping the whole search.
- Incremental runs no longer mark listings as expired when the site's page count and result count disagree or its last reported page comes back empty: every page either count claims is read and delivered, and such a scan is never treated as complete.
- Rent listings now include `preferred_tenants` (Bachelors, Family or Bachelors/Family). magicbricks.com has no company-tenant preference on any listing, so a `company` tenant type stops with a clear error instead of returning unfiltered results.
- A result page that comes back empty while the site still reports further pages no longer ends the search early: the later pages are still read and delivered, and the run does not mark unseen listings as expired.
- Listings that disappeared are only marked expired when every result page was read and the counts agree: a total that changes mid-walk, a short or empty page, or a page window the site cuts off now leaves the run's coverage incomplete instead of expiring listings that were never seen.
- Incremental runs that overlap safely refuse to write state once another run has taken over the scope.
- The search field is now a Sale / Rent choice; free text the actor cannot honour is refused instead of silently searching something else.
- Searches over 1,500 listings are split automatically so every listing is reachable; `maxResults` caps only the rows delivered, and a run that stops early says why.
- When part of a search fails, the run reports it as partial instead of complete; a run where every search fails stops with an error.
- Incremental runs: `emitExpired` now delivers EXPIRED rows, two runs on the same search can no longer overwrite each other's state, and each distinct filter set keeps its own state.
- `descriptionMaxLength` now applies to the HTML and Markdown descriptions too.
