Wayfair Scraper — Furniture Prices, Specs & Reviews avatar

Wayfair Scraper — Furniture Prices, Specs & Reviews

Pricing

from $4.00 / 1,000 wayfair product scrapeds

Go to Apify Store
Wayfair Scraper — Furniture Prices, Specs & Reviews

Wayfair Scraper — Furniture Prices, Specs & Reviews

Scrape Wayfair by keyword, category/listing URL, or product URL: title, price, original price, savings, rating, review count, brand, SKU, availability, breadcrumbs, images, and (with detail enrichment) specs, dimensions, materials, description + optional customer reviews. PPE. MCP-ready.

Pricing

from $4.00 / 1,000 wayfair product scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

10

Total users

7

Monthly active users

2 days ago

Last modified

Share

Wayfair Scraper — Prices, Specs, Ratings & SKUs

Wayfair Scraper is an Apify Actor for people who need structured Wayfair product data from a keyword search, category/listing URL, or product URL. It accepts one search term or a set of Wayfair URLs, returns one dataset record per product, and includes fields such as title, current price, original price, savings, rating, review count, brand, SKU, availability, breadcrumbs, images, and provenance. When product detail enrichment is enabled, the Actor also adds specs, dimensions, materials, description, feature bullets, and the full image gallery.

Best fit and connected workflows

This Actor fits workflows that start with Wayfair search or browse pages and end with structured product records for analysis or downstream automation. It is a natural route for:

  • Keyword-based catalog collection from Wayfair search results.
  • Category or listing-page collection with automatic pagination.
  • Single-product extraction from /pdp/ URLs when you want a full detail record.
  • Marketplace-aware runs across Wayfair US, CA, UK, and IE storefronts.
  • Apify MCP workflows where an agent needs to turn a Wayfair query into dataset rows.

For browsing by storefront, use country. For listing pages, use sortBy, minPrice, maxPrice, or minRating to shape the returned set before it is written to the dataset. For richer product cards, enable enrichProductDetails.

Practical scenario

A procurement analyst starts with a Wayfair category URL for office chairs and wants a clean shortlist. They provide the listing page in startUrls, set sortBy to top_rated, and cap maxResults at 20. The dataset returns fields like title, price, rating, reviewCount, brand, sku, availability, and productUrl. The analyst uses those records to compare chair candidates and then opens the linked product pages for a final review of dimensions and material before sharing the shortlist with the buyer.

Input fields

FieldTypeDefaultDescription
searchQuerystringoffice chairFree-text Wayfair keyword. The Actor opens search results and collects product cards across pages up to maxResults.
startUrlsstring[][]Wayfair search, category/listing, or /pdp/ product URLs. URL type is detected automatically.
maxResultsinteger100Maximum number of product records across all sources.
countryenumcomWayfair storefront: com, ca, co.uk, or ie.
sortByenumrelevanceResult order: relevance, price_low_to_high, price_high_to_low, top_rated, or newest.
minPriceinteger-Minimum current price in the marketplace currency.
maxPriceinteger-Maximum current price in the marketplace currency.
minRatinginteger-Minimum average star rating from 0 to 5.
enrichProductDetailsbooleanfalseOpens each product detail page for breadcrumbs, specs, dimensions, materials, description, feature bullets, and the image gallery.
proxyConfigurationobjectApify ProxyProxy settings for requests.

Focused JSON input example

{
"searchQuery": "sectional sofa",
"country": "com",
"sortBy": "top_rated",
"maxResults": 25,
"minPrice": 500,
"enrichProductDetails": true
}

Output fields

Each dataset record represents one product and uses recordType: "product".

FieldTypeDescription
recordTypestringRecord type, always product.
titlestringProduct title.
productUrlstringCanonical Wayfair product URL.
skustringWayfair SKU.
manufacturerSkustringManufacturer SKU when available.
brandstringBrand name.
pricenumberCurrent price.
originalPricenumberOriginal or strike-through price.
savingsnumberAbsolute savings.
savingsPercentintegerSavings percentage.
currencystringMarketplace currency.
ratingnumberAverage star rating.
reviewCountintegerReview count.
availabilitystringStock status.
imageUrlstringPrimary image URL.
imagesarrayImage gallery URLs.
breadcrumbsarrayCategory path.
categorystringCategory name.
subCategorystringSubcategory name.
dimensionsstringProduct dimensions.
weightstringProduct weight.
materialstringMaterial information.
colorstringColor information.
descriptionstringProduct description.
featuresarrayFeature bullets.
specsobjectParsed specs map.
shippingInfostringShipping information.
freeShippingbooleanFree-shipping flag when available.
promoFlagstringPromotion marker.
variantCountintegerNumber of variants.
positionintegerResult position.
searchQuerystringQuery or route provenance.
sitestringWayfair marketplace site.
sourceUrlstringSource page URL.
scrapedAtstringISO timestamp of the scrape.
_warningsarrayRecord-level warnings when present.

