Researches Lululemon's catalog — category navigation, category listings, product detail with pricing/sizes/reviews, curated outfit recommendations, and the physical store directory — using the Crawlora API, returning clean JSON. Use when the user asks to browse a Lululemon category, look up a Lululemon product's price/sizes/reviews, find what a Lululemon item is styled with, or locate a nearby Lululemon store — instead of scraping shop.lululemon.com.
Scanned 8/14/2026
Install via CLI
openskills install Crawlora-org/crawlora-skills---
name: lululemon-research
description: Researches Lululemon's catalog — category navigation, category listings, product detail with pricing/sizes/reviews, curated outfit recommendations, and the physical store directory — using the Crawlora API, returning clean JSON. Use when the user asks to browse a Lululemon category, look up a Lululemon product's price/sizes/reviews, find what a Lululemon item is styled with, or locate a nearby Lululemon store — instead of scraping shop.lululemon.com.
---
# Lululemon research
Browse Lululemon's category navigation and listings, pull full product
detail (sizes, colors, price, sale status, reviews), look up curated
outfit/style recommendations for a product color, and search the physical
store directory — all as normalized JSON from the Crawlora API, with no
HTML scraping.
## When to use this skill
- "What's in Lululemon's [department]?" / "browse this Lululemon category."
- "What does this Lululemon product cost, and what sizes/colors are in
stock?"
- "What's this Lululemon item styled with?" / "show the outfit for this
product color."
- "Find a Lululemon store near [city/zip]."
- "Pull the reviews for this Lululemon product."
## Setup (one-time)
- Get a free Crawlora API key (2,000 credits/mo, no card) at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).
- `export CRAWLORA_API_KEY=sk_your_key_here`
- All requests: `x-api-key: $CRAWLORA_API_KEY` against
`https://api.crawlora.net/api/v1`. Missing/invalid key → `401`.
## How it works
1. **Browse the nav** — `/lululemon/categories` (optional `section`) lists
every navigable category with its display name, breadcrumb, and the
`category`/`cdp_hash` pair the next step needs.
2. **List a category** — `/lululemon/category` (`category`, `cdp_hash`,
paginated with `page`/`page_size`) returns that category's products with
pricing, sale detection, sizes, colors, and style numbers — one
representative color/price per product.
3. **Detail** — `/lululemon/product/{product_id}` (`product_id` from a
category result's `id` field) fetches every purchasable color/size SKU
with its own price, sale status, live availability, plus aggregate
rating and reviews when the product has any.
4. **Outfit lookup** — `/lululemon/outfit` (`unified_id` from the product's
`unified_id` field, `color_code` from one of its `colors[].code`
entries) returns the anchor product plus every complementary item in
each curated styled look.
5. **Stores** — `/lululemon/stores` (optional `country`/`state`, or
`lat`+`lng`+`radius_miles`) returns the physical store directory with
hours and amenities.
Full endpoint list, methods, and params: [`reference/endpoints.md`](reference/endpoints.md).
## Calling the API
```sh
# Browse a top-level nav section for its categories:
scripts/crawlora.sh /lululemon/categories section="Women" | jq '.'
# List a category's products (category + cdp_hash come from lululemon/categories):
scripts/crawlora.sh /lululemon/category category="women-new-styles" cdp_hash="n14f1wz6o10" page=1 | jq '.'
# Product detail (product_id is a path param):
scripts/crawlora.sh /lululemon/product/prod123456 | jq '{title,price,sizes}'
# Outfit recommendations for one product color:
scripts/crawlora.sh /lululemon/outfit unified_id="abc123" color_code="0001" | jq '.'
```
Raw `curl` fallback:
```sh
curl -fsS -H "x-api-key: $CRAWLORA_API_KEY" \
"https://api.crawlora.net/api/v1/lululemon/category?category=women-new-styles&cdp_hash=n14f1wz6o10" | jq '.'
```
## Endpoint reference
See [`reference/endpoints.md`](reference/endpoints.md) for every Lululemon
endpoint this skill uses (method, path, params, description).
## Examples
- **Category sweep:** `/lululemon/categories` to find a department's
`category`/`cdp_hash`, then `/lululemon/category` paginated with
`page`/`page_size` to list products, prices, and sale status.
- **Product due diligence:** `/lululemon/product/{product_id}` for full
color/size availability, price, and reviews, using the `id` from a
category listing result.
- **Outfit build:** `/lululemon/product/{product_id}` to get a product's
`unified_id` and `colors[].code`, then `/lululemon/outfit` with those two
to see what it's styled with.
- **Store lookup:** `/lululemon/stores` with `lat`/`lng`/`radius_miles`, or
`country`/`state`, to find nearby locations and hours.
## Notes & limits
- **Credits / pay-on-success:** billed only on `2xx`; free tier 2,000 credits/mo.
Key at [https://crawlora.net](https://crawlora.net?utm_source=github&utm_medium=referral&utm_campaign=crawlora-skills).
- **Public data only** — public Lululemon storefront/store-directory pages;
respect Lululemon's terms.
- **Security:** key lives in `CRAWLORA_API_KEY` only — never hardcode, query-param, or commit it.
- **No free-text search endpoint** — discovery is category-based only:
`/lululemon/categories` → `/lululemon/category`, not a keyword search.
- `product_id` is a **path** param on `/lululemon/product/{product_id}`,
not a query param.
- `/lululemon/category` pagination is real: a `page` past the category's
last page returns an empty `products` array, not an error. An
unrecognized `category`/`cdp_hash` pair returns `404`.
- `unified_id`/`color_code` for `/lululemon/outfit` come from a
`/lululemon/product` result — `unified_id` is a different id space than
that same product's `product_id`. An unrecognized pair returns `404`.
- `/lululemon/stores` has no live geo-search API — filters (`country`,
`state`, `lat`/`lng`/`radius_miles`) are applied locally over the full
directory (480 US + 86 Canada locations as of this endpoint's own
research); `lat`/`lng` must be passed together.
No comments yet. Be the first to comment!