Ulta Beauty Scraper avatar

Ulta Beauty Scraper

Pricing

from $4.20 / 1,000 results

Go to Apify Store
Ulta Beauty Scraper

Ulta Beauty Scraper

Scrape Ulta Beauty from category, brand, sale or product URLs: sale and list prices, stock status, ratings and review counts, product size and highlight badges. Every shade and size is grouped into one record, with each shade's undertone and finish - and costs one event, not forty.

Pricing

from $4.20 / 1,000 results

Rating

0.0

(0)

Developer

Richard Feng

Richard Feng

Maintained by Community

Actor stats

3

Bookmarked

48

Total users

7

Monthly active users

1 days

Issues response

13 hours ago

Last modified

Share

Ulta Scraper

Ulta Scraper provide a way to crawl product details of site Ulta.

🎯 Features

  • 🗂️ Support fetch products of category;
  • 📦 Support fetch product detail with prices,descriptions,images and sku info;
  • 🧩 Group skus in same product.
  • 🎨 Per-shade undertone/finish description, product size, and highlights badges.

💡 The price values are multiplied by 100 to avoiding floating point calculations.

💰 Variant cost

💳 Cost note — all SKUs are merged into one product. Ulta lists every shade/size as a separate SKU. This scraper groups all of them under a single product record (one dataset item with a variants[] array) rather than emitting one item per SKU. The trade-off is request cost: a product's default SKU comes free with the product page, but every additional SKU needs its own request to read that variant's own price and images. So a product with N variants costs roughly N requests — and products with many shades (foundations, concealers) dominate the run time and cost.

Use maxVariantFetches to cap the per-product variant calls. Variants beyond the cap are still included, using the product-level price and their single listing image (no extra call), so you trade some per-variant price/image accuracy for a much cheaper, faster run.

📋 Input Parameters

The input of this scraper shoule be JSON formated. Fields are:

FieldTypeDescription
startUrlsArrayStart URLs of Ulta site to start the scraper. Category page, product page urls are all supported.
proxyObjectDATACENTER (or no proxy) is recommended — RESIDENTIAL often adds 502/504/ECONNRESET errors. Use RESIDENTIAL only if you see blocks.
maxConcurrencyObjectActor running max concurrency, which helps you to not getting blocked.
maxRequestsPerCrawlIntegerMaximum number of requests that can be made by this crawler, 0 to ignore.
maxVariantFetchesIntegerCap of per-product variant detail calls (each non-default shade/size costs one extra request). Empty = fetch all.

🔗 Supported Pages

Supported of fetch data from below pages:

PageExample
Product Detail Pagehttps://www.ulta.com/p/studio-fix-powder-plus-foundation-makeup-xlsImpprod15921242?sku=2510752
Category Pagehttps://www.ulta.com/shop/makeup/face
Brand Pagehttps://www.ulta.com/brand/ulta-beauty-collection
Sale Pagehttps://www.ulta.com/promotion/sale

📤 Data storage

Ulta scraper stores the product data to default data set in JSON format.

{
"source": {
"id": "pimprod2048637",
"crawlUrl": "https://www.ulta.com/p/radiance-conscious-beauty-kit-pimprod2048637?sku=2630776",
"canonicalUrl": "https://www.ulta.com/p/radiance-conscious-beauty-kit-pimprod2048637?sku=2630776",
"retailer": "ulta",
"currency": "USD"
},
"brand": "Beauty Finds by ULTA Beauty",
"title": "Radiance Conscious Beauty Kit",
"description": {
"short_desc": "Unwrap Radiance with Our Beauty Kit! Celebrate the season with the ultimate gift of clean beauty. Our beauty kit features luxurious, eco-friendly products designed to nourish and glow.",
"full_desc": "#### Includes\n\n- Bubble, Skincare Day Dream Tone + Texture Serum Vitamin C + Niacinamide (0.17 oz)\n- Dermalogica, Special Cleansing Gel (0.5 oz)\n- House Of Lashes, Boudoir Lite Full False Lashes (1 pair)\n- Lolavie, Glossing Detangler (0.85 oz)\n- Nemat, Vanilla Musk Roll-On Fragrance Oil (0.17 oz)\n- ‘Ôrǝbella, NIGHTCAP Parfum (0.05 oz)\n- Peace Out, Acne Dots (4 dot patches)\n- Pür Beauty, Fully Charged Mascara Powered By Magnetic Technology Mini (0.14 oz)\n- St. Tropez, St. Tropez Self Tan Purity Bronzing Water Face Mist (0.47 oz)\n- Sunday Riley, Good Genes All-In-One Lactic Acid Treatment (0.17 oz)\n- Thayers, Thayers PH Cleanser (3.0 oz)\n- Viviscal, Thickening Conditioner (1.7 oz)\n- Viviscal, Thickening Shampoo (1.7 oz)\n\n"
},
"categories": [
"Gifts",
"By Price",
"$50 and Under"
],
"options": [],
"variants": [
{
"id": "2630776",
"sku": "2630776",
"options": [],
"price": {
"list": 4000,
"listFormatted": "$40.00",
"sale": 2400,
"stockStatus": "InStock"
},
"medias": [
{
"id": "2630776",
"type": "Image",
"url": "https://media.ulta.com/i/ulta/2630776",
"alt": "Beauty Finds by ULTA Beauty Radiance Conscious Beauty Kit #1",
"width": 2000,
"height": 2000
},
{
"id": "2630776_alt01",
"type": "Image",
"url": "https://media.ulta.com/i/ulta/2630776_alt01",
"alt": "Beauty Finds by ULTA Beauty Radiance Conscious Beauty Kit #2",
"width": 2000,
"height": 2000
}
]
}
],
"stats": {
"rating": 4.4,
"reviewCount": 7
},
"price": {
"sale": 2400,
"list": 4000,
"listFormatted": "$40.00",
"stockStatus": "InStock"
}
}

