Lululemon Product Scraper avatar

Lululemon Product Scraper

Pricing

from $6.00 / 1,000 dataset items

Go to Apify Store
Lululemon Product Scraper

Lululemon Product Scraper

Scrape lululemon products by keyword, category, URL or full catalog — name, current/list/sale price, size-level stock, colors, images, fabric and fit as structured JSON. Track markdowns and stock for price monitoring and resale. Pay only for the results you get.

Pricing

from $6.00 / 1,000 dataset items

Rating

0.0

(0)

Developer

axly

axly

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

7 days ago

Last modified

Share

Turn any lululemon keyword, category, product URL, or the entire catalog into clean, structured JSON — with size-level stock, current/list/sale prices, colors, images, fabric and fit. Runs on lululemon's own product API, so results are fast and complete. No proxy, no login, no CAPTCHA solving on your side.

Not affiliated with, endorsed by, or sponsored by lululemon athletica inc. Use responsibly and in line with applicable terms and laws.

Who it's for

  • Price & markdown intelligence — track prices, "We Made Too Much" markdowns and stock across the catalog over time.
  • Resellers & arbitrage — spot drops, sale %, and which sizes/colors are still available on the official store.
  • E-commerce, affiliate & catalog feeds — a clean, incremental product feed (name, price, variants, images) for comparison sites and marketplaces.
  • Analysts & researchers — assortment, pricing and sustainability studies.
  • AI / agents — call it from an MCP-enabled assistant to pull live product data.

What you get (output fields)

FieldTypeDescription
id, legacyId, unifiedIdstringProduct identifiers.
namestringProduct name.
brand, gender, tierstringBrand, gender, product tier.
categorystringCategory (e.g. "Leggings").
urlstringFull product page URL.
currencystringUSD or CAD (per locale).
price, priceMaxnumberCurrent price range (sale price when discounted).
listPrice, listPriceMaxnumberOriginal list price range.
salePricenumberLowest sale price (present when on sale).
onSalebooleanWhether any SKU is discounted.
inStockbooleanWhether any size is available.
availableSizes, sizes, inseamsarraySizes in stock, all sizes, inseams.
skuCountintegerNumber of SKUs (size × color × inseam).
skusarrayPer-SKU: size, inseam, color, listPrice, salePrice, isAvailable, isLowStock, fulfillmentType, isFinalSale.
colors, colorNames, colorCountarray/intColor options and count.
image, imagesstring/arrayPrimary image + full image set.
descriptionstringMarketing description.
fabric, fit, fitDescriptionstringFabric, fit name and description.
featuresarrayProduct feature bullets.
designedFor, activitiesstring/arrayIntended activity/use.
highlights, collectionsarrayBadges (e.g. "Best Gift") and collection.
sustainabilitystringSustainability claim, when present.
reviewsIdstringBazaarvoice reviews id (for cross-referencing reviews).
source, locale, lastmod, scrapedAtstringProvenance and timestamps.

Empty/irrelevant fields are omitted per row, so the output stays clean.

