sephora.com APIsephora.com ↗
Access Sephora's product catalog, SKU variants, customer reviews, brand listings, and category data via 6 structured API endpoints.
curl -X GET 'https://api.parse.bot/scraper/5e13ff7b-6caf-4ee9-ba66-b042ee663109/search_products?page=1&sort=bestselling&limit=60&query=lipstick' \ -H 'X-API-Key: $PARSE_API_KEY'
Search for products by keyword with pagination and sorting. Returns matching products, category facets, and total result count.
| Param | Type | Description |
|---|---|---|
| page | integer | Page number for pagination |
| sort | string | Sort order: 'bestselling', 'price_asc', 'price_desc' |
| limit | integer | Number of results per page |
| queryrequired | string | Search keyword |
{
"type": "object",
"fields": {
"keyword": "search keyword used",
"products": "array of product objects with brandName, displayName, productId, rating, reviews, currentSku, heroImage, targetUrl",
"categories": "array of category facets with displayName, nodeStr, recordCount",
"totalProducts": "total number of matching products"
},
"sample": {
"data": {
"keyword": "lipstick",
"products": [
{
"rating": "4.6203",
"reviews": "698",
"brandName": "MAC Cosmetics",
"heroImage": "https://www.sephora.com/productimages/sku/s2764306-main-zoom.jpg?imwidth=270",
"productId": "P510799",
"targetUrl": "/product/mac-cosmetics-m-a-cximal-silky-matte-lipstick-P510799?skuId=2764306",
"currentSku": {
"skuId": "2764306",
"listPrice": "$16.00 - $25.00"
},
"displayName": "M·A·Cximal Silky Matte 12HR Wear Lipstick"
}
],
"categories": [
{
"level": "0",
"nodeStr": "cat140006",
"displayName": "Makeup",
"recordCount": "159"
}
],
"totalProducts": 160
},
"status": "success"
}
}About the sephora.com API
The Sephora API covers 6 endpoints that surface product catalog data, customer reviews, brand listings, and search suggestions from Sephora.com. Use get_product_details to retrieve SKU variants, list prices, and availability flags for any product, or search_products to query the catalog by keyword with sorting and pagination. Each endpoint returns structured JSON ready to integrate into beauty apps, price trackers, or retail analytics pipelines.
Product Search and Discovery
The search_products endpoint accepts a required query string plus optional page, limit, and sort parameters (bestselling, price_asc, price_desc). Responses include a products array with per-item fields: brandName, displayName, productId, rating, reviews, currentSku, heroImage, and targetUrl. A categories array of facets and a totalProducts count are also returned, letting you build filtered browse experiences without separate category calls.
The get_search_autocomplete endpoint takes a query string and returns a sections object with three named arrays — Search Suggestions, Products, and Categories — along with per-section result counts in total_num_results_per_section. This is useful for building live search UIs or auditing which product names Sephora surfaces for a given term.
Product Details and SKU Variants
get_product_details takes a Sephora product_id (e.g., P510799) and returns the full product object. Key response fields include currentSku (with skuId, listPrice, skuImages, and actionFlags), regularChildSkus (all available variant SKUs with pricing and images), and ancillarySkus for related product recommendations. Availability state is expressed through actionFlags inside each SKU object.
Reviews, Brands, and Category Browsing
get_product_reviews returns paginated review data for a product. Each entry in the Results array includes Id, Rating, ReviewText, Title, UserNickname, SubmissionTime, Photos, and ContextDataValues. Control pagination with limit and offset params. get_brands requires no inputs and returns a full brand list with name, slug, and product_count aggregated across Skincare, Makeup, Fragrance, and Hair categories. get_category_products accepts a category_id (e.g., cat140006 for Makeup) with optional page, sort, and limit, and returns a response object containing a results array, facets, groups, sort_options, and total_num_results.
- Track price changes across SKU variants using
listPricefromget_product_details - Build a keyword search feature for a beauty app using
search_productswithbestsellingsort - Aggregate customer sentiment by pulling
RatingandReviewTextfromget_product_reviews - Generate a brand directory with product counts using
get_brands - Populate category browsing pages using
get_category_productswith facets and sort options - Power live search autocomplete with categorized suggestions from
get_search_autocomplete - Compare product availability flags across variants using
actionFlagsinregularChildSkus
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Sephora have an official public developer API?+
What does `get_product_details` return beyond basic product info?+
currentSku (with skuId, listPrice, skuImages, and actionFlags), regularChildSkus listing all purchasable variants with their own pricing and images, and ancillarySkus for associated product recommendations. heroImageAltText is also included for accessibility or SEO use cases.Does the reviews endpoint return Q&A or expert answers?+
get_product_reviews returns only customer-submitted reviews with fields like Rating, ReviewText, Title, UserNickname, SubmissionTime, Photos, and ContextDataValues. Q&A content is not currently covered. You can fork this API on Parse and revise it to add a Q&A endpoint.How does pagination work across endpoints?+
search_products and get_category_products use page and limit parameters. get_product_reviews uses offset and limit instead. get_brands and get_search_autocomplete do not support pagination — brands are returned in a single response aggregated across four major categories, and autocomplete results are returned in full per query.