Pricing
from $1.20 / 1,000 products
Ulta Beauty Scraper
[๐ฐ $1.20/1K products + $0.20/1K reviews] Extract Ulta Beauty products and customer reviews โ brands, prices, sale prices, SKUs, ingredients, images, ratings, and full review text. Search by keyword or paste product and category URLs.
Pricing
from $1.20 / 1,000 products
Rating
0.0
(0)
Developer
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Pull beauty products and customer reviews from Ulta Beauty at scale โ brands, regular and sale pricing, full ingredient lists, star-rating breakdowns, and every review with its verified-buyer flag and helpful-vote counts. Search by keyword, or paste product and category URLs and the scraper detects the page type for you. Built for beauty brand analysts, e-commerce sellers, and market researchers who need structured Ulta catalog and review data without copying it product by product.
Why This Scraper?
- Two linked record types in one run โ a
productrow for every item plus areviewrow for every customer review, each review tagged with its parent product name and SKU so it stands alone in a spreadsheet. - Full ingredient lists, usage, and warnings โ the complete INCI ingredient string, "how to use" directions, and Prop 65 / restriction warnings pulled from each product page, not just the marketing blurb.
- Complete review text with buyer signals โ title, full body, reviewer name and type, location, date, verified-purchase flag, plus separate helpful and not-helpful vote counts and the reviewer's "bottom line" summary.
- 1โ5 star rating distribution and recommend % โ every product carries the exact count of reviews at each star level plus the percentage of reviewers who recommend it โ sentiment math done for you.
- Sale price, list price, and discount tracking โ regular price, current sale price, and the discount percentage side by side, so you can spot markdowns the moment they hit.
- Six sort orders โ Relevance, Best Sellers, Top Rated, Newest Arrivals, Price LowโHigh, and Price HighโLow, applied server-side across searches and category pages.
- Keyword search OR URL input, auto-detected โ type "vitamin c serum" or paste a product, category, or brand page URL; mix all three in one run and the scraper routes each automatically.
- Per-product review cap โ set how many reviews to pull per product (or pull them all) so a bestseller with 16,000+ reviews never blows up a run.
- Stable IDs on every row โ SKU and Ulta product ID on both products and reviews, ready to join against your own catalog or de-duplicate across runs.
Use Cases
Brand & Competitor Monitoring
- Track a competitor's full Ulta catalog, pricing, and stock status
- Watch for new product launches with the Newest Arrivals sort
- Monitor sale and discount activity across a brand or category
- Benchmark your products' ratings against rival brands
Product Research & Development
- Mine ingredient lists across a category to spot formulation trends
- Compare "how to use" directions and claims across competing products
- Identify which formats and finishes earn the highest ratings
- Build a structured ingredient database for regulatory or marketing review
Review Mining & Sentiment
- Pull thousands of reviews to surface recurring praise and complaints
- Use the 1โ5 star distribution and recommend % to quantify satisfaction
- Filter to verified-purchase reviews for higher-trust feedback
- Rank reviews by helpful votes to find the most influential opinions
Pricing Intelligence
- Track regular vs. sale prices and discount depth over time
- Compare price positioning across brands in the same category
- Spot price-low-to-high entry points for value shoppers
- Feed live pricing into repricing and margin models
Catalog & Lead Building
- Export a clean, structured product feed for a whole category or brand
- Build affiliate or comparison catalogs with images, prices, and ratings
- Enrich an existing SKU list with ratings, reviews, and ingredients
- Power dashboards and alerts on stock, price, and review changes
Getting Started
Search by Keyword
The simplest way to start โ one keyword:
{"searchTerms":["vitamin c serum"],"maxResults":25}
Scrape Specific Products and Categories
Paste product pages, category pages, or brand pages โ mix freely:
{"startUrls":["https://www.ulta.com/shop/skin-care/moisturizers","https://www.ulta.com/p/hydro-boost-water-gel-pimprod2007499"],"maxResults":100,"includeReviews":false}
Advanced โ Top-Rated Sweep with Review Cap
Pull the top-rated foundations and the 50 most recent reviews for each:
{"searchTerms":["foundation"],"sortBy":"top_rated","maxResults":200,"includeReviews":true,"maxReviewsPerProduct":50}
Input Reference
What to Scrape
Use either or both. Leave one empty to rely on the other.
| Parameter | Type | Default | Description |
|---|---|---|---|
searchTerms | string[] | ["moisturizer"] | Keywords to search on Ulta. Each term collects its own feed of matching products โ the fastest way to scan a category. |
startUrls | string[] | โ | Ulta URLs โ individual product pages or category/brand listing pages. The page type is detected automatically. |
Search Options
| Parameter | Type | Default | Description |
|---|---|---|---|
sortBy | select | Relevance | Order products are collected from searches and category pages: Relevance, Best Sellers, Top Rated, Newest Arrivals, Price LowโHigh, Price HighโLow. Individual product URLs are unaffected. |
Options
| Parameter | Type | Default | Description |
|---|---|---|---|
maxResults | integer | 100 | Maximum number of products to collect across all searches and URLs. Set to 0 for no limit. Reviews do not count against this. |
includeReviews | boolean | true | Collect each product's customer reviews. Turn off for faster, cheaper runs when you only need product and pricing data. |
maxReviewsPerProduct | integer | 20 | Maximum reviews to collect per product. Set to 0 to collect all available reviews, up to 1,000 per product. Only applies when reviews are on. |
Output
The dataset contains two record types, told apart by the recordType field. A product row is pushed first, followed by its review rows.
Product Record
{"recordType":"product","productId":"pimprod2007499","sku":"2563021","name":"Hydro Boost Water Gel with Hyaluronic Acid","brand":"Neutrogena","url":"https://www.ulta.com/p/hydro-boost-water-gel-pimprod2007499","price":25.99,"salePrice":19.99,"discountPercent":23,"currency":"USD","inStock":true,"availability":"https://schema.org/InStock","description":"An oil-free, lightweight gel moisturizer that instantly quenches dry skin...","ingredients":"Water, Dimethicone, Glycerin, Dimethicone/Vinyl Dimethicone Crosspolymer, Sodium Hyaluronate...","howToUse":"Apply liberally to face and neck daily, or as needed.","warnings":"For external use only. Avoid contact with eyes.","images":["https://media.ulta.com/i/ulta/2563021"],"rating":4.6,"reviewCount":8412,"recommendPercent":91.0,"ratingDistribution":{"1":120,"2":95,"3":310,"4":1840,"5":6047},"reviewsCollected":50,"scrapedAt":"2026-06-17T14:30:00Z"}
Core Fields
| Field | Type | Description |
|---|---|---|
recordType | string | Always "product" for product rows |
productId | string | Ulta product identifier |
sku | string | Ulta SKU identifier |
name | string | Product name |
brand | string | Brand name |
url | string | Canonical product page URL |
inStock | boolean | Whether the product is in stock |
availability | string | Raw availability status |
scrapedAt | string | ISO 8601 timestamp of extraction |
Pricing
| Field | Type | Description |
|---|---|---|
price | number | Regular / list price |
salePrice | number | Sale price when discounted |
discountPercent | number | Discount percentage off the regular price |
currency | string | Currency code (USD) |
Ratings & Reviews Summary
| Field | Type | Description |
|---|---|---|
rating | number | Overall average star rating |
reviewCount | number | Total reviews displayed on Ulta |
recommendPercent | number | Percentage of reviewers who recommend the product |
ratingDistribution | object | Count of reviews at each star level (1โ5) |
reviewsCollected | number | How many reviews this run pulled for the product |
Content & Media
| Field | Type | Description |
|---|---|---|
description | string | Full product description |
ingredients | string | Complete ingredient list |
howToUse | string | Usage directions |
warnings | string | Restrictions and safety warnings |
images | string[] | Product image URLs |
Review Record
{"recordType":"review","productId":"pimprod2007499","sku":"2563021","productName":"Hydro Boost Water Gel with Hyaluronic Acid","reviewId":"a1b2c3d4","rating":5,"title":"Holy grail moisturizer","body":"I have combination skin and this is the only gel that hydrates without making me oily...","authorName":"SkincareFan22","authorType":"verified","datePublished":"2026-05-02T00:00:00Z","location":"California","verifiedPurchase":true,"recommends":true,"helpfulVotes":47,"notHelpfulVotes":2,"bottomLine":"Yes","media":["https://media.ulta.com/review/example.jpg"]}
| Field | Type | Description |
|---|---|---|
recordType | string | Always "review" for review rows |
productId | string | Parent product identifier (for joining) |
sku | string | Parent product SKU |
productName | string | Parent product name |
reviewId | string | Unique review identifier |
rating | number | Star rating, 1โ5 |
title | string | Review headline |
body | string | Full review text |
authorName | string | Reviewer display name |
authorType | string | user, verified, or staff |
datePublished | string | ISO 8601 submission date |
location | string | Reviewer location |
verifiedPurchase | boolean | Whether the reviewer is a verified buyer |
recommends | boolean | Whether the reviewer recommends the product (null if not stated) |
helpfulVotes | number | Count of helpful votes |
notHelpfulVotes | number | Count of not-helpful votes |
bottomLine | string | Reviewer's raw recommend answer ("Yes" / "No") |
media | string[] | Attached photo/video URLs |
Tips for Best Results
- Start small to test โ set
maxResultsto 10โ25 on your first run to confirm the data fits your needs, then scale up. - Turn off reviews for catalog sweeps โ when you only need products, prices, and ingredients, set
includeReviewsto false for much faster, cheaper runs. - Cap reviews on bestsellers โ popular Ulta products carry thousands of reviews (some exceed 16,000). Keep
maxReviewsPerProductat 20โ50 to control cost. Setting it to 0 collects all reviews up to 1,000 per product โ use that only when you genuinely need deep review history. - Use category URLs to sweep a whole brand โ paste a brand or category page URL to capture its entire product grid in one pass instead of typing dozens of keywords.
- Match the sort to your goal โ use Best Sellers for demand signals, Top Rated for the highest-satisfaction items, and Newest Arrivals to catch launches early.
- The rating distribution beats the average โ a 4.6-star product with a long tail of 1-star reviews tells a different story than the average alone; use
ratingDistributionandrecommendPercentfor true sentiment. - Join reviews back to products on
skuโ both record types shareskuandproductId, so you can split the dataset byrecordTypeand rejoin cleanly in any spreadsheet or database.
Pricing
Charged per product plus per review collected โ you pay for the results you actually get, not for compute time. Products and reviews are billed as two separate events, so review-light runs cost a fraction of full review pulls.
- $1.20 per 1,000 products
- $0.20 per 1,000 reviews
The table below shows how the two events combine across typical run shapes:
| Run shape | Products | Reviews | Product cost | Review cost | Total |
|---|---|---|---|---|---|
| Catalog only (reviews off) | 100 | 0 | $0.12 | โ | $0.12 |
| Products + light reviews | 100 | 2,000 | $0.12 | $0.40 | $0.52 |
| Full pull | 1,000 | 50,000 | $1.20 | $10.00 | $11.20 |
A "product" is one unique product row; a "review" is one customer-review row. No compute or time-based charges โ you pay per result, plus a small fixed per-run start fee. Bronze, Silver, and Gold loyalty-tier subscribers pay progressively less; discounts apply automatically in the Apify Console.
Integrations
Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:
- Zapier / Make / n8n โ Workflow automation
- Google Sheets โ Direct spreadsheet export
- Slack / Email โ Notifications on new results
- Webhooks โ Trigger custom APIs on run completion
- Apify API โ Full programmatic access
Legal & Ethical Use
This actor is designed for legitimate market research, product analysis, and competitive intelligence. Users are responsible for complying with applicable laws and Ulta Beauty's Terms of Service. Collect only publicly available information, respect personal data in customer reviews, and do not use extracted data for spam, harassment, or any unlawful purpose.
