Sephora Scraper — Beauty Prices in 6 European Countries avatar

Sephora Scraper — Beauty Prices in 6 European Countries

Pricing

from $1.20 / 1,000 result scrapeds

Go to Apify Store
Sephora Scraper — Beauty Prices in 6 European Countries

Sephora Scraper — Beauty Prices in 6 European Countries

Scrape product data from Sephora France and Spain. Get names, brands, prices, discounts, price per unit, ratings, review counts, stock flag and listing rank for perfume, make-up, skincare and hair.

Pricing

from $1.20 / 1,000 result scrapeds

Rating

0.0

(0)

Developer

Studio Amba

Studio Amba

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

19 hours ago

Last modified

Categories

Share

Sephora Scraper

Pull beauty product data from the Sephora storefronts in France and Spain. The actor returns names, brands, prices, promotions, unit prices, ratings, review counts, a stock flag and the listing rank for any Sephora category page.

Sephora sells perfume, make-up, skincare, body care and hair products from its own Sephora Collection line and from several hundred other brands. One record shape covers every department and both countries, so the same run settings give comparable rows across markets.

How to scrape Sephora data

Choose a country, then either pick departments or paste category page URLs into categoryUrls. The actor pages through each category until it reaches maxResults or the end of the listing.

Sephora blocks plain requests. This actor sends every request through Bright Data Web Unlocker, so you do not need your own proxy or browser setup.

Each category page carries the product data inside the page itself, 24 products per page. The actor reads that data directly, which keeps the cost per product low.

If you leave departments and categoryUrls empty, the actor scrapes the hair department of the chosen country.

To find a category URL, open the country site, go down to the category you want, and copy the address from the browser. The address ends in -c and a number, for example https://www.sephora.fr/shop/cheveux-c307/. Remove any filter, sort or page parameters after the question mark.

Countries

Country inputSiteCurrency
frsephora.frEUR
essephora.esEUR

Department and category IDs are the same on every site. The hair department is C307 in both countries, make-up is C302 and perfume is C301. Only the URL path is translated.

Input

FieldTypeDescription
countryselectfr or es (default fr)
departmentslistperfume, makeup, face, body, hair. Spain has no body department
categoryUrlslist of URLsCategory pages from the chosen country site, without filters or sorting
maxResultsnumberMaximum number of products across all categories (default 100)
brightDataApiKeytextOptional. Falls back to the actor's own key when empty

Search pages, filter parameters and sort parameters are not supported. The actor only reads category pages.

What you get back

Every product is one record. Fields with no value on the site are left out of the record.

FieldDescription
productIdSephora master product ID, for example P10047623
nameProduct name
brandBrand name
descriptionShort descriptor shown under the name
variantNameSize or shade of the default variant
priceCurrent price in the local currency
currencyEUR
originalPricePrice before the promotion, only on reduced products
discountPercentPromotion percentage, only on reduced products
priorPriceLowest recent price when the site shows one
pricePerUnitUnit price text such as 4,80 EUR / 100ml
availableWhether the default variant can be ordered
ratingAverage review rating out of 5
reviewCountNumber of reviews
variantsCountNumber of sizes or shades
skuSephora SKU of the default variant
tagsBadges such as New, Deal or Exclusive
imageUrlMain product image
urlProduct page
categoryIdNumeric category ID from the URL
categoryUrlListing page the product came from
rankPosition in the category's default best-seller order, starting at 1
pageListing page number
countryCountry code
languageStorefront language
scrapedAtISO timestamp

Sephora does not publish an EAN or GTIN on its listing or product pages, and it does not name a seller, so the actor has neither field.

Example output

{
"productId": "P1000210636",
"name": "The Mista",
"brand": "FENTY HAIR",
"price": 22.95,
"currency": "EUR",
"originalPrice": 23.45,
"discountPercent": 2,
"pricePerUnit": "255,00 EUR / 1L",
"available": true,
"rating": 4.5,
"reviewCount": 655,
"rank": 17,
"country": "fr",
"url": "https://www.sephora.fr/p/the-mista---duftendes-haar--und-koerperspray-P1000210636.html"
}

Use cases

  • Compare the price of the same brand across the two Sephora countries.
  • Track promotions and discount depth on a brand's range over time.
  • Follow the best-seller rank of a product inside its category.
  • Monitor ratings and review counts for a brand against its competitors.
  • Build a price index for a beauty category.

Pricing and cost

The actor is billed per result. A run's usage cost only settles after the run reaches SUCCEEDED, so the final charge shows up once the run has finished.

One request returns 24 products, so a 1,000 product run uses about 42 requests.

Run time

A category page takes a few seconds to load through Bright Data. A run of 100 products takes about one minute. Sephora hair has about 1,000 products per country, which takes under ten minutes.

If a page is blocked, the actor retries it up to four times. If the page is still lost, the run fails instead of finishing with a partial catalogue.

Limits

  • Category pages only. Keyword search is not supported.
  • The rank is the position in the default best-seller order of the category page, not a search rank.
  • Prices are the public online prices for the chosen country. Store prices and loyalty prices are not included.
  • A product that appears in several categories is returned once per run.
  • Sephora can change its page format. The actor logs a warning when fewer than 80 percent of the products on a page can be read.

Integrations

Results can be exported as JSON, CSV or Excel from the Apify console, read through the Apify API, or sent to Google Sheets, Make, Zapier and webhooks.

FAQ

Which country sites are covered? France and Spain.

Can I scrape several countries in one run? One run covers one country. Start one run per country and merge the datasets with country and productId.

Does the actor need a login? No. All data comes from public pages.

Why is originalPrice missing on most products? It is only present when Sephora shows a reduction on the product.

Is the stock level available? The actor returns whether the default variant can be ordered. Sephora does not publish a quantity in the listing.

Is scraping Sephora legal? The actor only reads public pages that do not require a login, and it stays away from the paths that Sephora's robots.txt disallows. You are responsible for how you use the data.