Wayfair Scraper · Products, Prices, Stock & Ratings avatar

Wayfair Scraper · Products, Prices, Stock & Ratings

Pricing

from $2.00 / 1,000 product results

Go to Apify Store
Wayfair Scraper · Products, Prices, Stock & Ratings

Wayfair Scraper · Products, Prices, Stock & Ratings

Scrape Wayfair products from wayfair.com, .ca, .co.uk and .ie. Paste a keyword, category, brand, SKU or listing/product URL. Each row is SKU, title, brand, price, discount %, stock, variant count, rating and image. Optional PDP specs, dimensions and materials. Pure HTTP, no browser.

Pricing

from $2.00 / 1,000 product results

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

23

Total users

19

Monthly active users

15 days ago

Last modified

Categories

Share

Wayfair Scraper logo

Turn any Wayfair keyword, category, brand, SKU or URL into one product row: SKU, title, brand, price, was-price, discount %, stock, variant count, rating and image. Four storefronts — wayfair.com, wayfair.ca, wayfair.co.uk, wayfair.ie. Turn on fetchDetails for the spec table, parsed dimensions, materials and About This Product.

InputRow(s) emitted
Keyword (sofa, office chair)Listing cards (~48 per page)
Search / category / brand URLSame listing cards, paginated with curpage=N
SKU or product URLOne product row (PDP fields when fetchDetails is on)

Pure HTTP. No browser, no third-party CF-bypass service.

Why Use This Scraper?

  • Listing cards are complete — sale price, was-price, discount %, variant count, stock, rating, reviews, image and URL come from the search page. No per-product crawl unless you ask for it.
  • Four storefronts — US, Canada, UK, Ireland. Paste a .ca / .co.uk / .ie URL or set country.
  • Stock that fills — IN_STOCK / LOW_STOCK / OUT_OF_STOCK / BACKORDERED from the listing payload, plus Wayfair's leftover-count sentence on the product page.
  • Sale math — savings and discountPercent from price vs was-price. "5 Colors, 2 Sizes" becomes variantCount 10.
  • Optional specs — fetchDetails adds the DescriptionList table, H×W×D + weight, materials, feature bullets and delivery. Billed only on a hit.
  • Cheaper than the listing leader — $0.002 per product row vs $0.005 on the current Store leader.

Overview

Built for price monitors, marketplace feeds and brand teams who need public Wayfair catalog rows without an official API. One dataset row per product. Nested objects flatten by default (specifications_Overall Dimensions, dimensions_width) so CSV/Excel stay usable. Residential proxy is recommended — Wayfair's PerimeterX wall 429s most datacenter IPs.

Supported Inputs

KindExample
Keywordsofa, office chair, area rug
Search URLhttps://www.wayfair.com/keyword.php?keyword=sofa
Category URLhttps://www.wayfair.com/furniture/sb0/sofas-c413892.html
Category filterFurniture, Outdoor, Rugs, Lighting, …
BrandLatitude Run, Wade Logan
SKUW100694092, CXVA1530
Product URLhttps://www.wayfair.com/furniture/pdp/…-w100694092.html

Not supported: login-only lists, Wayfair Business / B2B portals, Wayfair.de (shut down), review text, AI summaries.

startUrls wins. If it is empty, the actor builds a URL from searchQuery / category / brand / skus + country.

Use Cases

WhoWhat they do with the rows
Price monitorsTrack sale vs was-price and discountPercent across sofas, rugs, lighting
Retail / marketplace teamsBuild a Wayfair product feed without an official API
BrandsWatch how their SKUs are priced, stocked and badged
Data teamsCategory assortment, ratings, promo flags, variant counts

How It Works

How Wayfair Scraper works

  1. Build start URLs from startUrls, or from keyword / category / brand / SKU.
  2. Fetch each listing page (paginated with curpage=N, about 48 products per page).
  3. Parse the server-rendered ListingCard grid — price, stock, variants, rating.
  4. Optionally fetch the product page for specs, dimensions, materials and description.
  5. Apply price / rating / in-stock filters and push one dataset row per product.

Chrome 131 TLS impersonation is the fetch stack. A plain rustls fingerprint is 429'd.

Input Configuration

