We extract product catalogues, pricing signals, stock depth per size, fabric compositions, and styling metadata from Witchery. Delivered as clean JSON, CSV, or Parquet to S3, BigQuery, or Snowflake on your schedule.
Structured, schema-consistent data across all major object types — delivered clean, typed, and ready to query.
Complete list of extractable fields for Product Information objects from witchery.com.au. All fields typed and schema-versioned.
"sku": "60284912", "title": "Linen Blend Blazer", "price": 299.95, "currency": "AUD", "colour_name": "Chalk", "fabric_composition": "55% Linen, 45% Viscose", "collection_name": "Spring Tailoring"
| # | sku | title | category | sub_category | price | list_price |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Sizing & Inventory objects from witchery.com.au. All fields typed and schema-versioned.
"sku": "60284912-CHLK-10", "size_name": "10", "in_stock": true, "low_stock_warning": false, "availability_status": "AVAILABLE", "store_availability_flag": true, "parent_sku": "60284912"
| # | sku | parent_sku | size_code | size_name | in_stock | low_stock_warning |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Pricing & Promotions objects from witchery.com.au. All fields typed and schema-versioned.
"sku": "60284912", "current_price": 249.95, "base_price": 299.95, "discount_pct": 16, "is_sale_item": true, "promotion_text": "Take an extra 20% off sale", "price_timestamp": "2023-10-25T14:30:00Z"
| # | sku | base_price | current_price | discount_pct | discount_abs | is_sale_item |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Styling & Cross-Sells objects from witchery.com.au. All fields typed and schema-versioned.
"primary_sku": "60284912", "styled_with_sku": "60284915", "styled_with_title": "Linen Wide Leg Pant", "relationship_type": "shop_the_look", "styled_with_price": 149.95, "position_index": 1
| # | primary_sku | primary_title | styled_with_sku | styled_with_title | styled_with_url | styled_with_price |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Complete list of extractable fields for Category Taxonomy objects from witchery.com.au. All fields typed and schema-versioned.
"category_name": "Blazers", "parent_category": "Clothing", "breadcrumbs": "['Women', 'Clothing', 'Jackets & Coats', 'Blazers']", "product_count": 42, "scraped_at": "2023-10-25T14:31:00Z", "meta_title": "Women's Blazers | Witchery"
| # | category_id | category_name | parent_category | breadcrumbs | url_path | product_count |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | ||||||
| 3 |
Our Witchery scraper captures every detail from high-resolution imagery and fabric compositions to real-time size availability and markdown events, bypassing anti-bot measures.
Extract titles, descriptions, fabric compositions, and care instructions parsed into clean, queryable fields.
Monitor stock status and low-stock warnings for every size and colour variant across the catalogue.
Capture base prices, sale prices, percentage discounts, and promotional overlay text timestamped per run.
Link distinct colour URLs back to their parent product SKU for accurate assortment analysis.
Extract styled-with cross-sell relationships from product pages to map outfit combinations.
Extract CDN links for all product angles and styling shots at maximum resolution.
Parse breadcrumbs, taxonomy structures, and collection tags to maintain accurate product categorisation.
Crawl through infinite scroll implementations and paginated category grids without dropping records.
Configure runs to only export products with changed price or stock status to reduce downstream processing.
Brief in. Clean data out.
Provide target categories or the full catalogue. We map the required fields and delivery frequency.
We configure Scrapy and Playwright to navigate Witchery's frontend, intercepting API calls for inventory.
Schema validation, null-rate checks, and price anomaly detection are run before production.
JSON, CSV, or Parquet pushed to your S3 bucket or Snowflake stage on your defined schedule.
Modern fashion retailers use dynamic rendering and aggressive caching. Here is how we ensure data completeness.
Witchery loads size availability dynamically via API calls. We intercept these XHR responses to map exact in-stock and low-stock indicators per size variant.
Product images are served via dynamic CDNs with multiple resolution parameters. We parse the source sets to extract the highest quality asset URLs without downloading the binaries.
To guarantee accurate domestic pricing and avoid geo-blocks, all requests are routed through Australian residential IP pools with rotating sessions.
Instead of relying solely on DOM scraping, our parsers extract the underlying JSON state injected into the page, ensuring 100% accuracy for pricing and variant mapping.
Fashion inventory moves quickly during sales. We hash previous run states and only deliver records where price, size availability, or promotional tags have changed.
Fashion retailers track Witchery's pricing architecture, markdown cadences, and promotional events to adjust their own strategies.
Merchandisers analyse category depth, colour prevalence, and fabric choices to inform seasonal buying decisions.
Track which sizes and colours sell out first to model demand curves and optimise manufacturing runs.
Fashion search engines and affiliate platforms ingest clean catalogue feeds to maintain accurate outbound links.
Extract fabric composition data to benchmark the usage of linen, organic cotton, and recycled materials across the sector.
Computer vision teams use structured product imagery and metadata to train garment recognition and auto-tagging models.
"Fashion data decays rapidly. If you are not tracking size-level stock and markdown events daily, your competitive intelligence is already obsolete."
Extracting data from premium fashion retailers requires more than simple HTTP requests. Witchery's dynamic variant loading, promotional overlays, and CDN image management demand a sophisticated extraction pipeline. DataFlirt manages the proxies, the JavaScript rendering, and the schema validation, delivering clean, warehouse-ready data so your analysts can focus on strategy.
Everything supported by our witchery.com.au scraper — rendered SPA elements, auth walls, rate-limit evasion and beyond.
Open-source tooling on proven cloud infra — no vendor lock-in, full observability.
Playwright clusters handle frontend state hydration and dynamic XHR interception for size and stock data.
AU-specific residential IP pools ensure accurate domestic pricing and prevent automated blocking.
Post-crawl data is validated against strict JSON schemas to catch missing prices or malformed SKUs before delivery.
Data delivered to where your team already works — no new tooling required.
About witchery.com.au scraping, legality, and pipeline operations.
Ask us directly →Yes. We intercept the dynamic API calls on product pages to capture the exact availability status (in stock, low stock, out of stock) for every size and colour variant.
Our parsers extract the base price, the current markdown price, and any promotional text. We calculate the absolute and percentage discounts automatically.
Yes. We route all extraction requests through Australian residential proxies to ensure we capture the correct AUD pricing and domestic inventory levels.
Yes. We parse the product details section to extract fabric composition, care instructions, and styling notes into distinct, structured fields.
We support daily, weekly, or custom schedules. For active sales periods, we can run intra-day delta updates targeting only pricing and stock availability.
Yes. We map the primary product SKU to all recommended cross-sell SKUs featured in the styling sections.
20-minute scoping call. Pilot dataset within the week. Production within two. Get structured product, pricing, and sizing data delivered directly to your warehouse. Contact us to design your extraction schema.