Product attributes (undertone / finish, size, highlights)

For makeup with shades, each colour option value carries a description — the "undertone / finish" line Ulta shows under the swatch. The product also carries a size (volume/dimension) and a highlights badge row (Clean Ingredients, Cruelty Free, Vegan, …). description is omitted for shades Ulta doesn't describe (e.g. some eyeliners), and highlights/size are omitted when the product has none.

{
"title": "Double Wear Stay-in-Place Longwear Matte Foundation",
"size": "1.0 oz",
"highlights": [
{ "label": "Sustainable Packaging", "icon": "SustainablePackaging", "imageUrl": "https://media.ultainc.com/i/ulta/Sustainable-Packagingicon", "description": "..." }
],
"options": [
{
"type": "Colour",
"values": [
{
"id": "1C1 Cool Bone",
"name": "1C1 Cool Bone",
"description": "light with cool rosy-peach undertones",
"swatchIcon": { "url": "https://media.ultainc.com/i/ulta/2651973_sw", "alt": "1C1 Cool Bone …" },
"smooshIcon": { "url": "https://media.ultainc.com/i/ulta/2651973_sm", "alt": "1C1 Cool Bone …" }
}
]
}
]
}

💳 Pricing

This Actor uses pay per event — you are charged per product saved to the dataset, not for compute time or run duration. One event covers the whole product, including every shade and size variant.

EventFree / StarterScale / Business+
Product saved to dataset$0.0070$0.0055

What the free plan gets you: Apify's free plan includes $5 of platform credit every month, which is about 710 Ulta products per month at no cost. 10,000 products cost $70 on the free/starter rate, $55 on Scale or above.

A product with 40 shades still costs one event, not 40. You are never charged for failed requests or for products the Actor could not parse. Set Max total charge on the run to cap spend.


🤖 Use with AI agents

This Actor is callable as a tool by any MCP-capable agent — Claude, Cursor, VS Code — or by your own code, with no wrapper and nothing extra to deploy.

Connect over MCP

https://mcp.apify.com?tools=autofacts/ulta-scraper

In a client that reads an mcpServers configuration block:

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

The agent reads this Actor's parameters and their descriptions straight from the input schema, and the hosted server infers the result field types from the dataset schema — so a model knows what to send and what comes back before it ever calls anything.

Or call the API directly

curl -X POST "https://api.apify.com/v2/acts/autofacts~ulta-scraper/run-sync-get-dataset-items?token=$APIFY_TOKEN" \
-H 'Content-Type: application/json' \
-d '{"startUrls": [{"url": "https://www.ulta.com/shop/makeup/face"}], "maxConcurrency": 5}'

The response body is the dataset records described above.

🧰 Other Actors by autofacts

Apify only auto-recommends Actors in the same category, so here are the ones that actually pair with this scraper:

ActorWhat it's for
Sephora Product ScraperThe other big beauty retailer — 29 countries, same output shape
Macy's ScraperDepartment-store beauty and wider catalog
Boohoo ScraperFast-fashion catalog across 7 regions
Lululemon ScraperActivewear catalog and pricing
Farfetch ScraperLuxury fashion, multi-currency

All of them: apify.com/autofacts