GET/sephora/brandsapiKey3 credits/request
Returns Sephora's full brand directory (373 brands at time of writing), sourced from the site's own A-Z brand list page. Each brand's `name` is the exact string GET /sephora/search and GET /sephora/category's repeatable `brand` filter parameter expect.
Takes no parameters.
Sampled 14 Oct 2026: 373 items. Filled in every item: brand_id, name, slug. Not in every item: is_new (30). In the sample: name: “AAVRANI” and 372 other values; is_new: true in 30 of 30.
Open in Playground
GET/sephora/categoriesapiKey3 credits/request
Returns Sephora's own live storefront category navigation (department, group, name, and slug for each), sourced from the site's own "Shop" mega-nav. Each entry's slug is directly usable as GET /sephora/category's own `slug` query parameter.
Optional: department (10 allowed values: new, makeup, skincare, fragrance, hair, bath-body, mini-size, brands, gifts-value-sets, sale-offers).
Sampled 14 Oct 2026: 67 items. Filled in every item: department, name, slug. Not in every item: group (50). In the sample: group: Face (11), Eye (11), Lip (10) and 3 more; name: “All Makeup” and 64 other values.
Open in Playground
GET/sephora/categoryapiKey5 credits/request
Returns one page of a Sephora category/browse listing (e.g. Makeup, Skincare), with the same sort and facet filters as /sephora/search. slug is the path segment after sephora.com/shop/, e.g. makeup-cosmetics. The response uses Sephora's public catalog search to keep browse listings available when the category page's legacy embedded data is absent.
Required: slug. Optional: page, sort_by (6 allowed values: featured, top_rated, new, best_selling, price_low_to_high, price_high_to_low), price_min, price_max, brand, rating_min, is_new, filter.
Sampled 14 Oct 2026: 60 items. Filled in every item: product_id, sku_id, brand_name, product_name, list_price, image_url, url. Not in every item: rating (56), review_count (56), more_colors (47), value_price (9). In the sample: brand_name: Benefit Cosmetics (29), MAC Cosmetics (19), IT Cosmetics (7) and 2 more; rating: 2 to 5, median 4.38; product_name: “Mini Fan Fest Fanning & Volumizing Mascara” and 59 other values; image_url: sephora.com; list_price: “$16.00” and 30 other values; review_count: 1 to 15,973, median 1,005; more_colors: 1 to 71, median 8; url: sephora.com.
Open in Playground
GET/sephora/productapiKey3 credits/request
Returns one Sephora product's full detail (every color/shade variant with its own price and availability, rating, review count, and a sample of recent reviews). `product_id` is the full product-page slug, e.g. `lip-sleeping-mask-P420652` -- copy it from the path segment after sephora.com/product/ on any product page; unlike some other retailers, an arbitrary or partial slug does not resolve.
Required: product_id.
Sampled 14 Oct 2026: 10 items. Filled in every item: id, author, body, rating, date_published. Not in every item: title (6). In the sample: date_published: 2021-01-04 to 2026-10-11; rating: 1 to 5, median 4; title: “not good” and 5 other values; body: median 163 characters.
Open in Playground
GET/sephora/product/questionsapiKey3 credits/request
Returns one page of a Sephora product's customer Q&A: each question plus every answer it received (text, author, whether it's a brand answer, helpful votes). product_id is the Sephora productGroupID, e.g. P420652 -- the same value /sephora/product returns as product_group_id.
Required: product_id. Optional: page.
Sampled 14 Oct 2026: 10 items. Filled in every item: id, text, submitted_at, answer_count, answers. Not in every item: author (6), has_best_answer (5). In the sample: submitted_at: 2025-12-08 to 2026-10-08; answer_count: 1 to 12, median 4; has_best_answer: true in 5 of 5; answers: median 4 entries.
Open in Playground
GET/sephora/product/reviewsapiKey3 credits/request
Returns one page of a Sephora product's full customer reviews (title, body, rating, author, helpful votes, secondary ratings, photos), plus the product's site-wide rating rollup (average rating, recommended ratio, star-count histogram). product_id is the Sephora productGroupID, e.g. P420652 -- the same value /sephora/product returns as product_group_id.
Required: product_id. Optional: page.
Sampled 14 Oct 2026: 10 items. Filled in every item: id, rating, body, author, submitted_at. Not in every item: recommended (9), title (8), helpful_votes (6), not_helpful_votes (4), photo_urls (2). In the sample: submitted_at: 2026-10-08 to 2026-10-12; rating: 2 to 5, median 5; recommended: true in 9 of 9; body: median 163 characters; photo_urls: median 1 entry; helpful_votes: 1 to 7, median 1; not_helpful_votes: 1 to 3, median 1.
Open in Playground
GET/sephora/searchapiKey3 credits/request
Searches Sephora's product catalog by keyword, with real page-based pagination. Returns products with brand, pricing, rating, and review count. Sephora's own search never returns a genuine zero-result state for a nonempty keyword -- an unrecognized/nonsense keyword still returns a full, unrelated fallback result set rather than an empty one. price_min/price_max must be provided together (whole dollars) -- upstream silently ignores a one-sided price range rather than filtering or erroring, so this endpoint rejects a one-sided range as invalid instead of passing it through. brand and filter each accept multiple values (OR'd together within the same facet); brand/rating_min/is_new/filter/price_min/price_max can all be combined with each other (AND'd together across different facets).
Required: query. Optional: page, page_size, sort_by (6 allowed values: featured, top_rated, new, best_selling, price_low_to_high, price_high_to_low), price_min, price_max, brand, rating_min, is_new, filter.
Sampled 14 Oct 2026: 40 items. Filled in every item: product_id, sku_id, brand_name, product_name, list_price, rating, review_count, image_url and 1 more. Not in every item: more_colors (39). In the sample: rating: 3.7 to 4.76, median 4.16; brand_name: “Lancôme” and 22 other values; image_url: sephora.com; product_name: “Lash Idôle Lengthening & Volumizing Mascara” and 39 other values; list_price: “$16.00 - $30.00” and 27 other values; review_count: 107 to 19,691, median 1,752; more_colors: 1 to 5, median 2; url: sephora.com.
Open in Playground
GET/sephora/storesapiKey5 credits/request
Returns Sephora physical store locations near a coordinate (address, hours, BOPIS/curbside/same-day flags). Renders through a JS-executing browser backend, unlike every other Sephora endpoint -- the store-locator data call itself is plain HTTP, but it requires a per-visit access token minted by an endpoint gated behind a bot-management JS challenge, so responses may take longer.
Required: latitude, longitude. Optional: radius, limit.
Open in Playground
GET/sephora/suggestapiKey3 credits/request
Returns Sephora's own search-box type-ahead suggestions for a partial keyword: keyword-completion terms, matching products, and trending/related categories. Sephora's own upstream never returns a genuine zero-result state for a nonempty query -- a deliberately nonsense query still returns unrelated product suggestions.
Required: query.
Sampled 14 Oct 2026: 5 items. Filled in every item: product_id, sku_id, brand_name, product_name, rating, review_count, image_url. In the sample: rating: 3.72 to 4.44, median 4.12; brand_name: “Benefit Cosmetics” and 4 other values; image_url: sephora.com; product_name: “BADgal BANG! Volumizing 36-Hour Longwear Mascara” and 4 other values; review_count: 678 to 19,691, median 6,108.
Open in Playground