FieldTypeRequiredNotes
startUrlsstring[]NoSearch, category, brand or product URLs. Wins over the filters below. Example: https://www.wayfair.com/keyword.php?keyword=sofa.
searchQuerystringNoKeyword when no URL is given. Example: sofa. Default empty.
countryenumNocom / ca / co.uk / ie. Ignored when a full URL is pasted. Default com.
categoryenumNoTop-level browse (Furniture, Outdoor, …). Used only when URLs are empty.
brandstringNoBrand name for a brand-scoped search. Example: Latitude Run.
skusstring[]NoWayfair SKUs such as W100694092.
sortByenumNoRelevance, price, rating, newest, best seller. Default relevance.
priceMin / priceMaxnumberNoDrop products outside this price range (storefront currency).
ratingMinnumberNoDrop products rated below this (0–5). Unrated are kept.
inStockOnlybooleanNoKeep in-stock / low-stock only. Rows with no stock evidence are kept. Default false.
fetchDetailsbooleanNoFetch each product page (extra request + additional-data event on a hit). Default false.
maxItemsintegerNoHard cap on rows. Default 100. Always set this.
maxPagesintegerNoMax listing pages per start URL (curpage=N). Default 20, hard cap 80.
proxyproxyNoResidential recommended. Prefill uses Apify RESIDENTIAL.

Example input

Keyword, listing only:

{
"searchQuery": "sofa",
"country": "com",
"maxItems": 30
}

Category URL with specs:

{
"startUrls": ["https://www.wayfair.com/furniture/sb0/sofas-c413892.html"],
"fetchDetails": true,
"maxItems": 20
}

SKU lookup:

{
"skus": ["W100694092"],
"fetchDetails": true,
"maxItems": 1
}

Output Overview

One row per product. Listing fields (price, previousPrice, discountPercent, variantCount, stockStatus) fill when Wayfair shows them. specifications, dimensions, materials, description, featureBullets and brandUrl fill when fetchDetails is on. Flatten is on by default: nested objects become specifications_Overall Dimensions, dimensions_width. Turn flatten off only if you want nested JSON.

Output Samples

Real row from a 12 Sep 2026 cloud run — keyword sofa, fetchDetails: true. Flattened keys shown as nested for reading.

{
"sku": "W117455547",
"title": "L-Shaped Sofa With Reversible Chaise, Convertible Couch With Washable Covers, Compact Living Room Furniture For Apartments & Small Spaces",
"brand": "Latitude Run",
"brandUrl": "https://www.wayfair.com/brand/bnd/latitude-run-b40128.html",
"productUrl": "https://www.wayfair.com/furniture/pdp/latitude-run-l-shaped-sofa-with-reversible-chaise-w117455547.html",
"price": 334.99,
"previousPrice": 749.99,
"savings": 415,
"discountPercent": 55,
"currency": "USD",
"stockStatus": "IN_STOCK",
"isPurchasable": true,
"inventoryMessage": "25 Left in Stock",
"variantCount": 3,
"rating": 3.3,
"promoFlag": "Sale",
"materials": ["Chenille", "Solid Wood", "Memory Foam"],
"dimensions": {
"raw": "33.85'' H X 76'' W X 28'' D",
"height": 33.85,
"width": 76,
"depth": 28,
"weightLb": 104,
"unit": "in"
},
"country": "com",
"detailFetched": true
}

Key Output Fields

Identity

FieldDescription
skuWayfair SKU (W100694092, CXVA1530)
title / brand / brandUrlProduct name, manufacturer, brand page
productUrl / canonicalUrlCanonical PDP

Price

FieldDescription
price / previousPrice / currencySale price, struck-through was-price, ISO currency
savings / discountPercentDollars off and percent off, when both prices exist

Availability

FieldDescription
stockStatusIN_STOCK, LOW_STOCK, OUT_OF_STOCK, BACKORDERED
isPurchasable / inventoryMessageShoppable flag + Wayfair's own sentence
variantCountOption combinations from the card (“5 Colors, 2 Sizes” → 10)

Merchandising

FieldDescription
rating / reviewCountStars (0–5) and review count
promoFlagSale, Warehouse Clearout, …
imageUrl / imagesPrimary image + extras
breadcrumbs / category / subCategoryCategory path