High-value use cases

  • Daily price & markdown tracking — schedule scrapeFullCatalog with updatedSince to capture only what changed since your last run, then diff prices and onSale to detect markdowns the moment they land.
  • Size-availability monitoring — watch availableSizes / skus[].isAvailable on a set of productUrls to know exactly when a size or color sells out or restocks.
  • Category assortment snapshots — pull an entire category (e.g. women's leggings) with one categoryUrls entry to analyze breadth, pricing tiers and color counts.
  • Competitive & resale intelligence — compare official-store price and stock against resale marketplaces to price inventory or find arbitrage.
  • Product feed for a site or app — keep a comparison site or app in sync with a nightly incremental catalog crawl.

Input parameters

FieldTypeDefaultDescription
searchQueriesstring[]["align leggings"]Keywords to search; each is fully paginated.
categoryUrlsstring[]Category pages, e.g. https://shop.lululemon.com/c/women-leggings/n1udsq.
productUrlsstring[]Product URLs or bare IDs (prod8780551, nydfvgl10k); always fetched with full detail.
scrapeFullCatalogbooleanfalseCrawl the full product sitemap for the locale (~4,000 styles).
updatedSincestringCatalog only: ISO date; scrape only products modified on/after it (incremental).
includeDetailsbooleantrueEnrich each product with full detail (SKUs, fabric, fit, images). Turn off for lighter rows.
localestringen-usen-us (USD), en-ca (CAD), fr-ca (CAD).
sortstring""new_arrivals, top_rated, price_high_to_low, price_low_to_high.
maxItemsinteger100Stop after this many products across all sources.
filtersstringAdvanced raw refinement string (e.g. a color filter).
proxyConfigurationobjectoffOptional Apify proxy; not needed for normal use.

Provide at least one of searchQueries, categoryUrls, productUrls, or set scrapeFullCatalog=true.

Example input

{
"searchQueries": ["align leggings"],
"includeDetails": true,
"locale": "en-us",
"sort": "price_low_to_high",
"maxItems": 50
}

Example output (one row, trimmed)

{
"id": "prod8780551",
"legacyId": "prod8780551",
"unifiedId": "Align-Pant-Full-Length-28",
"reviewsId": "Align_Pant_Full_Length_28",
"name": "lululemon Align™ High-Rise Pant 28\"",
"brand": "lululemon",
"gender": "Women",
"category": "Leggings",
"url": "https://shop.lululemon.com/p/womens-leggings/Align-Pant-Full-Length-28/_/prod8780551",
"currency": "USD",
"price": 98,
"listPrice": 98,
"onSale": false,
"inStock": true,
"availableSizes": ["0", "2", "4", "6", "8", "10", "12"],
"colorCount": 12,
"skuCount": 111,
"skus": [
{"id": "124926329", "size": "0", "inseam": "28\"", "color": "True Navy",
"listPrice": 98, "currency": "USD", "isAvailable": true, "fulfillmentType": "ship"}
],
"fabric": "Nulu™",
"fit": "Tight",
"designedFor": "Yoga",
"activities": ["Dance", "Pilates", "Yoga"],
"images": ["https://images.lululemon.com/is/image/lululemon/LW5JYYS_077007_1"],
"source": "search:align leggings",
"locale": "en-us",
"scrapedAt": "2026-08-29T00:00:00Z"
}

Scheduling & integrations

  • Schedule runs (hourly/daily) from the Apify Console to keep a price/stock feed fresh; pair scrapeFullCatalog with updatedSince for cheap incremental syncs.
  • Webhooks can fire on run completion to push new data into your systems.
  • Export to JSON, CSV, Excel or the API, or connect to Google Sheets, Make, Zapier, Airbyte or S3 via Apify's integrations.
  • Every run also resumes from a checkpoint if interrupted — no duplicate rows.

Use it from an AI assistant (MCP)

This Actor works with the Apify MCP server, so an MCP-enabled assistant (Claude, ChatGPT, VS Code, etc.) can call it as a tool — e.g. "get lululemon align leggings prices and which sizes are in stock" — and receive the structured rows above. See Apify's MCP documentation to connect it.

FAQ

Do I need a proxy or account? No. The Actor talks to lululemon's public product API, which it reaches directly. A proxy is optional (e.g. a Canadian IP for en-ca).

How fresh is the data? It is fetched live on each run — prices, sale status and size availability reflect the store at run time.

How many products can it return? As many as you want via maxItems; the full catalog is ~4,000 styles per locale. Search pages 20/request, categories 100/request.

Can I get only what changed? Yes — scrapeFullCatalog + updatedSince scrape only products whose sitemap lastmod is on/after your date.

Does it include reviews? Not the review text — lululemon serves reviews via a separate gated system. Each row includes reviewsId so you can cross-reference.

Which regions? United States (en-us, USD) and Canada (en-ca / fr-ca, CAD).

Is it reliable against anti-bot? Yes — it impersonates a real browser at the TLS layer to pass Akamai, with retries and graceful per-item error handling.

Is this legal? It collects publicly available product data. You are responsible for complying with lululemon's terms and applicable laws; don't use it for anything unlawful.