# Changelog of Multi-Retailer MAP & Price-Violation Monitor (`seibs.co/map-price-monitor`) Actor

- **URL**: https://apify.com/seibs.co/map-price-monitor/changelog.md
- **Full Actor documentation**: https://apify.com/seibs.co/map-price-monitor.md

## Changelog

### 0.1 - 2026-06-12 - Initial release

- Four modes: `price_scan`, `cross_retailer_match`, `map_monitor` (flagship), `seller_audit`.
- Four fully-parsed retailer connectors against real public response shapes (fixture-tested): Target (RedSky public web JSON), Best Buy (search HTML), Newegg (search HTML), Walmart (`__NEXT_DATA__` JSON via the browser tier). Seven more retailers (Home Depot, Lowe's, Costco, B\&H, Wayfair, Macy's, Micro Center) are catalog-registered with correct access method / anti-bot tier / proxy and the escalation pipeline wired (parser pending -> documented `retailer_pending` note).
- **The gated value layer**: cross-retailer SKU matching (UPC/GTIN exact -> MPN exact -> rapidfuzz/difflib fuzzy name) + MAP violation detection (threshold resolution from supplied `map_price` -> `default_map_price` -> an advisory inferred proxy; graded severity minor/moderate/severe) + unauthorized-seller flagging against an authorized-seller list. `enforcement_priority` marks below-MAP + unauthorized.
- Normalized listing schema across retailers (retailer, seller, seller\_type, price, list\_price, availability, UPC, MPN, retailer SKU, URL) with money/UPC/MPN/seller/availability normalizers.
- Three-tier anti-bot escalation ladder (`retailer_client`): httpx (datacenter) -> curl\_cffi Chrome-TLS impersonation (residential) -> patchright stealth browser (residential) -> fail-soft. Dual proxy provisioning, per-tier telemetry in `access_notes`. Browser tier honors `BROWSER_CDP_URL`.
- Responsible-use posture throughout: logged-out public product pages only, no accounts/login, no CAPTCHA bypass (the opt-in solver is off and never invoked by the shipped recipes), polite rate limits, capped results. Blocked retailers fail soft with documented `fetch_error`; prices are never fabricated.
- Cost-control: pre-flight caps, `_RunBudget` guard, demo-mode soft-fail, hardcoded PPE prices.
- Monitor mode (scheduled-run delta digest of new violations / price drops + Slack webhook), next-actions, and OUTPUT artifacts.
- Paired `mcp-map-price-monitor` MCP twin (scan\_prices, check\_map\_violations, match\_across\_retailers, audit\_sellers) with x402 + Skyfire agentic-payment hook.
- 32-case offline smoke suite (`scripts/smoke_test_map_price_monitor.py`): connector parsers vs fixtures, normalize/match/violation logic, budget guard, pre-flight, `_retailer_search` integration, full `map_monitor` + `seller_audit` end-to-end runs, demo routing, config-file integrity, MCP catalog.
