{
  "openapi": "3.0.1",
  "info": {
    "title": "Smarty.sk Scraper (Slovakia): Prices, Stock, EAN & Filters",
    "description": "Scrape Smarty.sk (Slovak phone, gaming & electronics retailer) by category, search, order code, EAN or product URL: EUR prices 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": "iXWPfm0jhabUoQaHO"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tsutseisoftware~smarty-sk-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tsutseisoftware-smarty-sk-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-sk-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tsutseisoftware-smarty-sk-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-sk-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tsutseisoftware-smarty-sk-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.sk category URLs (e.g. https://www.smarty.sk/mobily-4c13740), product URLs (e.g. https://www.smarty.sk/apple-iphone-17-pro-256gb-kozmicky-oranzovy-4p240056) or search URLs (https://www.smarty.sk/Vyhladavanie?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.sk like in the website's search box, e.g. 'powerbanka', 'usb-c kábel'. At most 10 queries per run, 2–100 characters each. 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 (\"Objednávací kód\" on the product page, e.g. 278120 or P77778), through the website's search. 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), 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, search query or lookup 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 in EUR 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.sk; 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 in Slovakia (Bratislava, Košice, Banská Bystrica, Nitra, Trnava…) 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 \"Skladom celkom\" (in stock in the warehouse or stores).",
            "items": {
              "type": "string",
              "enum": [
                "in_stock"
              ],
              "enumTitles": [
                "In stock (Skladom celkom)"
              ]
            }
          },
          "stores": {
            "title": "In stock in store",
            "type": "array",
            "description": "Only products in stock in these stores, e.g. 'Bratislava - Avion' or just 'Bratislava' (all Bratislava 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\", \"Najrýchlejšia dátová sieť\": \"5G\", \"Veľkosť pamäte RAM\": \"8-16\", \"Typ produktu\": \"Mobilné telefóny\"}. 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 (použité), open-box (rozbalené) and like-new (zánovné) products. Uses the website's \"Stav tovaru\" 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 ('Na sklade …', 'Skladom …'). 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 ceste)",
                "Pre-order (V predaji od …)",
                "Out of stock",
                "Unknown (Neznáma dostupnosť, Expedícia bude upresnená)"
              ]
            }
          },
          "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 (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products with price (incl. VAT) at least this."
          },
          "maxPrice": {
            "title": "Max price (EUR)",
            "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. 'puzdro'.",
            "items": {
              "type": "string"
            }
          },
          "labels": {
            "title": "Labels",
            "type": "array",
            "description": "Keep only products with a label containing one of these words, e.g. 'Akcia', 'Cashback', 'Novinka', 'Posledná šanca'.",
            "items": {
              "type": "string"
            }
          },
          "onlyWithCoupon": {
            "title": "Only products with a discount code",
            "type": "boolean",
            "description": "Keep only products with a discount code label, e.g. \"Zľava 5 % s kódom 5EXTRA\" (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, e.g. \"Cashback 170 €\" (see cashbackEur 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.sk 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.sk rejects requests from Apify's own IP addresses and, for product pages and searches, from data-center proxy IPs, so the default is Apify Proxy with residential IPs in Slovakia. Requests are spread over a few proxy sessions (a different IP every 3 requests). You can also use your own Slovak proxies.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "SK"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}