# Changelog of Business Website Scraper: Name, Contact and Tech Stack (`agent-harbor-llc/scrape-business-actor`) Actor

- **URL**: https://apify.com/agent-harbor-llc/scrape-business-actor/changelog.md
- **Full Actor documentation**: https://apify.com/agent-harbor-llc/scrape-business-actor.md

## Changelog

Versions follow the Actor's `version` field in `.actor/actor.json` (MAJOR.MINOR).

### 0.2 (2026-10-31)

- Added the dataset schema (`.actor/dataset_schema.json`) with three table views (Overview, Contact, Technology platforms) and an output schema that links to each view and to the full results.
- Input schema: full description and example (no `maxItems`: the Actor answers entries past 100 with a free error row instead of the Console refusing the run). Added `example_input.json` (equals the prefill).
- README rewritten in the Store order: What it does, Who it's for, Input, Output sample, Pricing example, Limits, FAQ, Changelog. The output sample is the same real run as before (2026-10-13).
- The README said $0.01 per business; the Console price is $0.005 per `business-scraped` event (set 2026-10-14, `ventures/apify-store-actor.md` in harbor-ops), so the README now says $0.005. `actor.json` has no pricing block and none was added: the price lives in the Console.
- Shortened the Actor title from 66 to 54 characters (Apify's title limit is 63); "validated" stays in the description.
- Added `store-listing.md` (SEO title and description, categories, keywords: recorded, not applied in the Console).
- One term throughout: **business** is what a run returns and what is charged.
- No change to the code, the output row shape or the charge. One thing is new on the platform side: with a dataset schema, Apify checks every pushed item against the declared field types and rejects a mismatch (docs: "Validate dataset output"; the whole request is refused with HTTP 400, and `Platform.push` then raises and the run stops before charging). So types are declared only for fields this code controls (`domain`, `status`, `charged`); fields that come from the Agent Harbor service are described but untyped. `tests/test_actor_quality.py` runs every row shape the code can save through the declared types. Step 6 of the Console task checks a real run saves its rows.

TODO Brian: `src/main.py` has `EVENT_PRICE_FALLBACK_USD = 0.01`, used only when the run's pricing lookup fails (it sizes the "maximum charge below one business" check). The Console price is $0.005. Changing it is money-path code, so it is left for your review. Also `.actor/actor.json` has `"name": "business-website-scraper"` while the live Actor is `scrape-business-actor`: check which one `apify push` targets before pushing 0.2.

### 0.1

- First version of the Actor: one `business-scraped` event per business returned with a validated profile.
