Sephora API endpoint
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.
/sephora/productQuery parameters:
product_id: required. The full Sephora 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 to the real product; the
full slug is required.Notable response behavior:
variants lists every purchasable color/shade of the product, each with
its own sku, price, currency_code, and availability (InStock or
OutOfStock).review_sample is a small sample of recent reviews embedded on the
product page itself, not the full review set -- there is currently no
separate paginated reviews endpoint for this family.product_id returns 404.| Field | Filled in, of 10 checked | Values in the sample |
|---|---|---|
| id | 10 | |
| author | 10 | |
| title | 6 | “not good” and 5 other values |
| body | 10 | median 163 characters |
| rating | 10 | 1 to 5, median 4 |
| date_published | 10 | 2021-01-04 to 2026-10-11 |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| product_id | string | Yes | Full Sephora product-page slug | lip-sleeping-mask-P420652 | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sephora/product?product_id=lip-sleeping-mask-P420652" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"product_group_id": "P420652",
"name": "Lip Sleeping Mask – Intense Hydration Lip Treatment with Vitamin C",
"description": "Shop LANEIGE's Lip Sleeping Mask at Sephora.",
"brand": "LANEIGE",
"category": "lip-balm-lip-care",
"image": "https://www.sephora.com/productimages/sku/s2961324-main-hero.jpg",
"url": "https://www.sephora.com/product/lip-sleeping-mask-P420652",
"rating": 4.32,
"review_count": 22324,
"variants": [
{
"sku": "2961324",
"name": "Lip Sleeping Mask - Acai Mango Smoothie",
"color": "Acai Mango Smoothie",
"image": "https://www.sephora.com/productimages/sku/s2961324-main-hero.jpg",
"price": "25.00",
"currency_code": "USD",
"availability": "InStock"
},
{
"sku": "2743243",
"name": "Lip Sleeping Mask - Watermelon Pop",
"color": "Watermelon Pop",
"price": "24.00",
"currency_code": "USD",
"availability": "OutOfStock"
}
],
"review_sample": [
{
"id": "400508718",
"author": "megankiers",
"title": "Love this!!!",
"body": "This is my favorite product I've got at Sephora!",
"rating": 5,
"date_published": "2026-08-15"
}
],
"source_url": "https://www.sephora.com/product/lip-sleeping-mask-P420652",
"fetched_at": "2026-08-15T12:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/sephora.productResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | sephora.ProductResponse | No | ||||
| data.brand | string | No | LANEIGE | |||
| data.category | string | No | ||||
| data.description | string | No | ||||
| data.fetched_at | string | No | ||||
| data.image | string | No | ||||
| data.name | string | No | ||||
| data.product_group_id | string | No | P420652 | |||
| data.rating | number | No | 4.3 | |||
| data.review_count | integer | No | ||||
| data.review_sample | array | No | ||||
| data.review_sample[].author | string | No | ||||
| data.review_sample[].body | string | No | ||||
| data.review_sample[].date_published | string | No | ||||
| data.review_sample[].id | string | No | ||||
| data.review_sample[].rating | number | No | ||||
| data.review_sample[].title | string | No | ||||
| data.source_url | string | No | ||||
| data.url | string | No | ||||
| data.variants | array | No | ||||
| data.variants[].availability | string | No | InStock | |||
| data.variants[].color | string | No | Acai Mango Smoothie | |||
| data.variants[].currency_code | string | No | USD | |||
| data.variants[].image | string | No | ||||
| data.variants[].name | string | No | ||||
| data.variants[].price | string | No | 25.00 | |||
| data.variants[].sku | string | No | ||||
| msg | string | No | OK |
| Status | Description | Schema |
|---|---|---|
| 400 | Bad Request | #/definitions/app.Response |
| 404 | Not Found | #/definitions/app.Response |
| 429 | Too Many Requests | #/definitions/app.Response |
| 503 | Service Unavailable | #/definitions/app.Response |
Use environment variables for secrets and keep Crawlora API keys server-side.
curl -X GET "https://api.crawlora.net/api/v1/sephora/product?product_id=lip-sleeping-mask-P420652" \
-H "x-api-key: $CRAWLORA_API_KEY"