{
  "openapi": "3.0.1",
  "info": {
    "title": "BAUHAUS.cz Scraper (CZ): Prices & Store Stock",
    "description": "Scrape BAUHAUS.cz (Czech DIY & garden stores) by category, search, article number, EAN or product URL: price, discount, unit price, EAN, MPN, stock in 9 stores, variants, rating & reviews, documents. Filters, monitoring, fast mode. Unofficial.",
    "version": "0.0",
    "x-build-id": "40aZrUu6yN7aBdMCV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tsutseisoftware~bauhaus-cz-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tsutseisoftware-bauhaus-cz-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/tsutseisoftware~bauhaus-cz-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tsutseisoftware-bauhaus-cz-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/tsutseisoftware~bauhaus-cz-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tsutseisoftware-bauhaus-cz-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": {
          "startUrls": {
            "title": "Category or product URLs",
            "type": "array",
            "description": "BAUHAUS.cz category URLs (e.g. https://www.bauhaus.cz/aku-sroubovaky-a-aku-vrtacky-245008) or product URLs (e.g. https://www.bauhaus.cz/lepici-paska-25363104). Tip: set filters and sorting on the website and paste the URL (e.g. …-245008?manufacturer=7008&sort=final_price); the actor keeps them. Product URLs are read 50 at a time and always include the product page data (EAN, parameters, pick-up, variants).",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchQueries": {
            "title": "Search terms",
            "type": "array",
            "description": "Search like the website's search box: a product name, model number, brand or EAN, e.g. \"EasyDrill 18V-38\", \"vrtačka\", \"Makita\" or \"4053423483987\". Results in the website's order (the first ones are the best matches). At most 10 terms per run; \"Max pages per search term\" limits each one.",
            "items": {
              "type": "string"
            }
          },
          "productCodes": {
            "title": "Article numbers",
            "type": "array",
            "description": "BAUHAUS article numbers (\"Artiklové číslo\", 8 digits, e.g. 33134668), read 50 per request. Good for monitoring your own list of products. Up to 5 000. Codes that are not found are listed in the status message.",
            "items": {
              "type": "string"
            }
          },
          "eans": {
            "title": "EANs",
            "type": "array",
            "description": "EAN barcodes (8 to 14 digits; leading zeros don't matter), read 40 per request. Up to 5 000.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max products",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of products saved. You pay per saved product. 0 = no limit.",
            "default": 100
          },
          "maxItemsPerStartUrl": {
            "title": "Max products per URL",
            "minimum": 0,
            "type": "integer",
            "description": "Limit for each start URL, search term, the list of article numbers and the list of EANs separately, so one large category doesn't use up the whole Max products. 0 = no limit.",
            "default": 0
          },
          "includeDetails": {
            "title": "Add parameters, dimensions, pick-up and description",
            "type": "boolean",
            "description": "Open each product page to add the technical parameters (with width, height, length, depth, thickness, weight, material and colour as separate fields), the description, the category breadcrumb of the product page, whether it can be reserved for pick-up in a store (\"Rezervovat a vyzvednout na prodejně\") and the assembly service. Slower: one extra request per product. EAN and the manufacturer's part number come without it.",
            "default": false
          },
          "descriptionMaxLength": {
            "title": "Description length",
            "minimum": 0,
            "type": "integer",
            "description": "With \"Add EAN, parameters, dimensions and pick-up\": how many characters of the product description to keep (cut at a word). 0 = the whole description.",
            "default": 200
          },
          "includeStoreStock": {
            "title": "Add stock in BAUHAUS stores",
            "type": "boolean",
            "description": "Add stock in each of the 9 BAUHAUS stores (\"Skladem 5\" as on the website). One extra request per 50 products.",
            "default": false
          },
          "includeRatings": {
            "title": "Add rating",
            "type": "boolean",
            "description": "Add the average rating, the number of ratings and the number of ratings per star, as on the product page (no names). One extra request per 50 products.",
            "default": false
          },
          "includeReviews": {
            "title": "Add review texts",
            "type": "boolean",
            "description": "Add the review texts of each product with ratings: rating, title, text, date, language and verified purchase (never the author's name). Turns on \"Add rating\"; one extra request per product with ratings. Texts are written by customers and may contain names; don't republish them.",
            "default": false
          },
          "maxReviewsPerProduct": {
            "title": "Max reviews per product",
            "minimum": 1,
            "maximum": 100,
            "type": "integer",
            "description": "Newest reviews kept per product with \"Add review texts\".",
            "default": 10
          },
          "includeVariants": {
            "title": "Add variants",
            "type": "boolean",
            "description": "Add the product's other variants from the website's variant picker (\"Vyberte variantu\", e.g. other sizes or shades): article number, URL, subtitle, price and the picker values, plus \"Montáž produktu\" (assembly service). One extra request per 50 products.",
            "default": false
          },
          "includeDocuments": {
            "title": "Add documents (manuals, data sheets)",
            "type": "boolean",
            "description": "Add the documents of the \"Ke stažení\" block: user and assembly manuals, technical and safety data sheets, energy labels and declarations, each with its name and URL (the files are not downloaded). One request per run.",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "relevance",
              "newest",
              "recentlyUpdated",
              "priceAsc",
              "priceDesc"
            ],
            "type": "string",
            "description": "Order of products in category listings. Sorting is done by the shop, so it's free and fast. \"Newest\" puts the products added to the shop most recently first; the website's own \"Latest\" sorts by the last change of a product (\"Recently updated\"). A sort in the URL is used when this is left on Recommended. Search results keep the website's order.",
            "default": "relevance"
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Only these brands, e.g. 'Bosch', 'Makita'. Case doesn't matter. In category listings the shop filters itself (a category without any of the brands is skipped); other sources are filtered by the actor.",
            "items": {
              "type": "string"
            }
          },
          "parameterFilters": {
            "title": "Parameter filters",
            "type": "object",
            "description": "Filter by the category's parameters, as on the website. Keys are parameter names, values a value or a list of values (any of them). Example for cordless drills: {\"Napětí\": [\"18 V\"], \"Typ akumulátoru\": \"Li-Ion\"}. \"Kategorie\" filters by product type. When a name isn't found, the log lists the filters of that category."
          },
          "onlyAvailableOnline": {
            "title": "Only available online",
            "type": "boolean",
            "description": "Keep only products shown as \"Dostupné online\" (can be ordered for delivery).",
            "default": false
          },
          "stores": {
            "title": "In stock in these stores",
            "type": "array",
            "description": "Only products in stock in one of these stores. Turns on store stock.",
            "items": {
              "type": "string",
              "enum": [
                "Trmice, Ústí nad Labem",
                "Plzeň",
                "Praha 8, Dolní Chabry",
                "Praha 4, Pankrác",
                "Liberec",
                "České Budějovice",
                "Brno Ivanovice",
                "Brno (Heršpická)",
                "Čestlice"
              ],
              "enumTitles": [
                "Trmice, Ústí nad Labem",
                "Plzeň",
                "Praha 8, Dolní Chabry",
                "Praha 4, Pankrác",
                "Liberec",
                "České Budějovice",
                "Brno Ivanovice",
                "Brno (Heršpická)",
                "Čestlice"
              ]
            }
          },
          "onlyAvailableInStores": {
            "title": "Only in stock in a store",
            "type": "boolean",
            "description": "Keep only products in stock in at least one BAUHAUS store. Turns on store stock.",
            "default": false
          },
          "minStoreQuantity": {
            "title": "Min pieces in a store",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products with at least this many pieces in one BAUHAUS store (in one of \"In stock in these stores\", if set), as shown \"(Skladem N)\". Turns on store stock. 0 = off."
          },
          "onlyDiscounted": {
            "title": "Only discounted products",
            "type": "boolean",
            "description": "Keep only products shown with \"Ušetříte X %\" and a crossed-out price.",
            "default": false
          },
          "onlyInLeaflet": {
            "title": "Only from the current leaflet",
            "type": "boolean",
            "description": "Keep only products with the label \"Z aktuálního letáku\".",
            "default": false
          },
          "onlySellOff": {
            "title": "Only sell-off",
            "type": "boolean",
            "description": "Keep only products with the label \"Doprodej\".",
            "default": false
          },
          "onlyOnlineOnly": {
            "title": "Only \"online only\"",
            "type": "boolean",
            "description": "Keep only products with the label \"Pouze online\".",
            "default": false
          },
          "onlyFreeShipping": {
            "title": "Only with free shipping",
            "type": "boolean",
            "description": "Keep only products with the label \"Doprava zdarma\".",
            "default": false
          },
          "minDiscountPercent": {
            "title": "Min discount (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Keep only products with at least this discount, as shown by the shop."
          },
          "minPrice": {
            "title": "Min price (CZK)",
            "minimum": 0,
            "type": "integer",
            "description": "Lowest price incl. VAT. In category listings the shop filters by price itself (the whole category is searched, page limits don't cut the results); other sources are filtered by the actor."
          },
          "maxPrice": {
            "title": "Max price (CZK)",
            "minimum": 0,
            "type": "integer",
            "description": "Highest price incl. VAT. In category listings the shop filters by price itself; other sources are filtered by the actor."
          },
          "labels": {
            "title": "Labels",
            "type": "array",
            "description": "Keep only products with one of these website labels.",
            "items": {
              "type": "string",
              "enum": [
                "Z aktuálního letáku",
                "Doprodej",
                "Doprava zdarma",
                "Pouze online",
                "BAUHAUS záruka",
                "Množstevní sleva",
                "Novinka"
              ],
              "enumTitles": [
                "Z aktuálního letáku",
                "Doprodej",
                "Doprava zdarma",
                "Pouze online",
                "BAUHAUS záruka",
                "Množstevní sleva",
                "Novinka"
              ]
            }
          },
          "energyClasses": {
            "title": "Energy classes",
            "type": "array",
            "description": "Keep only products whose energy label shows one of these classes. Products without an energy label are skipped.",
            "items": {
              "type": "string",
              "enum": [
                "A+++",
                "A++",
                "A+",
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G"
              ],
              "enumTitles": [
                "A+++",
                "A++",
                "A+",
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G"
              ]
            }
          },
          "excludeBrands": {
            "title": "Exclude brands",
            "type": "array",
            "description": "Skip products of these brands, e.g. 'Bauhaus'. Case doesn't matter.",
            "items": {
              "type": "string"
            }
          },
          "nameKeywords": {
            "title": "Name must contain",
            "type": "array",
            "description": "Keep only products whose name contains one of these words (case and diacritics don't matter).",
            "items": {
              "type": "string"
            }
          },
          "excludeNameKeywords": {
            "title": "Name must not contain",
            "type": "array",
            "description": "Skip products whose name contains one of these words.",
            "items": {
              "type": "string"
            }
          },
          "minRating": {
            "title": "Min rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep only products with at least this average rating (1–5). Turns on ratings."
          },
          "minReviewCount": {
            "title": "Min number of ratings",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products with at least this many ratings. Turns on ratings."
          },
          "onlyWithEan": {
            "title": "Only products with EAN",
            "type": "boolean",
            "description": "Keep only products with an EAN (the EAN comes with every product, no product page needed).",
            "default": false
          },
          "onlyReservableInStore": {
            "title": "Only reservable in a store",
            "type": "boolean",
            "description": "Keep only products the product page offers for \"Rezervovat a vyzvednout na prodejně\" (reserve and pick up in a store). Reads the product pages (like \"Add EAN, parameters, dimensions and pick-up\").",
            "default": false
          },
          "onlyNewOrChanged": {
            "title": "Monitoring: only new or changed products",
            "type": "boolean",
            "description": "Save only products that are new or whose price, availability, discount or quantity price changed since the previous run with the same monitoring key. You pay only for those.",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring key",
            "type": "string",
            "description": "Name of the saved state. Use a different key for each monitored set of URLs.",
            "default": "default"
          },
          "onlyPriceChanges": {
            "title": "Monitoring: only price changes",
            "type": "boolean",
            "description": "With monitoring: skip products whose only change is availability or discount.",
            "default": false
          },
          "minPriceDropPercent": {
            "title": "Monitoring: min price drop (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "number",
            "description": "With monitoring: save only products whose price dropped by at least this percentage since the previous run."
          },
          "monitorStoreAvailability": {
            "title": "Monitoring: store availability changes",
            "type": "boolean",
            "description": "With monitoring: also report products whose list of stores with stock changed (e.g. back in stock in Čestlice), with the previous list in previousStoresInStock. Piece counts alone don't count. Turns on store stock.",
            "default": false
          },
          "includeRemovedProducts": {
            "title": "Monitoring: include removed products",
            "type": "boolean",
            "description": "With \"Monitoring: only new or changed products\": also return products from the previous run with the same Monitoring key that are no longer on the website (sold out or removed), as rows with changeType \"removed\", removedAt and the last known name, price and URL; when one comes back it is \"reappeared\". Checked only when the run read everything (Max products, Max products per URL, page limits or unread pages skip the check, and the status message says why). Removed rows are charged like any other product. Use one Monitoring key per input.",
            "default": false
          },
          "fastMode": {
            "title": "Fast mode (small extra charge)",
            "type": "boolean",
            "description": "Reads BAUHAUS.cz up to 5x faster: at most 60 requests per minute and 3 at a time instead of 12 per minute and 2 at a time. It stays polite: the moment the website answers \"too many requests\", \"service unavailable\", \"forbidden\", shows a challenge or slows down, the run switches back to the normal speed for the rest of the run; it waits when the website asks it to wait and never changes IP address to get around a limit. Extra charge \"Fast mode\" ($0.01 per 1 000 products, see the Pricing tab) only for products saved while the fast speed was on. Please don't run several fast-mode runs at the same time.",
            "default": false
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Requests per minute at the normal speed (all kinds together). The shop renders every page on its server, so the actor stays gentle; 20 is the maximum. Fast mode ignores this.",
            "default": 12
          },
          "searchMode": {
            "title": "Search mode",
            "enum": [
              "products",
              "categories"
            ],
            "type": "string",
            "description": "Products: the website's own product search. Categories: the BAUHAUS.cz categories whose name contains the words are read instead (the older behaviour, also used automatically when the website search does not answer).",
            "default": "products"
          },
          "maxPagesPerSearch": {
            "title": "Max pages per search term",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Pages of 50 search results read for each search term (in Categories mode: pages of 50 products in each category found).",
            "default": 2
          },
          "maxCategoriesPerSearch": {
            "title": "Max categories per search term",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "Categories mode: how many matching categories are read for each search term (best matches first).",
            "default": 3
          },
          "scrapeWholeCatalog": {
            "title": "Whole catalog (about 94 000 products, mind the price)",
            "type": "boolean",
            "description": "Read every product URL of the sitemap (about 94 000), 50 per request. You pay for every saved product: the whole catalog costs about $460 at $4.90 per 1 000. \"Max products\" still stops the run (set it on purpose; 0 = no limit). It takes about 2.5 hours (about 35 minutes in fast mode). Filters apply.",
            "default": false
          },
          "maxPagesPerCategory": {
            "title": "Max pages per category",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Pages of 50 products read per category URL (20 pages = 1,000 products). The shop serves at most 200 pages; for bigger categories use their subcategories or \"Whole catalog\".",
            "default": 20
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "BAUHAUS.cz works without a proxy from Apify, so no proxy is used by default.",
            "default": {
              "useApifyProxy": false
            }
          }
        }
      },
      "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "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
                  },
                  "PROXY_UNBLOCKER_UNITS": {
                    "type": "integer",
                    "example": 0
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}