{
  "openapi": "3.0.1",
  "info": {
    "title": "Wayfair Scraper",
    "description": "Scrape Wayfair products by keyword, URL, category, brand, or SKU across the US, CA, UK, and IE storefronts. Get SKU, title, brand, price, previous price, rating, reviews, image, and promo flags.",
    "version": "1.0",
    "x-build-id": "g5WZeaNOViGy5KnIO"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~wayfair-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-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/parsebird~wayfair-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-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/parsebird~wayfair-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-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": "Mode",
            "enum": [
              "search",
              "byUrl",
              "byCategory",
              "byBrand",
              "byProduct"
            ],
            "type": "string",
            "description": "How to find products. search = keyword search. byUrl = paste any Wayfair search, category, brand, or product URL. byCategory = browse a top-level Wayfair category. byBrand = brand-scoped keyword search. byProduct = look up products by SKU.",
            "default": "search"
          },
          "country": {
            "title": "Storefront",
            "enum": [
              "com",
              "ca",
              "co.uk",
              "ie"
            ],
            "type": "string",
            "description": "Which regional Wayfair storefront to scrape. In byUrl mode the storefront is auto-detected from each URL's host.",
            "default": "com"
          },
          "text": {
            "title": "Search keyword",
            "type": "string",
            "description": "Free-text keyword to search the storefront catalog. Used in 'search' mode."
          },
          "category": {
            "title": "Category",
            "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 to browse. Used in 'byCategory' mode.",
            "default": "Furniture"
          },
          "brand": {
            "title": "Brand",
            "type": "string",
            "description": "Brand name for 'byBrand' mode, e.g. \"Latitude Run\" or \"Mercury Row\". The scraper runs a brand-scoped keyword search."
          },
          "urls": {
            "title": "Wayfair URLs",
            "type": "array",
            "description": "Direct Wayfair URLs for 'byUrl' mode — search results, category, brand, or product detail pages. The URL kind and storefront are auto-detected.",
            "items": {
              "type": "string"
            }
          },
          "skus": {
            "title": "Wayfair SKUs",
            "type": "array",
            "description": "Wayfair SKUs for 'byProduct' mode, e.g. W118077895 or CXVA1530.",
            "items": {
              "type": "string"
            }
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "price_low_to_high",
              "price_high_to_low",
              "top_rated",
              "newest",
              "best_seller"
            ],
            "type": "string",
            "description": "Result order applied on Wayfair's own listing pages. Used in listing modes.",
            "default": "relevance"
          },
          "priceMin": {
            "title": "Minimum price",
            "minimum": 0,
            "type": "integer",
            "description": "Drop products priced below this value (storefront currency)."
          },
          "priceMax": {
            "title": "Maximum price",
            "minimum": 0,
            "type": "integer",
            "description": "Drop products priced above this value (storefront currency)."
          },
          "ratingMin": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Drop products with an average rating below this value (0.0-5.0)."
          },
          "fetchProductDetails": {
            "title": "Fetch product details",
            "type": "boolean",
            "description": "For every listing card, also fetch the product detail page and add brand, full description, breadcrumbs, category, and a high-resolution image. Slower and uses more proxy traffic.",
            "default": false
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "type": "integer",
            "description": "Hard cap on the number of products saved to the dataset across all seeds.",
            "default": 100
          },
          "maxPagesPerListing": {
            "title": "Max pages per listing",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Maximum number of paginated listing pages to crawl per seed. Each page holds about 48 products.",
            "default": 10
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Wayfair answers Apify datacenter and plain residential IPs with 'Press & Hold' bot challenges. The default (Apify Proxy Unblocker group) clears the challenge and is required for cloud runs. Access to the Unblocker group is included on paid Apify plans.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "UNBLOCKER"
              ]
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}