Sephora API endpoint
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.
/sephora/categoryQuery parameters:
slug: required. The category-page slug, e.g. makeup-cosmetics --
the path segment after sephora.com/shop/. See
sephora-categories to discover every valid
slug (department, group, and name for each) rather than reading it by
hand off sephora.com.page: optional, 1-based, defaults to 1.sort_by: optional, defaults to featured. One of: featured,
top_rated, new, best_selling, price_low_to_high,
price_high_to_low.price_min/price_max: optional, whole dollars. Must be provided
together -- see /sephora/search's docs for why.brand: optional, repeatable. One or more exact brand names to filter
to, OR'd together. See sephora-brands to discover
every accepted value.rating_min: optional, 1 to 4.is_new: optional, defaults to false.filter: optional, repeatable, facet:value form (e.g.
formulation:serum). Facet must be one of: benefits,
ingredientpreferences, colorfamily, formulation, size,
shoppingpreferences, agerange, skintype, finish, skinconcerns,
coverage, hairtype, hairconcerns, hairtexture.All facet filters are identical to /sephora/search and combine the same
way (AND across facets, OR within a facet) -- see that endpoint's docs for
the full mechanism.
Notable response behavior:
display_name is derived from the supplied category slug.related_categories lists related catalog searches when present.category_id is omitted when Sephora's catalog search does not supply a
stable category identifier.| Field | Filled in, of 60 checked | Values in the sample |
|---|---|---|
| product_id | 60 | |
| sku_id | 60 | |
| brand_name | 60 | Benefit Cosmetics (29), MAC Cosmetics (19), IT Cosmetics (7) and 2 more |
| product_name | 60 | “Mini Fan Fest Fanning & Volumizing Mascara” and 59 other values |
| list_price | 60 | “$16.00” and 30 other values |
| rating | 56 | 2 to 5, median 4.38 |
| review_count | 56 | 1 to 15,973, median 1,005 |
| more_colors | 47 | 1 to 71, median 8 |
| image_url | 60 | sephora.com |
| url | 60 | sephora.com |
| value_price | 9 | “$56.00” and 8 other values |
| Parameter | Type | Required | Default | Description | Example |
|---|---|---|---|---|---|
| slug | string | Yes | Category-page slug | makeup-cosmetics | |
| page | integer | No | 1 | Result page, 1-based, defaults to 1 | 1 |
| sort_by | string | No | featured | Sort order, defaults to featured Allowed values: featured, top_rated, new, best_selling, price_low_to_high, price_high_to_low. | featured |
| price_min | integer | No | Minimum price in whole dollars; must be set together with price_max | 15 | |
| price_max | integer | No | Maximum price in whole dollars; must be set together with price_min | 30 | |
| brand | array<string> | No | One or more exact brand names to filter to (OR'd together); repeat the param for multiple values | Lancôme | |
| rating_min | integer | No | Minimum star rating, 1 to 4 | 4 | |
| is_new | boolean | No | When true, filters to products flagged New | false | |
| filter | array<string> | No | Additional facet:value filters, repeat the param for multiple; facet must be one of: benefits, ingredientpreferences, colorfamily, formulation, size, shoppingpreferences, agerange, skintype, finish, skinconcerns, coverage, hairtype, hairconcerns, hairtexture | formulation:serum | |
| x-api-key (header) | string | Yes | API key required |
curl -X GET "https://api.crawlora.net/api/v1/sephora/category?slug=makeup-cosmetics&page=1&sort_by=featured&is_new=true" \ -H "x-api-key: $CRAWLORA_API_KEY"
{
"code": 200,
"msg": "OK",
"data": {
"slug": "makeup-cosmetics",
"display_name": "makeup cosmetics",
"page": 1,
"page_size": 60,
"sort_by": "featured",
"total_products": 2492,
"count": 2,
"related_categories": [
"Face",
"Fragrance"
],
"products": [
{
"product_id": "P467208",
"sku_id": "2417145",
"brand_name": "Lancôme",
"product_name": "Lash Idôle Lengthening & Volumizing Mascara",
"list_price": "$16.00 - $30.00",
"rating": 4.5012,
"review_count": 10757,
"more_colors": 2,
"image_url": "https://www.sephora.com/productimages/sku/s2417145-main-zoom.jpg",
"url": "https://www.sephora.com/product/lancome-lash-idole-lash-lifting-volumizing-mascara-P467208?skuId=2417145"
}
],
"source_url": "https://www.sephora.com/shop/makeup-cosmetics?currentPage=1",
"fetched_at": "2026-08-15T12:00:00Z"
}
}Request schema
No body schema
Response schema
#/definitions/sephora.categoryResponseDoc
| Field | Type | Required | Enum | Bounds | Example | Description |
|---|---|---|---|---|---|---|
| code | integer | No | 200 | |||
| data | sephora.CategoryResponse | No | ||||
| data.brand | array | No | ||||
| data.category_id | string | No | ||||
| data.count | integer | No | ||||
| data.display_name | string | No | Makeup | |||
| data.fetched_at | string | No | ||||
| data.filter | array | No | ||||
| data.is_new | boolean | No | ||||
| data.page | integer | No | 1 | |||
| data.page_size | integer | No | 60 | |||
| data.price_max | integer | No | ||||
| data.price_min | integer | No | ||||
| data.products | array | No | SearchProduct record, 12 fields: brand_name, image_url, list_price, more_colors, product_id, product_name, rating, review_count, sku_id, sponsored, url, value_price. Described under Sephora product search API. | |||
| data.rating_min | integer | No | ||||
| data.related_categories | array | No | ||||
| data.slug | string | No | makeup-cosmetics | |||
| data.sort_by | string | No | featured | |||
| data.source_url | string | No | ||||
| data.total_products | integer | No | 2492 | |||
| 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/category?slug=makeup-cosmetics&page=1&sort_by=featured&is_new=true" \
-H "x-api-key: $CRAWLORA_API_KEY"