# Changelog of Justdial Leads Extractor (`codingfrontend/justdial-business-lead-extractor`) Actor

- **URL**: https://apify.com/codingfrontend/justdial-business-lead-extractor/changelog.md
- **Full Actor documentation**: https://apify.com/codingfrontend/justdial-business-lead-extractor.md

## Changelog

All notable changes to the JustDial Lead Extractor are documented here.

### Offline repair — 2026-10-03 (package version unchanged)

- Defensive source parsing, accurate optional values and observed-response provenance
- Shared validated writer, serialized deduplication/limits and fatal storage failure handling
- Full proxy-option pass-through, original input defaults, no fingerprint injection or access-boundary retries
- Honest OUTPUT summaries, pure/injected-mock tests and explicit packaging allowlists
- No live, browser, SDK, Docker, cloud or Git verification performed under the offline hold

The original release notes below are inherited historical claims, not verification of the current actor.

### \[1.0.0] - 2026-05-20

#### Added

- Initial production release of the JustDial Lead Extractor.
- `PuppeteerCrawler`-based architecture using Chrome (`apify/actor-node-puppeteer-chrome:latest`).
- Modular project structure following Brave Apify actor pattern:
  - `src/main.js` — entry point with input validation, proxy setup, and crawler init.
  - `src/routes.js` — Crawlee router factory.
  - `src/routes/handlers.js` — request handler orchestrating navigation and API lead capture.
  - `src/extractors/index.js` — business/lead row mapping with full field extraction (name, VNumber, weburl, address, lat/lon, services, amenities, etc.).
  - `src/schema/input.js` — input validation (location, maxItems, search, headless, proxyConfiguration).
  - `src/filters/index.js` — URL-based deduplication filter.
  - `src/utils/index.js` — `delay`, `scrollToCurrentBottom`, `waitForPageGrowth`, `removePopups`, fingerprint injection helpers.
  - `src/errors/` — `ScraperError`, `ErrorTypes`, `ErrorHandler`.
- Response-intercept approach: captures JustDial's `resultsPageListing` API batches via `page.on('response')`.
- Incremental scroll strategy to trigger JustDial's scroll-position load-more listener.
- Build JustDial search URL from `search` keyword and `location` inputs automatically.
- `.actor/actor.json`, `input_schema.json`, `dataset_schema.json` for Apify platform compatibility.
- `validate-datasets.js` for local dataset output validation.
- `Dockerfile` using `apify/actor-node-puppeteer-chrome:latest` image.
- `README.md` with full Apify usage guide, input/output field reference, and example JSON.
- Dataset views: `lead_details` with 60+ business fields including contact, location, rating, and media data.
