Ulta Scraper avatar

Ulta Scraper

Pricing

from $1.12 / 1,000 results

Go to Apify Store
Ulta Scraper

Ulta Scraper

Scrape Ulta Beauty products by search or category with prices, ratings, reviews, and availability. Monitor price and stock changes over time. $1.40 per 1,000 products.

Pricing

from $1.12 / 1,000 results

Rating

0.0

(0)

Developer

Redomic

Redomic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 minutes ago

Last modified

Categories

Features

Limited permissions

Share

Ulta Scraper - Ulta Beauty products, prices, ratings, and availability

Ulta Scraper collects Ulta Beauty product data from a search term or category page. Each row is one product with id, sku, brand, title, priceAmount, priceCurrency, list and sale prices, rating, reviewCount, availability, badge, promo text, imageUrl, and url. Use it to track prices, monitor stock and assortment changes, or build product and market research datasets.

In monitor mode it compares each run with the previous run for the same input and reports only new, changed, and removed products.

Who uses it

  • Beauty brands and ecommerce managers tracking competitor prices, promotions, ratings, and assortment on Ulta.
  • Retail and pricing analysts building recurring price and stock monitoring feeds for Ulta Beauty categories.
  • Catalog and research teams collecting product metadata, review counts, and availability for analysis.

What you get

5 real rows captured from Ulta Beauty on 2026-11-16 (category: foundation):

idbrandtitlepriceAmountratingreviewCountavailabilityurl
pimprod2057355Estée LauderDouble Wear Stay-in-Place Longwear Matte Foundation52.004.210297https://www.ulta.com/p/double-wear-stay-in-place-longwear-matte-foundation-pimprod2057355?sku=2651970
pimprod2051406MACStudio Fix Powder Plus Foundation39.003.83525https://www.ulta.com/p/studio-fix-powder-plus-foundation-pimprod2051406?sku=2635749
pimprod2049570LancômeTeint Idole Ultra Wear 24H Full Coverage Foundation53.004.37390https://www.ulta.com/p/teint-idole-ultra-wear-24h-full-coverage-foundation-pimprod2049570?sku=2632372
xlsimpprod5770257IT CosmeticsCC+ Cream with SPF 50+39.004.322056https://www.ulta.com/p/cc-cream-with-spf-50-xlsimpprod5770257?sku=2264064
pimprod2058179NARSLight Reflecting Advanced Skincare Foundation52.004.43011https://www.ulta.com/p/light-reflecting-advanced-skincare-foundation-pimprod2058179?sku=2649511

Discovery rows also include sku, priceCurrency, listPriceAmount, salePriceAmount, badge, promoText, imageUrl, variantLabel, sourceType, and scrapedAt. Product detail rows can include description, gtin12, color, breadcrumbs, categoryPath, imageUrls, ingredients, attributes, and sampleReviews when available on the product page.

Modes

ModeWhat it doesOutput
discoveryCollects products from a search term or category path/URL.One row per product found on the page.
detailFetches a single product page.One row with full product details parsed from the page.
monitorRuns discovery and compares with the previous run for the same input.Rows with changeType set to new, changed, or removed, plus a STATUS summary.

Price

This Actor charges $2.00 per 1,000 products. In discovery and detail modes each returned product is charged as a result. In monitor mode only new or changed products are charged; unchanged and removed items are free. For example, collecting 500 products in discovery mode costs about $1.00.

How to run it

  • Search for products: set query to mascara with mode = discovery. Ulta shows search results only in the browser, so a product type or brand opens the category or brand page Ulta's own menu links (mascara reads /shop/makeup/eyes/mascara).
  • Collect a category: set query to /shop/makeup/face/foundation with mode = discovery.
  • Track changes: set query to /shop/skin-care/moisturizers/face-moisturizer with mode = monitor and schedule the run.

Input

FieldDefaultWhat it does
querymascaraProduct type or brand (opens the matching Ulta category or brand page), category path (for example /shop/makeup/face/foundation), brand page (/brand/tarte), or full Ulta product or category URL.
modediscoverydiscovery to list products, detail to fetch one product page, monitor to report new/changed/removed products since the previous run.
maxItems50Maximum number of products to return.
proxyApify Proxy enabledProxy settings. Use a residential proxy if Ulta blocks requests from your run environment.

Output fields

  • id: Ulta product identifier (for example pimprod2057355).
  • sku: SKU shown on the card or product page.
  • brand: Product brand.
  • title: Product name.
  • variantLabel: Variant label from the listing card when present.
  • priceAmount, priceCurrency: Current price as a number and ISO 4217 currency code.
  • listPriceAmount, salePriceAmount: List and sale prices when available.
  • rating, reviewCount: Average rating and number of reviews.
  • availability: Availability value when known (for example InStock or LimitedAvailability).
  • badge, promoText: Badge and promotion text from the listing.
  • imageUrl, imageUrls: Product image URL(s).
  • url: Canonical product URL.
  • description, gtin12, color: Detail fields from the product page.
  • breadcrumbs, categoryPath: Category breadcrumb values.
  • ingredients, attributes: Ingredients and other product attributes from detail pages.
  • sampleReviews: Sample reviews included on the product page.
  • changeType: In monitor mode, new, changed, or removed.
  • sourceType, scrapedAt: Source and capture timestamp.

Run status and summary are stored in the key-value store record STATUS.

FAQ

Can I get data from the Ulta API?
This Actor reads public product information from Ulta web pages. It does not use a private or authenticated API.

Does it return contact or personal data?
No. It returns product catalog data such as titles, prices, ratings, availability, and public product page content.

Why are some fields empty?
Not every page exposes every field. Search and category pages provide listing-level data; product detail pages provide richer fields such as description, ingredients, and sample reviews when present.

Can I monitor price or stock changes?
Yes. Use mode = monitor with the same query on a schedule. Each run stores state in a named key-value store and returns only new, changed, or removed products.

Is scraping allowed?
Only collect data you have the right to use and follow applicable laws and Ulta's terms. Use reasonable request rates and avoid collecting personal data.

Datos de productos de Ulta

Este Actor extrae datos públicos de productos de Ulta Beauty (precios, valoraciones, disponibilidad e información del producto) desde páginas de búsqueda o categorías. Puede ejecutarse en modo descubrimiento, detalle o monitor para detectar cambios.

Use it from AI agents (MCP) and Python

AI agents. Add this Actor as a tool in Claude, Cursor, VS Code or any MCP client through the Apify MCP server. The agent reads the input schema, so a plain request is enough.

{
"mcpServers": {
"ulta-scraper": {
"url": "https://mcp.apify.com?tools=redomic/ulta-scraper",
"headers": {
"Authorization": "Bearer <YOUR_APIFY_TOKEN>"
}
}
}
}

Python. pip install apify-client, then:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("redomic/ulta-scraper").call(run_input={"query": "mascara", "mode": "discovery"})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item)

More from us