Sephora product reviews

GET https://api.api.sh/sephora/v1/reviews
1 credit / call e-commerce try it in the playground →

Reviews of a Sephora product, up to 100 a page: rating, title, text, date, author, recommended or not, helpful votes, verified purchase, free-sample and staff flags, the reviewer's traits (skin tone and type, eye and hair colour, age range, concerns), the shade or size reviewed, photos, videos and brand replies. Also returns the product's rating distribution, recommendation counts and the breakdown of reviewers by trait. Filter by rating, photos, traits, keywords and more.

Every response includes credits_used: the credits this call cost.

Parameters

nametypedescription
product_idrequired string Sephora product id (P followed by digits) or a product link. Example: P510799
page integer Page number.
limit integer Reviews per page (1-100, default 100).
sort newest | oldest | highest | lowest | helpful | relevance Order (default newest).
rating string Only these star ratings, comma separated (e.g. 1,2).
photos 1 | 0 1: only reviews with photos.
recommended 1 | 0 1: only reviewers who recommend it; 0: only those who do not.
verified 1 | 0 1: only verified purchases.
incentivized 1 | 0 1: only reviews of free samples; 0: leave them out.
skin_tone string Reviewer skin tone value(s) from stats.reviewer_traits.skinTone, comma separated (e.g. fair,light).
skin_type string Reviewer skin type value(s), e.g. oilySk, drySk, comboSk, normalSk.
eye_color string Reviewer eye colour value(s), e.g. brown, blue.
hair_color string Reviewer hair colour value(s).
age_range string Reviewer age range value(s) from stats.reviewer_traits.ageRange.
skin_concerns string Reviewer skin concern value(s) from stats.reviewer_traits.skinConcerns.
hair_type string Reviewer hair type value(s).
q string Only reviews that mention this text.

Every endpoint also takes fresh, raw, fields (see lean responses and caching).

Example

curl "https://api.api.sh/sephora/v1/reviews?product_id=P510799" \
  -H "x-api-key: $APISH_KEY"

Response

A JSON object with the fields described above, plus raw (the source's own data), cached, fetched_at and credits_used. Errors return {"success": false, "error": "…"} with the HTTP status (see errors). A lookup that ran but found nothing (404) costs the price above; refused calls and errors on our side are free (what's charged).

The fastest way to see the full response is the playground: it runs this endpoint with your account and shows the exact JSON.