Sephora Eu Scraper avatar

Sephora Eu Scraper

Pricing

from $4.50 / 1,000 results

Go to Apify Store
Sephora Eu Scraper

Sephora Eu Scraper

Sephora EU Scraper is a professional-grade actor designed to extract high-fidelity product data from Sephora's European stores. Built for reliability and scale, it intelligently handles authentication, manages sessions, and delivers detailed structured data for your e-commerce analytics.

Pricing

from $4.50 / 1,000 results

Rating

0.0

(0)

Developer

Richard Feng

Richard Feng

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Sephora EU Scraper is a professional-grade Apify actor designed to extract high-fidelity product data from Sephora's European stores. Built for reliability and scale, it intelligently handles authentication, manages sessions, and delivers detailed structured data for your e-commerce analytics.


🚀 Features

  • Deep Product Extraction: Retrieves detailed product specifications, including:
    • Multiple variants (shades, sizes) with individual pricing and stock status.
    • High-resolution image galleries and media assets.
    • Rich HTML descriptions, short descriptions, ingredients, and usage guides.
    • Review counts, ratings, and wishlist/loves metrics.
    • Variant highlights and product flags.
  • Smart URL Parsing: Automatically detects category and product pages from standard web URLs.
    • Category pages: URLs ending with -c{digits}/ (e.g., maquillage-c302/)
    • Product pages: URLs ending with -P{digits}.html (e.g., -P1000212190.html)
  • Multi-Market Support: Supports 9 European markets via locale configuration.
  • Anti-Blocking Architecture:
    • Uses browser-grade TLS fingerprinting to bypass WAF detection without proxies.
    • Automatic guest token management with refresh on expiry.
    • Smart retries with exponential backoff (up to 3 attempts).
  • Scalable Performance: Configurable concurrency to balance speed and stability.

🌍 Supported Markets

LocaleMarketDomainCurrency
fr-FRFrancesephora.frEUR
it-ITItalysephora.itEUR
de-DEGermanysephora.deEUR
es-ESSpainsephora.esEUR
pl-PLPolandsephora.plPLN
cs-CZCzech Republicsephora.czCZK
el-GRGreecesephora.grEUR
ro-RORomaniasephora.roRON
pt-PTPortugalsephora.ptEUR

📋 Input Parameters

The actor accepts a JSON object with the following configuration:

FieldTypeDescriptionDefault
startUrlsArrayA list of Sephora EU URLs to scrape. Supports category and product pages.[]
categoryIdsArrayCatalog category IDs (e.g. ["C302", "C301"]). Alternative to startUrls.["C302"]
localeStringBCP 47 locale that selects the EU market. See supported markets above."fr-FR"
maxProductsIntegerMaximum number of products to scrape per run.100
maxConcurrencyIntegerNumber of parallel product detail requests (1–10).3
proxyConfigurationObjectRequired. Proxy settings. Residential proxies are recommended.

Common French Category IDs

IDNameApprox. Products
C302Maquillage (Makeup)~2,700
C301Parfum (Fragrance)~2,000
C303Soin Visage (Skincare)~1,800
C304Corps & Bain (Body & Bath)~1,500
C307Cheveux (Hair)~1,200
C342Teint (Complexion)~885
C343Yeux (Eyes)~600
C344Lèvres (Lips)~500

Input Examples

Using Start URLs:

{
"startUrls": [
{ "url": "https://www.sephora.fr/shop/corps-et-bain/soin-du-corps/huile-nourrissante-c479/" },
{ "url": "https://www.sephora.fr/p/prada-reflection----baume-liquide-effet-gloss-P1000212190.html" }
],
"locale": "fr-FR",
"maxProducts": 100,
"proxyConfiguration": { "useApifyProxy": true }
}

Using Category IDs:

{
"categoryIds": ["C302", "C301"],
"locale": "fr-FR",
"maxProducts": 500,
"maxConcurrency": 3,
"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"] }
}

Scraping a different market (Italy):

{
"categoryIds": ["C302"],
"locale": "it-IT",
"maxProducts": 200,
"proxyConfiguration": { "useApifyProxy": true }
}

📦 Output Data

Data is stored in the default dataset in JSON format. Each item represents a unique product.

Data Schema

FieldTypeDescription
sourceObjectMetadata about the crawl (ID, URL, Retailer, Currency).
brandStringProduct brand name.
titleStringProduct title (localized to the selected market).
descriptionStringFull HTML description.
shortDescriptionStringBrief HTML summary.
categoriesArrayCategory IDs and product family.
optionsArrayVariation attributes (shades, sizes) with orderable status.
variantsArrayList of all SKUs/variants with pricing and stock.
variants[].priceObjectPricing details: current price, original price, stock status.
mediasArrayAll images associated with the product.
statsObjectReview count, rating, and loves/wishlist count.

🔧 Advanced Configuration

Proxy Configuration

  • Residential Proxies: Recommended for consistent access across all markets.
  • Note: The scraper uses browser-grade TLS fingerprinting (via got-scraping) that bypasses Akamai WAF in many cases without requiring a proxy. If you encounter blocks, switch to residential proxies and reduce concurrency.

Performance Tuning

  • Default Concurrency: Set to 3 for safe, stable operation.
  • Scaling Up: Increase maxConcurrency up to 10 for faster speeds with quality residential proxies.
  • Debugging: Set maxProducts to a low number (e.g., 10) to verify your configuration before a full run.

❓ FAQ & Troubleshooting

Q: Which URL formats are supported? A: Category pages ending with -c{digits}/ (e.g., sephora.fr/shop/maquillage-c302/) and product pages ending with -P{digits}.html (e.g., sephora.fr/p/product-name-P1000212190.html).

Q: Can I scrape multiple markets in one run? A: One locale per run. Launch separate actors for each market, setting the locale field accordingly.

Q: I'm getting authentication errors. A: The actor manages guest tokens automatically. If errors persist, try reducing maxConcurrency or adding a proxy.

Q: Does it scrape all variants of a product? A: Yes. The scraper returns all variants with individual pricing and stock status.


This actor only collects data that is publicly accessible on Sephora's website — the same product information visible to any anonymous visitor without logging in. No authentication credentials, private user data, or paywalled content is accessed.

Please use responsibly:

  • Do not run at heavy load. Keep maxConcurrency at 3 or below and avoid scheduling frequent back-to-back runs. Excessive request rates may degrade the website experience for real users and could result in your IP being blocked.
  • Ensure your use case complies with Sephora's Terms of Service and applicable data protection laws (e.g. GDPR) in your jurisdiction.
  • Do not use scraped data for purposes that compete unfairly with or harm Sephora's business.