Enrichment (fetchDetails)

FieldDescription
specificationsSpec table (material, dimensions text, weight capacity, …)
dimensionsParsed H×W×D (inches) and weight (lb)
materialsMaterial values from the spec table
description / featureBulletsAbout This Product + bullets
estimatedDeliveryMessageGet it by … / FREE Delivery

Pricing

EventWhenRate
Actor startOnce per run, per GB of memory$0.005
Product resultEach dataset row$0.002
Product detail enrichmentfetchDetails hit with extra fields$0.001

Listing-only runs do not charge additional-data.

What makes this richer than the competition

CapabilityTypical Store actorsThis actor
Four storefronts + keyword / category / brand / SKULeader has this; cheap listing actors often URL-onlyYes
Stock that actually fills on listingLeader's users asked for it; listing cards often left it nullListing RSC + PDP leftover count
discountPercent + variantCountpiotrv / stealth sell theseOn the card, no extra HTTP
Specs / dimensions / materialskhadinakbar at $0.004fetchDetails at $0.001 extra
429 wallConstant 429 threads on the leaderChrome 131 impersonation

FAQ

Do I need a Wayfair account? No. Public listing and product pages only.

Why is stockStatus null? The listing payload usually carries inventory next to the SKU. A few cards have no blob — those stay null unless you turn on fetchDetails. Free-delivery text is not treated as stock.

US only? No. Set country or paste a .ca / .co.uk / .ie URL.

429 Access denied? Use a residential proxy. Datacenter IPs are refused. The actor impersonates Chrome 131.

How many products per page? About 48. maxPages caps how far pagination goes. Always set maxItems.

Does fetchDetails always bill? Only when the product page adds extra fields. Empty or blocked PDPs are not charged.

Reviews / AI summaries? Out of scope. Separate product.

Can I mix URL kinds? Yes. Paste any mix of search, category, brand and product URLs in startUrls.

Support

Open an issue on the actor's Issues tab or email muhamed.didovic@gmail.com.

Additional Services

Need a custom export shape, a scheduled monitor, or a field the listing does not print? Email muhamed.didovic@gmail.com.

Explore More Scrapers

Full list at apify.com/memo23.

🤖 For AI Agents & LLM Apps

Compact reference for agents calling this actor via the Apify MCP server or the Apify API (actor: memo23/wayfair-scraper).

Purpose: Turn a Wayfair keyword, category, brand, SKU or URL into one product row each — SKU, title, brand, price, discount, stock, variants, rating, image, URL — over HTTP.

Minimal input:

{
"searchQuery": "sofa",
"country": "com",
"maxItems": 30
}

Output: one row per product — sku, title, brand, price, previousPrice, savings, discountPercent, currency, stockStatus, variantCount, rating, reviewCount, promoFlag, imageUrl, productUrl, breadcrumbs, country, scrapedAt. fetchDetails adds specifications, dimensions, materials, description, featureBullets, brandUrl, estimatedDeliveryMessage.

Behaviors an agent should know:

  • Always set maxItems. Each listing page is ~48 products and paginates with curpage=N.
  • startUrls wins over keyword / category / brand / SKU.
  • Residential proxy is the safe default on Apify. Datacenter IPs often get 429.
  • fetchDetails (off) is one extra request per product and charges additional-data only on a hit.
  • Pay-per-event: $0.005 start + $0.002 per row + $0.001 on a detail hit.

⚠️ Disclaimer

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Wayfair LLC or any of its subsidiaries. All trademarks mentioned are the property of their respective owners.

The scraper accesses only publicly available product pages — no authenticated endpoints, paid features, or content behind a Wayfair login. Users are responsible for ensuring their use complies with Wayfair's Terms of Service, applicable data-protection law (GDPR, CCPA, etc.), and any contractual obligations of their own organization.


SEO Keywords

Wayfair scraper, scrape Wayfair, Wayfair API, Apify Wayfair, Wayfair product scraper, Wayfair price scraper, furniture price data, Wayfair.ca scraper, Wayfair.co.uk scraper, home goods product feed, Wayfair SKU lookup, Wayfair category scrape, Wayfair stock status, Wayfair ratings scraper, crawlerbros Wayfair alternative, sofa price monitor, Wayfair discount percent