Illustrative JSON output record

{
"recordType": "product",
"title": "Example Upholstered Sofa",
"productUrl": "https://www.wayfair.com/furniture/pdp/example-sofa",
"sku": "W12345678",
"brand": "Example Brand",
"price": 799.99,
"originalPrice": 999.99,
"savings": 200,
"savingsPercent": 20,
"currency": "USD",
"rating": 4.7,
"reviewCount": 184,
"availability": "In Stock",
"imageUrl": "https://assets.wfcdn.com/example.jpg",
"breadcrumbs": ["Furniture", "Living Room Furniture", "Sofas"],
"dimensions": "84 in W x 35 in D x 32 in H",
"material": "Upholstered",
"position": 1,
"searchQuery": "sectional sofa",
"site": "wayfair.com",
"scrapedAt": "2026-06-21T00:00:00.000Z"
}

How it works

The Actor accepts either a keyword search or one or more Wayfair URLs. It auto-detects whether each URL is a search page, category/listing page, or product detail page. Listing pages are paginated until maxResults is reached. Product URLs return one full detail record.

The implementation uses a Playwright-based Chromium crawler with stealth handling and residential/mobile proxy support. For detail enrichment, it opens product detail pages to collect breadcrumbs, specifications, dimensions, materials, description, feature bullets, and the image gallery. The dataset schema also records provenance fields such as searchQuery, site, sourceUrl, and scrapedAt.

Pricing

Wayfair Scraper — Prices, Specs, Ratings & SKUs uses Pay per event plus Apify platform usage. The primary billable event is Wayfair product scraped, and there is also an Actor start event for execution initialization and compute baseline. Filtered-out products are not billed.

Use the live Pricing tab on the Actor page for current pricing details before you run it. As a simple example, 10 returned product records correspond to 10 product events, plus the run start event.

Use with AI agents (MCP)

This Actor is available as an Apify Actor usable through Apify MCP. It is designed for agents that need to translate a Wayfair task into structured product records and then read the dataset back for follow-up reasoning.

Actor identity: khadinakbar/wayfair-scraper

Tool description: send a keyword, a set of Wayfair URLs, or a product URL, and receive one dataset row per product with prices, ratings, SKUs, and optional detail-page fields.

"Find top-rated office chairs on Wayfair US, return the first 15 products, and include product URLs, prices, ratings, review counts, and dimensions if available."

Output interpretation: each dataset record is one product. Use recordType, title, price, rating, reviewCount, brand, and productUrl for ranking or routing. sourceUrl, searchQuery, and scrapedAt help track provenance. When enrichProductDetails is on, the record may also include breadcrumbs, dimensions, material, description, features, and images.

Scope guidance: use searchQuery for broad discovery and startUrls for known listing or product pages. Pagination is handled by the Actor, and maxResults caps the number of product records returned.

Cost guidance: set maxResults to the number of product records you want, since that acts as a practical ceiling for product events.

Apify API example

import { ApifyClient } from "apify-client";
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const input = {
searchQuery: "sectional sofa",
country: "com",
sortBy: "top_rated",
maxResults: 5,
enrichProductDetails: true,
};
const run = await client.actor("khadinakbar/wayfair-scraper").call(input);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Best results and outcome guidance

Use searchQuery for discovery, and use startUrls when you already have a specific Wayfair category, listing, or product page. If you want richer product cards, enable enrichProductDetails. If you want the run to focus on a narrower set, combine sortBy with minPrice, maxPrice, and minRating. For storefront-specific runs, match country to the marketplace you want to scrape.

Continue the workflow

Design note

I found that the output contract exposes a single required record type, product, with scrapedAt as the other required field. That made it clear the dataset is centered on one normalized product record shape rather than multiple entity types.

FAQ

Can I start from a Wayfair search term?
Yes. Use searchQuery for keyword-driven collection from Wayfair search results.

Can I start from a category or listing page?
Yes. Put the Wayfair listing URL into startUrls, and the Actor will paginate product cards from that page.

Can I scrape one product page directly?
Yes. Use a /pdp/ product URL in startUrls to return one full detail record.

Which Wayfair marketplaces are supported?
The Actor supports com, ca, co.uk, and ie.

How do I get specs and dimensions on listing runs?
Set enrichProductDetails to true, or use product URLs in startUrls.

Responsible use

Use this Actor in line with applicable laws, platform terms, and your own data governance practices. Keep requests scoped to publicly accessible Wayfair pages, respect rate and access controls, and review the live Pricing tab before running jobs at scale.