Cookbook·Beauty·sephora.com

Scrape Sephora product pages, shades and reviews

Price, sale price, every shade with its stock state, rating and review count from sephora.com, without a browser. Works for the US, Canada and France storefronts.

99.7% success · Aug 2026No browser neededStandard price · 1 credit

Measured on Crawlbase

99.7% of product and search fetches succeeded in August 2026. Only 0.4% of calls used the JavaScript token, and the ones that did got the same data back. Sephora is one of the cleanest large sites we serve.

The call

Run in Playground
# Product page as JSON: price, shades, stock, rating
curl "https://api.crawlbase.com/?token=YOUR_TOKEN&autoparse=true&country=US&url=https%3A%2F%2Fwww.sephora.com%2Fproduct%2Frare-beauty-soft-pinch-liquid-blush-P97989778"

# Search results, first page
curl "https://api.crawlbase.com/?token=YOUR_TOKEN&autoparse=true&country=US&url=https%3A%2F%2Fwww.sephora.com%2Fsearch%3Fkeyword%3Dliquid%2520blush"

Parameters that matter

ParameterSet it toWhy
javascriptleave unsetEverything on the product page is in the first response. A browser doubles the price and returns the same JSON.
countryUS, CA or FRSephora shows the storefront of the visitor's country and prices differ. Match the country to the domain: sephora.com for US and CA, sephora.fr for France.
autoparsetrueReturns the product as JSON. Without it you get the HTML and parse the embedded state yourself.
page_waitneverOnly applies with a browser. Not needed here.

Fields you get

namestring
brandstring
pricenumber
sale_pricenumber | null
currencyUSD | CAD | EUR
ratingnumber (0 to 5)
review_countnumber
variants[].shadestring
variants[].skustring
variants[].in_stockboolean
imagesurl[]
category_pathstring[]

What breaks, and the fix

Retired SKUs answer 404. A product Sephora removed returns a 404 with cb_status 200. Treat it as "gone", not as a retry; it is counted as a success because the site answered.
Search pages stop at 60 results per page. Use currentPage= in the URL. Sorting defaults to "bestselling", which reorders between requests; pin sortBy=NEW or sortBy=PRICE_LOW_TO_HIGH when you paginate a full list.
Reviews are already on the product page. Rating and review count come with the product JSON. Individual review text needs the reviews endpoint; ask support if you need it, it is on the queue.

Run it on a schedule

For a catalogue refresh, push the product URLs to the Crawler with store=true and read results from Cloud Storage. 20,000 products complete in about 15 minutes at the default concurrency and cost 20,000 credits.

Questions

Do I need a browser to scrape Sephora?

No. The product JSON is in the first response; almost every successful call in the measured month ran without one.

How much does a Sephora product page cost on Crawlbase?

One credit. Sephora is in the standard tier.

Can I get prices for sephora.fr?

Yes, with country=FR and the sephora.fr URL. Prices return in EUR.

Site names identify the pages a recipe fetches. Crawlbase is not affiliated with any site listed. Use recipes within the acceptable use policy.Measured numbers from August 2026, refreshed monthly