~/ecommerce/ulta-scraper

Ulta Beauty Scraper — Products, Prices & SKUs

Extract product details, pricing, images, and SKU information from Ulta Beauty including category pages, brand pages, and sale sections.

beauty >99% success TypeScriptCheerioCrawlee US
proooxy/ulta-scraper — spec
categoryecommerce / beauty
languageTypeScript
stackTypeScript, Cheerio, Crawlee
marketsUS
success>99%
outputclean, RAG-ready JSON

key features

Supports category, product detail, brand, and sale pages

Full product details with prices, descriptions, and images

SKU-level data extraction with variant grouping

Automatic detection of page type from URL

Lightweight Cheerio-based parsing for speed

Groups related SKUs under the same product

use cases

  • Beauty industry competitive analysis — Ulta vs Sephora pricing
  • Product catalog building for comparison shopping platforms
  • Sale and promotion monitoring
  • Brand discovery and market presence tracking
  • SKU-level inventory monitoring

input parameters

ParameterTypeRequiredDescription
startUrlsarrayrequiredUlta product, category, brand, or sale URLs
proxyobjectoptionalProxy configuration
maxConcurrencynumberoptionalMaximum parallel requests
maxRequestsPerCrawlnumberoptionalLimit total requests per run

Output Example

 1{
 2  "source": "https://www.ulta.com/p/...",
 3  "brand": "NYX Professional Makeup",
 4  "title": "Butter Gloss",
 5  "description": "A buttery soft and silky lip gloss...",
 6  "categories": ["Makeup", "Lips", "Lip Gloss"],
 7  "variants": [
 8    {
 9      "sku": "ULTA-NYX-BG-001",
10      "name": "Angel Food Cake",
11      "price": 900,
12      "currency": "USD",
13      "inStock": true
14    }
15  ],
16  "stats": { "rating": 4.5, "reviewCount": 8932 }
17}

faq

What types of Ulta pages can be scraped?
The scraper supports product detail pages, category listing pages, brand pages, and sale/promotion pages. It automatically detects the page type from the URL.
How are product variants handled?
Variants (different shades, sizes) are grouped under the same parent product. Each variant includes its own SKU, price, and availability status.

related in ~/ecommerce

ecommerce/sephora-scraper >99%
beauty

Sephora Scraper (Global)

Scrape any Sephora storefront — 21 markets, one actor.

PythonCrawleecurl_cffi
open

Run Ulta Beauty Scraper — Products, Prices & SKUs, or get a custom build

Start extracting on Apify in minutes, or hire me to build a bespoke scraper and RAG pipeline for your exact source and schema.

run on Apify get custom data