{
  "openapi": "3.0.1",
  "info": {
    "title": "Chairish Furniture Scraper",
    "description": "Scrape vintage, antique and designer furniture and decor listings from chairish.com. Browse a category, search by keyword, or fetch exact URLs. Returns price, condition, dimensions, materials, seller and images.",
    "version": "1.0",
    "x-build-id": "9mP4010aOxON3uk5s"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~chairish-furniture-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-chairish-furniture-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~chairish-furniture-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-chairish-furniture-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~chairish-furniture-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-chairish-furniture-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "collection",
              "search",
              "byUrls",
              "bySeller"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "collection"
          },
          "collectionHandle": {
            "title": "Category (mode=collection)",
            "enum": [
              "new-arrivals",
              "sofas",
              "sectionals",
              "loveseats-and-settees",
              "chairs",
              "accent-chairs",
              "chaises-and-daybeds",
              "ottomans",
              "benches",
              "bar-stools",
              "coffee-tables",
              "console-tables",
              "side-tables",
              "dining-tables",
              "dining-chairs",
              "desks",
              "bookcases-and-etageres",
              "credenzas",
              "armoires",
              "dressers",
              "nightstands",
              "beds",
              "bedframes",
              "cabinets",
              "bar-carts",
              "mirrors",
              "lighting",
              "chandeliers",
              "floor-lamps",
              "table-lamps",
              "rugs",
              "art",
              "decor",
              "decorative-plates",
              "vases",
              "pillows",
              "accent-and-throw-pillows"
            ],
            "type": "string",
            "description": "Category to browse, from Chairish's own collection facets. Required for mode=collection. (Only the listed values are accepted -- the platform's input validation rejects any other slug, even though chairish.com hosts additional collection pages; use mode=byUrls to fetch one of those directly.)",
            "default": "sofas"
          },
          "searchQuery": {
            "title": "Search query (mode=search)",
            "type": "string",
            "description": "Free-text keyword search, e.g. `mid century credenza`, `walnut desk`, `art deco mirror`.",
            "default": "mid century credenza"
          },
          "sellerSlug": {
            "title": "Seller shop slug or URL (mode=bySeller)",
            "type": "string",
            "description": "Chairish seller/dealer shop slug (e.g. `schumacher`) or a full `chairish.com/shop/<slug>` URL. Required for mode=bySeller. Returns that seller's real catalog, paginated, with the same price/color/style/sort filters as `collection`/`search`.",
            "default": ""
          },
          "productUrls": {
            "title": "Product or collection URLs (mode=byUrls)",
            "type": "array",
            "description": "Exact chairish.com product or collection URLs to fetch directly.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "minPrice": {
            "title": "Min price (USD)",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Drop listings priced below this. Applied server-side via Chairish's own \"Price\" facet (mode=collection, search, bySeller), so it narrows the source results (not just a post-filter); always applied as a post-filter too."
          },
          "maxPrice": {
            "title": "Max price (USD)",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Drop listings priced above this. Applied server-side via Chairish's own \"Price\" facet (mode=collection, search, bySeller), so it narrows the source results (not just a post-filter); always applied as a post-filter too."
          },
          "condition": {
            "title": "Filter by condition (mode=collection, search, bySeller)",
            "enum": [
              "",
              "New",
              "Used",
              "Refurbished"
            ],
            "type": "string",
            "description": "Restrict results to one item condition. `New` and `Used` are applied server-side via Chairish's own item_type facet (narrows the source results, not just a post-filter); `Refurbished` is a post-filter only (Chairish has no server-side facet for it). Not available in mode=byUrls.",
            "default": ""
          },
          "color": {
            "title": "Filter by color (mode=collection, search, bySeller)",
            "enum": [
              "",
              "Red",
              "Orange",
              "Yellow",
              "Green",
              "Turquoise",
              "Blue",
              "Purple",
              "Pink",
              "Black",
              "White",
              "Gray",
              "Brown",
              "Tan",
              "Gold",
              "Silver",
              "Copper",
              "Transparent"
            ],
            "type": "string",
            "description": "Restrict results to one Chairish color-swatch facet. Applied server-side on `collection`/`search` (narrows the source results, not just a post-filter); also used as a substring post-filter against the listing's color field in every mode.",
            "default": ""
          },
          "freeShippingOnly": {
            "title": "Free shipping only (mode=collection, search, bySeller)",
            "type": "boolean",
            "description": "Restrict results to items with free shipping. Applied server-side via Chairish's own shipping-options facet, so it narrows the source results (not just a post-filter). Not available in mode=byUrls.",
            "default": false
          },
          "underFiftyShippingOnly": {
            "title": "Shipping under $50 only (mode=collection, search, bySeller)",
            "type": "boolean",
            "description": "Restrict results to items with shipping cost under $50. Applied server-side via Chairish's own \"Shipping Options\" facet, so it narrows the source results (not just a post-filter). Ignored if `freeShippingOnly` is also on (free shipping is a strict subset). Not available in mode=byUrls.",
            "default": false
          },
          "style": {
            "title": "Filter by design style (mode=collection, search, bySeller)",
            "enum": [
              "",
              "Mid-Century Modern",
              "Modern",
              "Traditional",
              "Contemporary",
              "Italian",
              "Art Deco",
              "Hollywood Regency",
              "Boho Chic",
              "Shabby Chic",
              "Abstract",
              "African",
              "American",
              "Art Nouveau",
              "Arts & Crafts",
              "Asian",
              "Bauhaus",
              "Brutalist",
              "Campaign",
              "Children's",
              "Chippendale",
              "Classical Roman",
              "Coastal",
              "Cubism",
              "English",
              "Figurative",
              "Folk Art",
              "French",
              "Gothic",
              "Gustavian (Swedish)",
              "Industrial",
              "Islamic",
              "Mediterranean",
              "Memphis",
              "Mexican",
              "Minimalism",
              "Nautical",
              "Op Art",
              "Pop Art",
              "Post Impressionist",
              "Postmodern",
              "Realism",
              "Rustic",
              "Rustic European",
              "Safari",
              "Spanish",
              "Surrealism",
              "The School of Paris",
              "Transitional",
              "Tribal"
            ],
            "type": "string",
            "description": "Restrict results to one Chairish design-style facet (e.g. Mid-Century Modern, Art Deco). Applied server-side, so it narrows the source results (not just a post-filter). Not available in mode=byUrls.",
            "default": ""
          },
          "setSize": {
            "title": "Sets/pieces (mode=collection, search, bySeller)",
            "enum": [
              "",
              "1",
              "2",
              "3P"
            ],
            "type": "string",
            "description": "Restrict results to single items, pairs, or sets of 3+ pieces (e.g. dining chair sets, matching armchair pairs). Applied server-side via Chairish's own \"Sets/Pieces\" facet, so it narrows the source results (not just a post-filter). Not available in mode=byUrls.",
            "default": ""
          },
          "availability": {
            "title": "Availability (mode=collection, search, bySeller)",
            "enum": [
              "",
              "hideSoldOut",
              "readyToShip"
            ],
            "type": "string",
            "description": "Restrict results by stock/lead-time status. Applied server-side via Chairish's own \"Availability\" facet, so it narrows the source results (not just a post-filter). Not available in mode=byUrls.",
            "default": ""
          },
          "itemLocation": {
            "title": "Item location (mode=collection, search, bySeller)",
            "enum": [
              "",
              "USA",
              "Europe"
            ],
            "type": "string",
            "description": "Restrict results to items shipping from the US, or from a European seller. Applied server-side via Chairish's own \"Item Location\" facet, so it narrows the source results (not just a post-filter); also enforced as a post-filter against each listing's seller address country. Not available in mode=byUrls.",
            "default": ""
          },
          "featured": {
            "title": "Featured collection (mode=collection, search, bySeller)",
            "enum": [
              "",
              "newArrivals",
              "aList"
            ],
            "type": "string",
            "description": "Restrict results to a Chairish-curated featured group: brand-new listings, or hand-picked \"A-List\" designer picks. Applied server-side via Chairish's own \"Featured\" facet, so it narrows the source results (not just a post-filter). Not available in mode=byUrls.",
            "default": ""
          },
          "onSaleOnly": {
            "title": "On sale only (mode=collection, search, bySeller)",
            "type": "boolean",
            "description": "Restrict results to items currently marked down from their original price. Applied server-side via Chairish's own \"Sale\" facet, so it narrows the source results (not just a post-filter). Not available in mode=byUrls.",
            "default": false
          },
          "minWidthIn": {
            "title": "Min width, inches (mode=collection, search, bySeller)",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Drop listings narrower than this (inches). Applied server-side via Chairish's own per-category dimension facet (\"Width\" slider), so it narrows the source results (not just a post-filter); also enforced as a post-filter. Listings without a published width always pass. Not available in mode=byUrls."
          },
          "maxWidthIn": {
            "title": "Max width, inches (mode=collection, search, bySeller)",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Drop listings wider than this (inches). Applied server-side via Chairish's own per-category dimension facet, so it narrows the source results (not just a post-filter); also enforced as a post-filter. Listings without a published width always pass. Not available in mode=byUrls."
          },
          "minDepthIn": {
            "title": "Min depth, inches (mode=collection, search, bySeller)",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Drop listings shallower than this (inches). Applied server-side via Chairish's own per-category dimension facet (\"Depth\" slider), so it narrows the source results (not just a post-filter); also enforced as a post-filter. Listings without a published depth always pass. Not available in mode=byUrls."
          },
          "maxDepthIn": {
            "title": "Max depth, inches (mode=collection, search, bySeller)",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Drop listings deeper than this (inches). Applied server-side via Chairish's own per-category dimension facet, so it narrows the source results (not just a post-filter); also enforced as a post-filter. Listings without a published depth always pass. Not available in mode=byUrls."
          },
          "minHeightIn": {
            "title": "Min height, inches (mode=collection, search, bySeller)",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Drop listings shorter than this (inches). Applied server-side via Chairish's own per-category dimension facet (\"Height\" slider), so it narrows the source results (not just a post-filter); also enforced as a post-filter. Listings without a published height always pass. Not available in mode=byUrls."
          },
          "maxHeightIn": {
            "title": "Max height, inches (mode=collection, search, bySeller)",
            "minimum": 0,
            "maximum": 1000,
            "type": "integer",
            "description": "Drop listings taller than this (inches). Applied server-side via Chairish's own per-category dimension facet, so it narrows the source results (not just a post-filter); also enforced as a post-filter. Listings without a published height always pass. Not available in mode=byUrls."
          },
          "sortBy": {
            "title": "Sort order (mode=collection, search, bySeller)",
            "enum": [
              "",
              "-last_activity_at",
              "price",
              "-price",
              "-num_favorites"
            ],
            "type": "string",
            "description": "Order in which the source returns results. Only affects which items are captured first when `maxItems` is below the collection/search total. Not available in mode=byUrls.",
            "default": ""
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 500,
            "type": "integer",
            "description": "Hard cap on emitted records.",
            "default": 30
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}