Sephora Scraper avatar

Sephora Scraper

Pricing

from $4.99 / 1,000 dataset items

Go to Apify Store
Sephora Scraper

Sephora Scraper

Scrape Sephora product catalogs, search results, brands, prices, ratings, reviews, product details, and store availability. Choose a department, search any keyword, enrich selected products, or target international markets: ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿ‡ซ๐Ÿ‡ท ๐Ÿ‡ฉ๐Ÿ‡ช ๐Ÿ‡ฎ๐Ÿ‡น ๐Ÿ‡ธ๐Ÿ‡ฌ.

Pricing

from $4.99 / 1,000 dataset items

Rating

0.0

(0)

Developer

Fetch Finch

Fetch Finch

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

๐Ÿ›๏ธ Scrape Sephora product catalogs, search results, brands, prices, ratings, reviews, product details, and store availability. Choose a department, search any keyword, enrich selected products, or target international markets: ๐Ÿ‡บ๐Ÿ‡ธ ๐Ÿ‡ซ๐Ÿ‡ท ๐Ÿ‡ฉ๐Ÿ‡ช ๐Ÿ‡ฎ๐Ÿ‡น ๐Ÿ‡ธ๐Ÿ‡ฌ.

The actor returns clean, structured Dataset records that are easy to export to JSON, CSV, Excel, or connect to another workflow.

What you can collect

  • Product catalog records with product IDs, SKUs, names, brands, prices, ratings, review counts, images, URLs, categories, and product badges.
  • Full-text product discovery using searches such as perfume, vitamin C serum, or Rare Beauty.
  • The Sephora brand directory with brand IDs, names, descriptions, and URLs.
  • Product detail records with rich product information when enrichment is enabled.
  • Customer review pages for selected products.
  • Store-level availability around one or more latitude/longitude locations.
  • Targeted international product and catalog data using EU locales and Asia market settings.

Quick start

For a broad product snapshot, use Catalog and brands mode:

{
"mode": "catalog",
"catalogScope": "core",
"maxCatalogPages": 10
}

For keyword discovery, use Search products mode:

{
"mode": "search",
"searchQueries": ["perfume"],
"maxSearchPages": 25
}

For known products, use Product details mode:

{
"mode": "details",
"detailProductIds": ["P442563", "P123456"],
"maxDetails": 2
}

Ready-to-run examples

Try a preconfigured task to see the actor in action. Each example opens with focused inputs and the most relevant Dataset view:

Run modes

Set emitChangesOnly to true when you need an incremental feed. The actor then outputs only product and brand records whose meaningful data changed since the previous run, while still returning the run summary. Leave it off to receive a complete snapshot.

For recurring jobs, provide a stable cacheStoreName so the actor can reuse its cache and progress between runs. Leave it blank for isolated runs.

Catalog and brands

Collect product listings from Sephora departments and include the brand directory. The catalog cursor is resumable across repeated runs, making it suitable for scheduled collection.

Set catalogScope to:

  • core for the primary departments: Makeup, Skincare, Hair, Fragrance, Bath & Body, Men, and Tools & Brushes.
  • all-roots to include all available root categories.

Use maxCatalogPages to control how many listing pages are processed in one run. Each page can contain up to 60 products.

Brands only

Use mode: "brands" to export the complete brand directory without collecting product listings.

{
"mode": "brands"
}

Search products

Use one or more free-text queries. Search results are deduplicated by product ID when queries overlap.

{
"mode": "search",
"searchQueries": ["vitamin C serum", "SPF 50", "Rare Beauty"],
"maxSearchPages": 10
}

maxSearchPages applies to each search term. Results stop automatically when all available pages have been collected.

Product details

Provide known product IDs in detailProductIds to enrich specific products. The actor also maintains a detail queue from catalog and search work, so later runs can gradually enrich products discovered earlier.

{
"mode": "details",
"detailProductIds": ["P442563"],
"maxDetails": 1
}

Full

Use mode: "full" for catalog and brands collection plus gradual product-detail enrichment.

Reviews and store availability

Enable reviews for selected products:

{
"mode": "details",
"detailProductIds": ["P442563"],
"maxDetails": 1,
"includeReviews": true,
"reviewProductIds": ["P442563"],
"reviewPageSize": 20
}

Enable local availability checks by providing product IDs and locations:

{
"mode": "details",
"detailProductIds": ["P442563"],
"maxDetails": 1,
"includeAvailability": true,
"availabilityProductIds": ["P442563"],
"locations": [
{ "latitude": 40.7128, "longitude": -74.0060, "radius": 25 }
]
}

International markets

International collection is opt-in and supports targeted requests for:

  • ๐Ÿ‡ซ๐Ÿ‡ท France (fr-FR)
  • ๐Ÿ‡ฉ๐Ÿ‡ช Germany (de-DE)
  • ๐Ÿ‡ฎ๐Ÿ‡น Italy (it-IT)
  • ๐Ÿ‡ธ๐Ÿ‡ฌ Singapore and other configured Asia markets using country and language codes

Example EU product lookup:

{
"enableInternational": true,
"euLocales": ["fr-FR", "de-DE"],
"euProductIds": ["781301", "123456"]
}

Example EU search:

{
"enableInternational": true,
"euLocales": ["fr-FR"],
"euQueries": ["parfum"]
}

For Asia markets, use objects containing country and language:

{
"enableInternational": true,
"asiaMarkets": [
{ "country": "SG", "language": "en-SG" }
],
"asiaQueries": [
{ "country": "SG", "language": "en-SG", "query": "serum" }
]
}

Output

Every run writes structured records to the default Dataset. The Output tab includes dedicated views for:

  • Overview โ€” a practical mixed view of the collected records.
  • Products โ€” catalog, search, and enriched product records.
  • Brands โ€” brand directory records.
  • Reviews โ€” review records when enabled.
  • Availability โ€” store-level availability records when enabled.
  • Run summary โ€” collection counts, request usage, and errors.

Common product fields include:

recordType, region, productId, skuId, brandName, displayName, productName, priceText, price, rating, reviewCount, heroImage, targetUrl, flags, categoryIds, listingPage, matchedQuery, snapshotType, and fetchedAt.

International records additionally include fields such as locale, country, and language. Detail, review, availability, and run-summary records include their corresponding structured objects.

Scheduling and integrations

Save a configuration as an Apify Task for repeated use, or attach it to an Apify Schedule. The Dataset can be exported directly or connected to downstream workflows through the Apify API and integrations.

Example CLI call:

apify call fetchfinch/sephora-scraper \
--input '{"mode":"search","searchQueries":["perfume"],"maxSearchPages":5}'

Example API input:

{
"mode": "catalog",
"catalogScope": "core",
"maxCatalogPages": 10,
"maxDetails": 4
}