Endpoint Playground
Browses an Ulta Beauty category page's product grid, with real page-based pagination and the category's own guided-navigation refinement options. category accepts a category path or full URL copied from Ulta's own site navigation (e.g. shop/makeup/eyes/mascara). filter narrows results using Ulta's own guided-navigation facet-code shape (e.g. BENEFIT--WATERPROOF, or a comma-joined combination of codes) -- discover valid codes for a category from that category's own response facets field, whose value is ready to use directly as this parameter. An unrecognized category returns 404.
14 Oct 2026: 71 products; 9 fields had a value in every checked item and 3 varied between items.
Sample value profiles: variant_label: 2 sizes (22), 3 sizes (20), 4 sizes (7) and 2 more; rating: 3.6 to 4.9, median 4.6; brand_name: “The Ordinary” and 29 other values.
curl 'https://api.crawlora.net/api/v1/ulta/category?category=shop%2Fmakeup%2Feyes%2Fmascara' \
-H "x-api-key: $CRAWLORA_API_KEY"| Parameter | Type | Required | Prefilled value | Description |
|---|---|---|---|---|
| category | string | Yes | shop/makeup/eyes/mascara | Ulta category path or URL |
| filter | string | No | Guided-navigation facet code(s), comma-joined for multiple | |
| page | integer | No | Result page, 1-based, defaults to 1 |
{
"code": 200,
"msg": "OK",
"data": {
"category": "shop/skin-care/cleansers",
"page": 1,
"page_size": 64,
"count": 2,
"result_count": 1161,
"has_more": true,
"products": [
{
"product_id": "xlsImpprod5140065",
"sku_id": "2254420",
"brand_name": "CeraVe",
"product_name": "Foaming Facial Cleanser",
"list_price": "$5.99 - $18.99",
"rating": 4.6,
"review_count": 19250,
"variant_label": "4 sizes",
"image_url": "https://media.ultainc.com/i/ulta/2254420",
"url": "https://www.ulta.com/p/foaming-facial-cleanser-xlsImpprod5140065?sku=2254420"
}
],
"facets": [
{
"label": "Combination Skin Type",
"value": "SKIN_TYPE--COMBINATION"
},
{
"label": "On Sale",
"value": "SPECIAL_OFFER--SALE"
}
],
"source_url": "https://www.ulta.com/dxl/graphql?...",
"fetched_at": "2026-08-11T10:00:00Z"
}
}The sample response, schema and code snippets below work without an account. Sending a live request needs an API key.