# Changelog of Ulta Beauty Scraper (`autofacts/ulta-scraper`) Actor

- **URL**: https://apify.com/autofacts/ulta-scraper/changelog.md
- **Full Actor documentation**: https://apify.com/autofacts/ulta-scraper.md

## ChangeLog

#### 30/06/2026 — Per-shade undertone/finish, size, and highlights

**Feat:**

- **NEW** `options[].values[].description` — per-shade undertone/finish text (e.g. "light with cool rosy-peach undertones", "nude mauve (dewy)"). Colour shades only; absent for shades Ulta doesn't describe (e.g. some eyeliners).
- **NEW** `size` — product size/volume (e.g. "1.0 oz").
- **NEW** `highlights[]` — the "Highlights" badge row (Clean Ingredients, Cruelty Free, Vegan, Sustainable Packaging, …); each badge carries `label`, `description`, `icon`, `imageUrl`, and a learn-more `url`.
- Added an Apify dataset/output schema (`.actor/dataset_schema.json` + `.actor/output_schema.json`, wired via `actor.json`) describing the full product shape — so these fields render as a structured output schema in the Apify console. Validated against live output (15/15 items pass).

#### 22/06/2026 — Marketplace product routing

- **Fix:** route any `/p/<slug>` path as a product detail page by matching the URL prefix instead of the id suffix — covers every Ulta id format (`pimprod…`, `xlsImpprod…`, `VP…`, `prod…`, and marketplace `mkt…`), which a too-narrow suffix regex was silently dropping.

#### 21/06/2026 — Faster, more reliable product data

**Feat:**

- Product data is collected without rendering the website: runs are faster and far less often blocked. The output dataset shape is unchanged.

**Fix:**

- Fewer empty responses and retries during long runs.

#### 06/06/2026 — Observability & proxy safety

- **Feat:** report per-request telemetry to Scraper Insight.
- **Fix:** fail loudly when Apify Proxy is requested but cannot be configured locally, instead of silently scraping from the local IP.

#### 30/03/2026 — Legacy website scraping

- **Fix:** more reliable product URL extraction. *(Superseded by the 21/06/2026 update.)*
