{
  "openapi": "3.0.1",
  "info": {
    "title": "Wayfair Scraper",
    "description": "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.",
    "version": "1.0",
    "x-build-id": "KiSUfscwwPdwljRhy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~wayfair-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-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/crawlerbros~wayfair-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-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/crawlerbros~wayfair-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-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": {
          "mode": {
            "title": "Scrape mode",
            "enum": [
              "search",
              "byUrl",
              "byCategory",
              "byBrand",
              "byProduct"
            ],
            "type": "string",
            "description": "Discovery axis. search: keyword search. byUrl: paste any Wayfair search/category/brand/product URL(s). byCategory: top-level category browse. byBrand: brand listing URL(s). byProduct: SKU lookup (product detail page).",
            "default": "search"
          },
          "country": {
            "title": "Country / domain",
            "enum": [
              "com",
              "ca",
              "co.uk",
              "ie"
            ],
            "type": "string",
            "description": "Wayfair regional domain. com=US, ca=Canada, co.uk=UK, ie=Ireland. (Wayfair.de shut down in 2020 and is not supported.)",
            "default": "com"
          },
          "text": {
            "title": "Search keyword (search mode)",
            "type": "string",
            "description": "Free-text keyword (used in search mode). Examples: \"sofa\", \"office chair\", \"throw pillow\", \"area rug\".",
            "default": "sofa"
          },
          "category": {
            "title": "Category (byCategory mode)",
            "enum": [
              "furniture",
              "outdoor",
              "decor-pillows",
              "rugs",
              "kitchen-tabletop",
              "bed-bath",
              "lighting",
              "storage-organization",
              "appliances",
              "home-improvement",
              "baby-kids",
              "holiday-decor",
              "office",
              "pet"
            ],
            "type": "string",
            "description": "Top-level Wayfair category (resolves to a category browse URL). Used for byCategory mode.",
            "default": "furniture"
          },
          "urls": {
            "title": "URLs (byUrl mode)",
            "type": "array",
            "description": "Direct Wayfair URLs (search results, category page, or product detail page). Domain auto-detected from URL.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "brand": {
            "title": "Brand name (byBrand mode)",
            "type": "string",
            "description": "Brand / manufacturer name (e.g. \"Latitude Run\", \"Wade Logan\", \"Hokku Designs\"). The scraper performs a brand-scoped search on Wayfair.",
            "default": ""
          },
          "skus": {
            "title": "Product SKUs (byProduct mode)",
            "type": "array",
            "description": "Wayfair product SKUs (e.g. \"W118077895\", \"CXVA1530\"). The scraper resolves each SKU to its detail page.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort by (search / byCategory / byBrand)",
            "enum": [
              "relevance",
              "price_low_to_high",
              "price_high_to_low",
              "top_rated",
              "newest",
              "best_seller"
            ],
            "type": "string",
            "description": "Sort order on listing pages. Wayfair maps these to its sortby URL parameter.",
            "default": "relevance"
          },
          "priceMin": {
            "title": "Minimum price",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Drop products priced below this value (in the destination country's currency)."
          },
          "priceMax": {
            "title": "Maximum price",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Drop products priced above this value (in the destination country's currency)."
          },
          "ratingMin": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Drop products with rating below this value (0.0-5.0). Products with no rating are kept (the user opted into the filter, not into requiring the field)."
          },
          "fetchProductDetails": {
            "title": "Fetch product detail pages",
            "type": "boolean",
            "description": "For each listing card, fetch the product detail page to enrich with brand, full description, breadcrumbs, and high-resolution image. Adds 1 HTTP request per product.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Hard cap on emitted product records.",
            "default": 25
          },
          "maxPagesPerListing": {
            "title": "Max listing pages",
            "minimum": 1,
            "maximum": 25,
            "type": "integer",
            "description": "Maximum paginated listing pages (?page=N) to crawl per search/category/brand seed (~48 products per page).",
            "default": 3
          },
          "proxyConfiguration": {
            "title": "Apify proxy configuration",
            "type": "object",
            "description": "Apify proxy configuration. Wayfair blocks Apify datacenter IPs, so RESIDENTIAL proxy is required. Default is RESIDENTIAL. Leaving blank disables proxy and the actor will likely 429 on every request from Apify cloud.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}