Wayfair Scraper
Pricing
from $3.00 / 1,000 results
Wayfair Scraper
Scrape Wayfair product listings, product details, category browses, and brand pages from Wayfair.com (US), Wayfair.ca (Canada), Wayfair.co.uk (UK), and Wayfair.ie (Ireland). Extract title, SKU, brand, price, currency, rating, review count, image, breadcrumbs, and product URL.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
51
Total users
11
Monthly active users
0.65 hours
Issues response
2 days ago
Last modified
Categories
Share
Wayfair Scraper — Product, Price & Review Data API
Extract product data from Wayfair in seconds — no coding, no API key, no login required. This Wayfair scraper pulls title, SKU, brand, current and sale price, discount %, stock status, star rating, customer reviews, product variants, images, and more from Wayfair's US, Canada, UK, and Ireland storefronts. Use it for price tracking, deal and clearance monitoring, competitor research, or building your own Wayfair product feed or catalog.
What is the Wayfair Scraper?
The Wayfair Scraper is an Apify actor that turns Wayfair search results, category pages, brand pages, and individual product pages into clean, structured data (JSON, CSV, Excel, or via API) — ready to use in a spreadsheet, database, or app. It works as a Wayfair API alternative: Wayfair doesn't offer a public product API, so this tool fills that gap by extracting the same product data directly from the live site.
Key features
- 5 ways to find products — keyword search, a direct Wayfair URL (search, category, brand, or product page), top-level category browse, brand search, or SKU lookup.
- 4 regional storefronts — wayfair.com (US), wayfair.ca (Canada), wayfair.co.uk (UK), wayfair.ie (Ireland) — with each region's own currency and product data.
- Price and sale price tracking — current price, the original "was" price when an item is discounted, and the discount percentage.
- Stock status on every product — know at a glance whether an item is in stock, low stock, backordered, or out of stock, plus a simple purchasable yes/no flag.
- Powerful filtering — by price range, minimum rating, in-stock only, on-sale only, or a minimum discount %, and sort by price, rating, newest, or best seller.
- Full product enrichment — pull complete pricing, description, delivery estimate, colour/size variants, and up to 25 individual customer reviews per product.
- Fast and reliable — built to keep working through temporary rate limits so your run completes.
- No login, no cookies, no API key required.
- Clean output — empty fields are simply left out of each record, never filled with placeholder or fake values.
Output per product
sku,title,brandprice— the current, payable price (the discounted one when a promotion is running)previousPrice— the struck-through "was" price, included only when the item is actually discountedcurrencystockStatus— Wayfair's own status string for the listing.IN_STOCKis what shoppable items return; Wayfair's schema also definesLOW_STOCK,OUT_OF_STOCK,BACKORDERED,DISCONTINUEDandUNAVAILABLEisPurchasable—true/falsederived fromstockStatus(falsefor out-of-stock, backordered, discontinued and unavailable listings)estimatedDeliveryMessage— Wayfair's own "Get it by ..." delivery estimate, when shownratingValue,reviewCountimageUrl,descriptionbreadcrumbs,category,subCategorypromoFlag— badge text such as "72-Hour Clearout", when presentvariants— the product's own colour / finish / size options, each withname,imageUrl,stockStatusand its ownproductUrl(requiresfetchProductDetails; omitted for products with no options)reviews— up to 25 individual customer reviews, each withreviewId,rating,body,badge,date,reviewerNameandreviewerLocation(requiresfetchProductDetails; omitted for products with no reviews)productUrl,canonicalUrl,sourceUrlcountry,siteName,recordType,scrapedAt
{"sku": "CXVA1530","title": "Latitude Run Ilkeston 81.6\" Wide Vegan Leather Manual Reclining Sofa","brand": "Latitude Run","productUrl": "https://www.wayfair.com/furniture/pdp/latitude-run-ilkeston-...-cxva1530.html","canonicalUrl": "https://www.wayfair.com/furniture/pdp/latitude-run-ilkeston-...-cxva1530.html","price": 689.99,"previousPrice": 1098.99,"currency": "USD","stockStatus": "IN_STOCK","isPurchasable": true,"estimatedDeliveryMessage": "Get it Fri, May 22 - Thu, May 28","ratingValue": 4.63,"reviewCount": 648,"imageUrl": "https://assets.wfcdn.com/im/.../Ilkeston+81.6+...+Cup+Holders.jpg","description": "Choose a delivery day that works for you...","breadcrumbs": ["Furniture", "Living Room Furniture", "Sofas"],"category": "Furniture","subCategory": "Sofas","promoFlag": "72-Hour Clearout","variants": [{"name": "Beige Performance Faux Leather","imageUrl": "https://assets.wfcdn.com/im/.../Beige+Performance+Faux+Leather.jpg","stockStatus": "IN_STOCK","productUrl": "https://www.wayfair.com/furniture/pdp/latitude-run-ilkeston-...-cxva1530.html?piid=94939949"}],"reviews": [{"reviewId": 165642272,"rating": 5,"body": "It's such a great price and it looks like it would cost more than it is.","badge": "Verified Buyer","date": "04/29/2026","reviewerName": "Susana"}],"country": "com","siteName": "Wayfair","recordType": "product","scrapedAt": "2026-05-08T17:24:33.123456+00:00","sourceUrl": "https://www.wayfair.com/keyword.php?keyword=sofa"}
Input
| Field | Type | Description |
|---|---|---|
mode | enum | search, byUrl, byCategory, byBrand, byProduct |
country | enum | com (US), ca (Canada), co.uk (UK), ie (Ireland) |
text | string | Search keyword (search mode) |
category | enum | Top-level Wayfair category (byCategory mode) — Furniture, Outdoor, Decor & Pillows, Rugs, Kitchen & Tabletop, Bed & Bath, Lighting, Storage & Organization, Appliances, Home Improvement, Baby & Kids, Holiday Decor, Office, Pet |
urls | array | Direct Wayfair URLs (byUrl / byBrand modes) |
brand | string | Brand name for byBrand mode, exactly as it appears on Wayfair (e.g. "Latitude Run", "Wade Logan", "Hokku Designs"). Free text rather than a dropdown, since Wayfair carries thousands of brands |
skus | array | Wayfair product SKUs (e.g. W118077895, CXVA1530) for byProduct mode |
sortBy | enum | relevance, price_low_to_high, price_high_to_low, top_rated, newest, best_seller |
priceMin / priceMax | int | Drop products outside this price range |
ratingMin | float | Drop products with rating below this (0.0–5.0) |
onSaleOnly | bool | Only return products Wayfair shows a struck-through "was" price for |
minDiscountPercent | int | Only return products discounted by at least this % off the previous price (1–99); leave empty for no threshold |
inStockOnly | bool | Only return listings Wayfair explicitly marks as in stock |
fetchProductDetails | bool | Fetch each product's own detail page for complete pricing, description, delivery data, variants, and reviews |
maxItems | int | Hard cap on returned products, applied across the whole run (see note below) |
maxPagesPerListing | int | Maximum result pages to walk per search/category/brand lookup (~48 products per page, 25 pages max) |
proxyConfiguration | proxy | Apify proxy configuration (residential proxy is used by default) |
How
maxItemsandmaxPagesPerListinginteract.maxItemscaps the whole run;maxPagesPerListingcaps how deep each individual seed is crawled. A listing page holds about 48 products and the page ceiling is 25, so one search / category / brand seed can realistically supply at most ~1,200 products no matter how highmaxItemsgoes. To go beyond that, give the run more than one seed — several URLs inbyUrlorbyBrandmode, or several SKUs inbyProductmode — since the cap is shared across all of them. SettingmaxItemsto 5,000 with a single keyword is not an error; it simply means "no practical limit" and the run ends when the seed is exhausted.
Example: search with filters
{"mode": "search","country": "com","text": "sofa","sortBy": "top_rated","priceMax": 1000,"inStockOnly": true,"maxItems": 50}
Example: on-sale products only
{"mode": "search","country": "com","text": "sectional sofa","onSaleOnly": true,"minDiscountPercent": 30,"fetchProductDetails": true,"maxItems": 40}
Example: direct URL
{"mode": "byUrl","urls": ["https://www.wayfair.com/furniture/cat/sofas-c413894.html","https://www.wayfair.com/furniture/pdp/latitude-run-ilkeston-...-cxva1530.html"]}
Example: category browse
{"mode": "byCategory","country": "co.uk","category": "lighting","sortBy": "newest","fetchProductDetails": true,"maxItems": 30}
Example: brand search
{"mode": "byBrand","country": "com","brand": "Latitude Run"}
Example: look up by SKU
{"mode": "byProduct","country": "com","skus": ["W118077895", "CXVA1530"]}
Use cases
- Price tracking — monitor price and sale-price changes on specific Wayfair products over time.
- Stock / availability monitoring — get alerted the moment a backordered or out-of-stock item becomes purchasable again.
- Competitive & market research — compare pricing, ratings, and promotions across brands and categories.
- Product feeds & catalog enrichment — pull structured Wayfair listings into your own catalog or comparison site.
- Deal & clearance hunting — switch on
onSaleOnly(or set aminDiscountPercentfloor) to return only genuinely discounted products, with the struck-throughpreviousPricealongside the payable one. - Regional pricing comparison — compare the same product's price and currency across the US, Canada, UK, and Ireland storefronts.
FAQ
Does this require a Wayfair account, login, or API key? No. It scrapes Wayfair's public storefront directly.
Does it support Wayfair.de? No. Wayfair shut down its German storefront in 2020, so wayfair.de is not a supported region.
Why don't all search results have a price? Wayfair's search and category pages only show pricing for a small number of products up front — most listing cards don't include a visible price at all. Treat listing-page pricing as best-effort, never a guarantee. For complete, reliable pricing (plus rating and review count) on every result, turn on fetchProductDetails, which visits each product's own page to collect the full data. Even then, a small number of products — typically ones with multiple size or colour options — may come back with no price, since Wayfair itself doesn't always show one fixed price for those listings.
What do I get without fetchProductDetails? title, sku, productUrl, stockStatus and isPurchasable on essentially every result, plus an image on most. Price, previous price, rating and review count are best-effort in this mode and can be absent from an entire run — use fetchProductDetails if you need them reliably. Two things worth knowing: your price range filter is still applied by Wayfair itself even when you can't see the price in the output, and the on-sale filters need a previous price to work, so combining them with fetchProductDetails turned off can legitimately return nothing.
How reliable is stockStatus? Very — it's returned on essentially every result, whether or not fetchProductDetails is on. isPurchasable is only set when Wayfair's own stock status is known; it's never guessed.
What's estimatedDeliveryMessage? Wayfair's own delivery estimate (e.g. "Get it by Fri, May 22"). Like price, it's most reliably available when fetchProductDetails is turned on.
What exactly does byCategory do? It finds products in one of Wayfair's top-level departments (Furniture, Lighting, Rugs, and so on). It is not literal category-page browsing, so results reflect that department but aren't guaranteed to be 100% within it — the same is true of Wayfair's own category pages, which mix in merchandised and related items. If you need one specific Wayfair category page, copy its URL from the site and use byUrl instead.
How do the sale filters work? onSaleOnly keeps only products Wayfair itself shows a struck-through "was" price for — the same real discount reflected in the previousPrice output field, never an estimate. minDiscountPercent adds a minimum discount percentage on top of that. Both are opt-in filters for discounted items, so a product with no previous price is dropped rather than kept. Combine them with fetchProductDetails for the best coverage, since most listing pages don't show pricing up front.
If I turn on inStockOnly, what happens to results with unknown stock status? They're excluded. This filter means "only show me listings Wayfair explicitly confirms are in stock" — unlike the price and rating filters, which keep a result when that particular field simply isn't available.
How does the price filter work? A product without a price is kept, since a missing field isn't evidence it falls outside your range. A product with a known price outside priceMin/priceMax is dropped.
How does ratingMin treat products with no rating? It keeps them, on the same "a missing field isn't evidence" principle as the price filter. That includes brand-new products nobody has reviewed yet: Wayfair shows no stars for those, so the record carries no ratingValue at all rather than a fake 0, and it isn't judged against your threshold. If you only want products with a proven rating, keep ratingMin and drop any record without a ratingValue in your own post-processing.
What happens if a request gets temporarily rate-limited? The actor automatically retries with a fresh connection, so a temporary rate limit doesn't stall or fail your run.
What happens if I request a SKU that doesn't exist? That SKU is skipped rather than returning an unrelated product, so you never get mismatched data for a bad SKU.
Does the scraper extract individual customer reviews? Yes, when fetchProductDetails is on. Each product record then carries a reviews array with up to 25 of the product's own reviews — rating, review text, reviewer name and location, date, and Wayfair's own badge ("Verified Buyer", "Incentivized Review"). Products with no reviews simply have no reviews, ratingValue or reviewCount field — an unrated product is reported as unrated, never as "0 stars from 0 reviews". The aggregate ratingValue and reviewCount are always the full totals, not just the reviews in this array.
What are variants? The product's own selectable options — colour, finish or size — as Wayfair lists them on the product page, each with its name, thumbnail image and stock status, plus the URL of that specific option. Included only when fetchProductDetails is on, and only for products that actually have options.
What currency will I get? Each storefront's native currency: USD (US), CAD (Canada), GBP (UK), EUR (Ireland) — matched automatically to the country you choose.
Why does this need a residential proxy? Wayfair blocks most non-residential traffic, so this actor uses a residential proxy by default, with connections rotated automatically, to reach the site reliably and consistently.
Is this affiliated with Wayfair? No — this is an independent, third-party actor that reads Wayfair's public storefront pages. It isn't operated or endorsed by Wayfair.
Limitations
wayfair.deis not supported, since Wayfair closed its German storefront in 2020. Requestingde, or any other unsupported region, falls back to the US storefront rather than failing the run, with a note in the run log so it's never mistaken for a real regional result.- Individual customer reviews are limited to up to 25 per product (newest first) and require
fetchProductDetails. byCategoryresults reflect the chosen department but aren't guaranteed to be strictly limited to it. UsebyUrlwith a Wayfair category URL when you need one exact category page.- Sort order is requested from Wayfair directly; if a specific sort isn't honored, results fall back to Wayfair's default ordering rather than erroring.
- Brand pages vary in URL format; the most reliable way to scrape one specific brand page is
byUrlwith the brand's listing URL copied from Wayfair. - Pricing, rating, review count, and delivery-estimate data on listing pages is limited to a minority of results per page — turn on
fetchProductDetailsto reliably get this data for every result. Stock status is not affected by this limitation. - The Ireland storefront (
ie) is fully supported but has not yet been validated against a live production run the way the other three regions have, so treat it as the least battle-tested of the four. fetchProductDetailstakes longer to run since it visits each product's own page; large runs with it enabled will take noticeably longer than a listing-only scrape.- Sponsored or ad placements on listing pages may return sparser data than organic results.
