Sephora Scraper
Pricing
from $1.00 / 1,000 results
Sephora Scraper
Extract Sephora product data at scale, including names, brands, prices, ratings, reviews, categories, images, availability, and product URLs. Ideal for beauty market research, price monitoring, competitor analysis, e-commerce intelligence, and product datasets.
Pricing
from $1.00 / 1,000 results
Rating
5.0
(4)
Developer
Shahid Irfan
Maintained by CommunityActor stats
3
Bookmarked
22
Total users
3
Monthly active users
12 days ago
Last modified
Categories
Share
What does Sephora Scraper do?
Sephora Scraper collects product data from public pages on sephora.me. Paste a category, brand, search, or product URL, set a product limit, and receive a dataset with names, brands, prices, ratings, review counts, stock status, badges, images, and product links.
The default input collects new makeup products, and any other public Sephora Middle East listing or product page works the same way. The output supports beauty market research, price tracking, assortment analysis, launch monitoring, and merchandising reviews.
Why use Sephora Scraper?
- One dataset for price and product research - Current price, previous price when discounted, currency, rating, and review count arrive in the same record.
- Brand and category comparisons - Collect a single brand, a full category, or a search result set without changing tools.
- Availability tracking -
in_stockandis_low_stockshow which products are currently buyable. - Launch monitoring -
is_newandis_exclusivemark products with a new or Sephora-exclusive badge. - Predictable run size -
results_wantedcaps saved records andmax_pagescaps how deep a run goes. - Export and automation - Download JSON, CSV, Excel, or XML, or send the dataset to another service after a run.
What data can you extract from Sephora?
| Field | Type | Description |
|---|---|---|
product_id | String | Sephora product identifier |
brand | String | Brand name |
title | String | Product name |
image_url | String | Product image URL |
product_url | String | Product detail page URL |
current_price | Number | Active listed price |
original_price | Number | Earlier price when a discount is shown |
currency | String | Currency for the storefront locale, such as AED for ae-en |
rating | Number | Average customer rating |
review_count | Integer | Number of customer reviews |
shades | String | Variant count label, such as 8 shades |
is_new | Boolean | Product carries a new badge |
is_exclusive | Boolean | Product carries a Sephora-exclusive badge |
in_stock | Boolean | Product is currently in stock |
is_low_stock | Boolean | Product is marked as low stock |
product_type | String | Product type classification |
product_nature | String | Product nature or formulation category |
scraped_at | String | ISO timestamp for the collected record |
A field is left out when Sephora does not publish that value for the product. This keeps records compact without filling gaps with guesses.
How to use Sephora Scraper
- Open Sephora Scraper in Apify Console.
- Paste a public Sephora category, brand, search, or product URL into
startUrl, or keep the default new makeup URL. - Set
results_wantedto the number of products you need. - Set
max_pagesto limit how many result pages the run reads. - Leave the proxy setting as it is for normal runs, or provide your own proxy URLs for high-volume work.
- Start the run and check the dataset preview.
- Download the dataset or connect it to a spreadsheet, webhook, or automation.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrl | String | No | New makeup category URL on sephora.me | Public Sephora category, brand, search, or product URL. The locale comes from the URL prefix, such as ae-en or sa-en. |
results_wanted | Integer | No | 20 | Maximum number of products to save |
max_pages | Integer | No | 10 | Maximum number of result pages to read. Each page holds up to 36 products. |
proxyConfiguration | Object | No | Residential Apify Proxy | Optional proxy settings. Apify Proxy is used only on the Apify platform; custom proxy URLs also work locally. |
Output Data
Each dataset item is one product. Numbers are numeric values, and stock and badge fields are booleans when the source supplies them.
| Field | Type | Description |
|---|---|---|
product_id | String | Stable product identifier |
brand | String | Brand name |
title | String | Product title |
current_price | Number | Current price |
original_price | Number | Earlier price when discounted |
currency | String | Currency code |
rating | Number | Average rating |
review_count | Integer | Review total |
shades | String | Variant or shade count |
in_stock | Boolean | Current stock status |
is_low_stock | Boolean | Current low-stock status |
is_new | Boolean | New product badge |
is_exclusive | Boolean | Sephora-exclusive badge |
product_type | String | Product type |
product_nature | String | Product nature or formulation category |
product_url | String | Product page link |
image_url | String | Product image link |
scraped_at | String | Collection timestamp |
Usage Examples
Quick validation run
Use the default category with a small limit to check the dataset before a larger run.
{"results_wanted": 20,"max_pages": 3}
Collect a category
Paste a category URL. The last path segment identifies the category.
{"startUrl": "https://www.sephora.me/ae-en/shop/new/view-all/new-in-makeup/new-makeup","results_wanted": 100,"max_pages": 10}
Collect a brand
Paste a brand URL to collect that brand's products.
{"startUrl": "https://www.sephora.me/ae-en/brands/dior/DIOR","results_wanted": 100,"max_pages": 10}
Search products
Paste a search URL with a q parameter.
{"startUrl": "https://www.sephora.me/ae-en/search?q=lipstick","results_wanted": 50,"max_pages": 3}
Collect one product
Paste a product detail URL to save that single product.
{"startUrl": "https://www.sephora.me/ae-en/p/l-heure-bleue-eau-de-parfum/P10064416","results_wanted": 1,"max_pages": 1}
Run a larger collection with your own proxy
Provide proxy URLs for a large snapshot or a frequent schedule.
{"startUrl": "https://www.sephora.me/ae-en/shop/new/view-all/new-in-makeup/new-makeup","results_wanted": 500,"max_pages": 20,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
A real record from the default new makeup category. Optional fields such as original_price are absent when Sephora does not show an earlier price.
{"product_id": "P1000215647","brand": "MAKEUP BY MARIO","title": "Soft Shimmer™ Long Wearing Cream Shadow","image_url": "https://img-product.sephora.me/dw/image/v2/BKWK_PRD/on/demandware.static/-/Sites-masterCatalog_Sephora/default/dw4dc33cd5/images/hi-res/SKU/SKU_7859/821357_swatch.jpg","product_url": "https://www.sephora.me/ae-en/p/soft-shimmertm-long-wearing-cream-shadow/P1000215647","current_price": 135,"currency": "AED","rating": 4.7,"review_count": 117,"shades": "8 shades","is_new": true,"is_exclusive": true,"in_stock": true,"is_low_stock": false,"product_type": "master","scraped_at": "2026-10-23T07:24:35.400Z"}
Tips for Best Results
- Start small - Run 20 to 50 products to confirm the URL and output before raising the limit.
- Use stable URLs - Permanent category pages work better than short-lived campaign links for scheduled runs.
- Keep the locale consistent - Use the same country and language prefix when comparing datasets from different dates.
- Set both limits -
results_wantedcontrols saved products, andmax_pagescontrols how deep the run goes. - Check the currency - Price currency follows the storefront locale in
startUrl. - Read missing values as source data - A missing price, rating, shade count, or stock signal usually means Sephora did not publish it for that product.
Integrations and Export Formats
- Google Sheets - Review category snapshots, price tables, and brand comparisons in a spreadsheet.
- Airtable - Keep a searchable product catalog with brand and availability fields.
- Webhooks - Notify another service when a run finishes.
- Make or Zapier - Send product records to reporting and alerting workflows.
- API access - Read dataset items from your own systems after a run.
Apify datasets can be exported as JSON, CSV, Excel, XML, and other supported formats.
Frequently Asked Questions
Can I collect products from a brand page?
Yes. Paste a brand URL such as https://www.sephora.me/ae-en/brands/dior/DIOR into startUrl.
Can I collect a single product?
Yes. Paste a product detail URL into startUrl and set results_wanted to 1.
Does the Actor collect categories other than new makeup?
Yes. Any public category URL on sephora.me works. The locale and category come from that URL.
Does the output include discounted prices?
Yes. current_price holds the active price, and original_price appears when a higher earlier price is available.
Why are some fields missing?
Sephora does not publish every field for every product. Missing values are omitted instead of filled with placeholders.
Does the Actor remove duplicate products?
Yes. Duplicates are dropped by product identifier or product URL before records are saved.
Can I schedule recurring Sephora monitoring?
Yes. Create an Apify schedule to run the Actor hourly, daily, or weekly, then compare datasets to track price, stock, and assortment changes.
Can I export the data to CSV or Excel?
Yes. Apify datasets can be downloaded as CSV, Excel, JSON, XML, and other formats.
Is Sephora data legal to collect?
You are responsible for complying with Sephora's terms, applicable laws, privacy requirements, and any limits on using or redistributing the data. Use this Actor for legitimate work with publicly available product information.
Related Actors
- Sephora Reviews Scraper - Collect customer reviews and ratings for Sephora products for sentiment and product research.
- Fragrantica.com Scraper - Collect perfume listings, ratings, fragrance notes, reviews, and price signals for fragrance research.
Support
For issues, feature requests, or reports about changed Sephora fields, use the Issues tab or the contact options on the Actor page in Apify Console.
Legal Notice
This Actor is intended for legitimate collection and analysis of publicly available product information. You are responsible for complying with Sephora's terms of service and all applicable laws. Do not use collected data in ways that violate privacy, intellectual property, or redistribution requirements.