{
  "openapi": "3.0.1",
  "info": {
    "title": "Wayfair Scraper — Furniture Prices, Specs & Reviews",
    "description": "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.",
    "version": "1.0",
    "x-build-id": "Fk9H0JNmqq2DY00eC"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~wayfair-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-wayfair-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/acts/khadinakbar~wayfair-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-wayfair-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor and returns information about the initiated run in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/runsResponseSchema"
                }
              }
            }
          }
        }
      }
    },
    "/acts/khadinakbar~wayfair-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-wayfair-scraper",
        "x-openai-isConsequential": false,
        "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
        "tags": [
          "Run Actor"
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/inputSchema"
              }
            }
          }
        },
        "parameters": [
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Enter your Apify token here"
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "inputSchema": {
        "type": "object",
        "properties": {
          "searchQuery": {
            "title": "Search keyword",
            "type": "string",
            "description": "Free-text keyword to search Wayfair (e.g. 'office chair', 'sectional sofa'). The Actor opens Wayfair's search-results pages and collects product cards across pages up to your Max results cap. Leave empty if you instead paste Start URLs. NOT a single product URL — for one product, paste a /pdp/ link into Start URLs."
          },
          "startUrls": {
            "title": "Start URLs (search, category, or product pages)",
            "type": "array",
            "description": "Optional list of Wayfair URLs: keyword/search pages (/keyword.php?keyword=...), category/browse pages (e.g. /furniture/sb0/sofas-c413892.html), or product detail pages (/.../pdp/...-w12345678.html). Each URL's type is auto-detected — listing URLs are paginated for product cards; product URLs return one full detail record. Plain https strings only; non-Wayfair URLs are skipped.",
            "items": {
              "type": "string"
            }
          },
          "maxResults": {
            "title": "Max results (products)",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Maximum number of product records to return across all sources. The Actor auto-paginates listing pages until this cap is hit, then stops, so it doubles as your product cost ceiling (each product is one billable event). Defaults to 100. Reviews, when enabled, are billed separately and are not counted against this cap.",
            "default": 100
          },
          "country": {
            "title": "Wayfair marketplace",
            "enum": [
              "com",
              "ca",
              "co.uk",
              "ie"
            ],
            "type": "string",
            "description": "Which Wayfair storefront to search: 'com' (United States, default), 'ca' (Canada), 'co.uk' (United Kingdom), or 'ie' (Ireland). Prices and currency reflect the chosen marketplace, and the residential proxy exit country is matched automatically. Ignored for Start URLs, which use their own domain.",
            "default": "com"
          },
          "sortBy": {
            "title": "Sort results by",
            "enum": [
              "relevance",
              "price_low_to_high",
              "price_high_to_low",
              "top_rated",
              "newest"
            ],
            "type": "string",
            "description": "Order Wayfair returns search/listing results in: 'relevance' (default best match), 'price_low_to_high', 'price_high_to_low', 'top_rated', or 'newest'. Applies to keyword searches and category Start URLs; ignored for product Start URLs. Use 'top_rated' to surface the best-reviewed items first.",
            "default": "relevance"
          },
          "minPrice": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only return products whose current price is at or above this value, in the marketplace currency. Applied as a Wayfair URL filter and re-checked on the parsed price. Filtered products are not billed. Leave empty for no minimum."
          },
          "maxPrice": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Only return products whose current price is at or below this value, in the marketplace currency. Applied as a Wayfair URL filter and re-checked on the parsed price. Filtered products are not billed. Leave empty for no maximum."
          },
          "minRating": {
            "title": "Minimum star rating",
            "minimum": 0,
            "maximum": 5,
            "type": "integer",
            "description": "Drop products whose average star rating (0–5) is below this value, or whose rating is unknown when this is set. Applied after extraction; filtered products are not billed. Useful to keep only well-reviewed items. Leave empty to keep all ratings."
          },
          "enrichProductDetails": {
            "title": "Enrich with product detail pages",
            "type": "boolean",
            "description": "When scraping from keyword/listing sources, also open each product's detail page to add breadcrumbs, full specs, dimensions, materials, description, feature bullets, and the high-res image gallery (slower: one extra request per product). Product Start URLs always return full detail regardless of this flag. Default false keeps listing runs fast and cheap; each enriched product is still billed once.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Proxy used for requests. Wayfair runs Akamai + PerimeterX and blocks datacenter IPs, so residential proxies are strongly recommended for reliable results. Defaults to Apify Proxy. The Actor automatically prefers a configured residential gateway and falls back through available proxy tiers.",
            "default": {
              "useApifyProxy": true
            }
          }
        }
      },
      "runsResponseSchema": {
        "type": "object",
        "properties": {
          "data": {
            "type": "object",
            "properties": {
              "id": {
                "type": "string"
              },
              "actId": {
                "type": "string"
              },
              "userId": {
                "type": "string"
              },
              "startedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "finishedAt": {
                "type": "string",
                "format": "date-time",
                "example": "2025-01-08T00:00:00.000Z"
              },
              "status": {
                "type": "string",
                "example": "READY"
              },
              "meta": {
                "type": "object",
                "properties": {
                  "origin": {
                    "type": "string",
                    "example": "API"
                  },
                  "userAgent": {
                    "type": "string"
                  }
                }
              },
              "stats": {
                "type": "object",
                "properties": {
                  "inputBodyLen": {
                    "type": "integer",
                    "example": 2000
                  },
                  "rebootCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "restartCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "resurrectCount": {
                    "type": "integer",
                    "example": 0
                  },
                  "computeUnits": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "options": {
                "type": "object",
                "properties": {
                  "build": {
                    "type": "string",
                    "example": "latest"
                  },
                  "timeoutSecs": {
                    "type": "integer",
                    "example": 300
                  },
                  "memoryMbytes": {
                    "type": "integer",
                    "example": 1024
                  },
                  "diskMbytes": {
                    "type": "integer",
                    "example": 2048
                  }
                }
              },
              "buildId": {
                "type": "string"
              },
              "defaultKeyValueStoreId": {
                "type": "string"
              },
              "defaultDatasetId": {
                "type": "string"
              },
              "defaultRequestQueueId": {
                "type": "string"
              },
              "buildNumber": {
                "type": "string",
                "example": "1.0.0"
              },
              "containerUrl": {
                "type": "string"
              },
              "usage": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "integer",
                    "example": 1
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              },
              "usageTotalUsd": {
                "type": "number",
                "example": 0.00005
              },
              "usageUsd": {
                "type": "object",
                "properties": {
                  "ACTOR_COMPUTE_UNITS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATASET_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "KEY_VALUE_STORE_WRITES": {
                    "type": "number",
                    "example": 0.00005
                  },
                  "KEY_VALUE_STORE_LISTS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_READS": {
                    "type": "integer",
                    "example": 0
                  },
                  "REQUEST_QUEUE_WRITES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_INTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "DATA_TRANSFER_EXTERNAL_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                    "type": "integer",
                    "example": 0
                  },
                  "PROXY_SERPS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}