{
  "openapi": "3.0.1",
  "info": {
    "title": "Smarty.cz Scraper: Prices, Stock, EAN & Filters",
    "description": "Scrape Smarty.cz (Czech phone, gaming & electronics retailer) by category, search, order code, EAN or product URL: price with and without VAT, discounts, discount codes, cashback, stock per store, dispatch date, EAN, parameters, price history. Site filters, monitoring, fast mode. Unofficial.",
    "version": "0.0",
    "x-build-id": "RaA8ZG5Od7WCxswOr"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tsutseisoftware~smarty-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tsutseisoftware-smarty-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~smarty-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tsutseisoftware-smarty-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~smarty-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tsutseisoftware-smarty-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": "Smarty.cz category URLs (e.g. https://www.smarty.cz/mobily-4c13740), product URLs (e.g. https://www.smarty.cz/ADATA-LEGEND-860-M-2-PCIe-4-0-1TB-4p208447) or search URLs (https://www.smarty.cz/Vyhledavani?query=powerbanka). Tip: set filters and sorting on the website and paste the URL (e.g. …/mobily-4c13740?s=p#pr=833&st=1); the actor keeps them.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchQueries": {
            "title": "Search queries",
            "type": "array",
            "description": "Search Smarty.cz like in the website's search box, e.g. 'powerbanka', 'usb-c kabel'. At most 10 queries per run, 2–100 characters each. Search pages are loaded through Apify Proxy residential IPs (Czech Republic); category and product pages still use the proxy below. When the site redirects a query to a category or product, that page is read instead (within Max pages per search).",
            "items": {
              "type": "string"
            }
          },
          "orderCodes": {
            "title": "Order codes",
            "type": "array",
            "description": "Look up products by Smarty order code (\"Objednací kód\" on the product page, e.g. 278120 or P77778), through the website's search (Apify Proxy residential IPs, like search queries). At most 100 order codes and EANs together per run. Each found product is returned with matchedBy: \"orderCode\".",
            "items": {
              "type": "string"
            }
          },
          "eans": {
            "title": "EANs",
            "type": "array",
            "description": "Look up products by EAN (barcode, 8–14 digits with a valid check digit, with or without leading zeros), through the website's search and the product page (to confirm the EAN; new goods first). Each found product is returned with EAN, warranty and parameters and matchedBy: \"ean\".",
            "items": {
              "type": "string"
            }
          },
          "maxSearchPages": {
            "title": "Max pages per search",
            "minimum": 1,
            "maximum": 5,
            "type": "integer",
            "description": "How many result pages (24 products each) to read for each search query, at most 5.",
            "default": 2
          },
          "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 separately, so one large category doesn't use up the whole Max products. 0 = no limit.",
            "default": 0
          },
          "includeDetails": {
            "title": "Add EAN, warranty and parameters",
            "type": "boolean",
            "description": "Open each product page to add the EAN (barcode), MPN (manufacturer part number), warranty, technical parameters, category path and number of ratings. Slower: one extra request per product (at most 20 requests per minute).",
            "default": false
          },
          "includeDescription": {
            "title": "Add a short description excerpt",
            "type": "boolean",
            "description": "Add the first ~200 characters of the product summary. Reads the product page (like \"Add EAN, warranty and parameters\"), so it is slower.",
            "default": false
          },
          "includePriceHistory": {
            "title": "Add price history",
            "type": "boolean",
            "description": "Add the monthly prices from the product's \"Vývoj ceny\" tab (and the competitors' average price when the chart shows it). Optional and slower: one extra request per product. The history is compiled by Smarty.cz; use it for your own analysis, not for republishing.",
            "default": false
          },
          "includeStoreStock": {
            "title": "Add stock in stores",
            "type": "boolean",
            "description": "Add the stock in each Smarty store and warehouse as shown in the website's store popup (store name, stock text, pickup time). Optional and slower: one extra request per product.",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "recommended",
              "cheapest",
              "mostExpensive",
              "newest"
            ],
            "type": "string",
            "description": "Order of products, as on the website. Sorting is done by the shop, so it's free and fast.",
            "default": "recommended"
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Only these brands, e.g. 'Apple', 'Samsung'. Case doesn't matter. The shop filters the most common brands of the category; for other brands the actor filters the products itself.",
            "items": {
              "type": "string"
            }
          },
          "siteAvailability": {
            "title": "Available",
            "type": "array",
            "description": "Only products in stock, as in the website's filter: in stock in total (warehouse or stores), in stock in the e-shop warehouse, or deliverable in Prague within 120 minutes.",
            "items": {
              "type": "string",
              "enum": [
                "in_stock",
                "in_stock_eshop",
                "prague_120_minutes"
              ],
              "enumTitles": [
                "In stock (Skladem celkem)",
                "In stock in the e-shop (Skladem eshop)",
                "Prague within 120 minutes"
              ]
            }
          },
          "stores": {
            "title": "In stock in store",
            "type": "array",
            "description": "Only products in stock in these stores, e.g. 'Brno - Olympia' or just 'Brno' (all Brno stores). Several values = any of them.",
            "items": {
              "type": "string"
            }
          },
          "parameterFilters": {
            "title": "Parameter filters",
            "type": "object",
            "description": "Filter by the category's parameters, as in the website's filter panel. Keys are filter names, values are a value or a list of values (any of them); ranges as \"min-max\". Example for phones: {\"Operační systém\": \"Android\", \"Nejrychlejší datová síť\": \"5G\", \"Velikost RAM\": \"8-16\", \"Typ produktu\": \"Mobilní telefony\"}. Available names and values are listed in the log when a name isn't found."
          },
          "excludeUsedOrOpenBox": {
            "title": "Exclude used and open-box products",
            "type": "boolean",
            "description": "Skip used, open-box (rozbalené) and like-new (zánovní) products. Uses the website's \"Stav zboží\" filter where the category has one, and the product labels everywhere.",
            "default": false
          },
          "onlyInStock": {
            "title": "Only products in stock",
            "type": "boolean",
            "description": "Keep only products shown as in stock ('Skladem …'). Store-only, supplier and in-transit products are skipped.",
            "default": false
          },
          "availability": {
            "title": "Availability",
            "type": "array",
            "description": "Keep only products with these availability states.",
            "items": {
              "type": "string",
              "enum": [
                "in_stock",
                "in_store_only",
                "at_supplier",
                "in_transit",
                "preorder",
                "out_of_stock",
                "unknown"
              ],
              "enumTitles": [
                "In stock",
                "In a store only",
                "At the supplier",
                "In transit (Na cestě)",
                "Pre-order (V prodeji od …, Brzy v prodeji)",
                "Out of stock",
                "Unknown (Neznámá dostupnost, Expedice bude upřesněna)"
              ]
            }
          },
          "onlyDiscounted": {
            "title": "Only discounted products",
            "type": "boolean",
            "description": "Keep only products shown with a crossed-out price.",
            "default": false
          },
          "minDiscountPercent": {
            "title": "Min discount (%)",
            "minimum": 1,
            "maximum": 99,
            "type": "integer",
            "description": "Keep only products discounted by at least this many percent (as shown by the shop)."
          },
          "minPrice": {
            "title": "Min price (CZK)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products with price (incl. VAT) at least this."
          },
          "maxPrice": {
            "title": "Max price (CZK)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products with price (incl. VAT) at most this. Tip: combine with Sort by: Cheapest first."
          },
          "excludeBrands": {
            "title": "Exclude brands",
            "type": "array",
            "description": "Skip products of these brands, e.g. 'Aligator'. Case and diacritics don't matter.",
            "items": {
              "type": "string"
            }
          },
          "nameKeywords": {
            "title": "Name must contain",
            "type": "array",
            "description": "Keep only products whose name contains at least one of these words (case and diacritics don't matter), e.g. '256GB'.",
            "items": {
              "type": "string"
            }
          },
          "excludeNameKeywords": {
            "title": "Name must not contain",
            "type": "array",
            "description": "Skip products whose name contains any of these words, e.g. 'pouzdro'.",
            "items": {
              "type": "string"
            }
          },
          "labels": {
            "title": "Labels",
            "type": "array",
            "description": "Keep only products with a label containing one of these words, e.g. 'Akce', 'Cashback', 'Novinka', 'Poslední šance'.",
            "items": {
              "type": "string"
            }
          },
          "onlyWithCoupon": {
            "title": "Only products with a discount code",
            "type": "boolean",
            "description": "Keep only products with a discount code label, e.g. \"Sleva 20 % s kódem EXTRA20\" (see couponCode and couponPrice in the output).",
            "default": false
          },
          "onlyWithCashback": {
            "title": "Only products with cashback",
            "type": "boolean",
            "description": "Keep only products with a cashback promotion (see cashbackCzk and priceAfterCashback in the output).",
            "default": false
          },
          "energyClasses": {
            "title": "Energy classes",
            "type": "array",
            "description": "Keep only products with one of these energy classes (shown on the product tile, e.g. phones and TVs). Products without an energy class are skipped when set.",
            "items": {
              "type": "string",
              "enum": [
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G"
              ]
            }
          },
          "minRating": {
            "title": "Min rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep only products rated at least this (0–5 stars). Products without ratings are skipped when set."
          },
          "minReviewCount": {
            "title": "Min number of ratings",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products with at least this many ratings. Reads the product pages (like \"Add EAN, warranty and parameters\")."
          },
          "onlyWithEan": {
            "title": "Only products with EAN",
            "type": "boolean",
            "description": "Skip products without an EAN (barcode). Reads the product pages (like \"Add EAN, warranty and parameters\").",
            "default": false
          },
          "onlyNewOrChanged": {
            "title": "Monitoring: only new or changed products",
            "type": "boolean",
            "description": "Return only products that are new or whose price, availability or price before discount changed since the previous run with the same Monitoring key. Unchanged products are free.",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring: key",
            "type": "string",
            "description": "Name of the saved state. Use a different key for each tracked set of products (e.g. 'phones-daily').",
            "default": "default"
          },
          "onlyPriceChanges": {
            "title": "Monitoring: only price changes",
            "type": "boolean",
            "description": "With monitoring: return new products and products whose price changed, not availability-only changes.",
            "default": false
          },
          "minPriceDropPercent": {
            "title": "Monitoring: min price drop (%)",
            "minimum": 1,
            "maximum": 99,
            "type": "integer",
            "description": "With monitoring: return only products whose price dropped by at least this many percent (price drop alerts)."
          },
          "includeRemovedProducts": {
            "title": "Monitoring: include removed products",
            "type": "boolean",
            "description": "With monitoring: also return products that disappeared since the previous run (changeType: \"removed\", with their last known values), and products that are back (\"reappeared\"). Checked only when the run read everything (no Max products or page limit reached, no rejected pages).",
            "default": false
          },
          "fastMode": {
            "title": "Fast mode",
            "type": "boolean",
            "description": "About 5× faster: up to 60 requests per minute, 2 at a time, for a small extra charge per product saved at that speed (see Pricing). Switches back to the normal speed (no extra charge) as soon as Smarty.cz rejects a request, shows a challenge or slows down.",
            "default": false
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute (normal speed)",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "To keep the load on the shop low the actor makes one request at a time, by default at most 12 per minute (max. 20). Fast mode ignores this.",
            "default": 12
          },
          "maxPagesPerCategory": {
            "title": "Max pages per category",
            "minimum": 0,
            "type": "integer",
            "description": "Safety limit for each category (24 products per page). 0 = no limit.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Smarty.cz rejects requests from Apify's own IP addresses and from several shared data-center proxy IPs, so the default is Apify Proxy with residential IPs in the Czech Republic. Requests are spread over a few proxy sessions (a different IP every 3 requests). You can also use your own Czech proxies.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "CZ"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}