{
  "openapi": "3.0.1",
  "info": {
    "title": "Planeo.sk Scraper (Slovakia): Prices, Discount Codes & EAN",
    "description": "Scrape Planeo.sk (Slovak electronics & appliances chain) by category, search, product code, EAN or URL: EUR prices, discount codes, cashback, stock per store, EAN, parameters. Website filters, monitoring. Unofficial.",
    "version": "0.0",
    "x-build-id": "XNhw05fBehtAHGWKg"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tsutseisoftware~planeo-sk-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tsutseisoftware-planeo-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~planeo-sk-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tsutseisoftware-planeo-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~planeo-sk-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tsutseisoftware-planeo-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, search or product URLs",
            "type": "array",
            "description": "Planeo.sk category URLs (e.g. https://www.planeo.sk/televizory), search URLs (https://www.planeo.sk/vyhladavanie?q=sencor) or product URLs (e.g. https://www.planeo.sk/samsung-qe55s83h). Tip: set filters and sorting on the website and paste the URL (e.g. …/televizory?znacka=samsung&sort=PRICE_ASC); the actor keeps them.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "searchQueries": {
            "title": "Search terms",
            "type": "array",
            "description": "Searched with the website's own search, in its order (e.g. \"lg oled\", \"iphone 17\"). Up to 10 terms per run; \"Max pages per search\" limits each. Sorting by price works for searches too.",
            "items": {
              "type": "string"
            }
          },
          "productCodes": {
            "title": "Product codes",
            "type": "array",
            "description": "Planeo product codes (the number after \"ID:\" on the product page, the end of the id field, e.g. 35063826; mostly the same as on Planeo.cz). Each is looked up with the website's search; only an exact code match is returned.",
            "items": {
              "type": "string"
            }
          },
          "eans": {
            "title": "EANs",
            "type": "array",
            "description": "EAN barcodes (check digit verified). The website's search finds the product and the product page confirms the EAN (one product page per EAN, so details are included). Up to 500 codes and EANs per run.",
            "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 or search term separately, so one large category doesn't use up the whole Max products. 0 = no limit.",
            "default": 0
          },
          "includeDetails": {
            "title": "Add product page details",
            "type": "boolean",
            "description": "Open each product page to add the EAN (barcode), all technical parameters, the description, the cashback amount and the exact rating. One extra request per product.",
            "default": false
          },
          "descriptionMaxLength": {
            "title": "Description length",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum characters of the description (with product page details). 0 = the whole text.",
            "default": 1000
          },
          "includeStoreAvailability": {
            "title": "Add stock per store",
            "type": "boolean",
            "description": "Stock in each of the ~70 PLANEO stores as the website's \"availability in stores\" window shows it: store, address, region, pieces, pickup time. One extra request per product (none for products sold online only).",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "recommended",
              "bestsellers",
              "cheapest",
              "mostExpensive",
              "bestRated"
            ],
            "type": "string",
            "description": "Order of products, as on the website. Sorting is done by the shop, so it's free and fast. Searches sort by relevance or price.",
            "default": "recommended"
          },
          "brands": {
            "title": "Brands",
            "type": "array",
            "description": "Only these brands, e.g. 'Samsung', 'LG'. Case doesn't matter.",
            "items": {
              "type": "string"
            }
          },
          "siteAvailability": {
            "title": "Available",
            "type": "array",
            "description": "Only products that ship now from the e-shop and/or are available in a store, as in the website's filter.",
            "items": {
              "type": "string",
              "enum": [
                "in_stock_online",
                "in_store"
              ],
              "enumTitles": [
                "Ready for shipment (Ihneď k odoslaniu)",
                "In a store (Na predajni)"
              ]
            }
          },
          "stores": {
            "title": "Available in store",
            "type": "array",
            "description": "Only products in stock in these stores, e.g. 'Bratislava', 'PLANEO Žilina'. A town selects all its stores. Several values = any of them. With searches or lookups the actor reads the stock per store to check it.",
            "items": {
              "type": "string"
            }
          },
          "parameterFilters": {
            "title": "Parameter filters",
            "type": "object",
            "description": "Filter by the category's parameters, as in the website's filter (category URLs only). Keys are parameter names, values are a value or a list of values (any of them). Example for TVs: {\"Typ obrazovky\": [\"OLED\", \"QLED\"], \"Operačný systém\": \"Google TV\", \"Vysoké rozlíšenie\": \"4K\"}. Available names and values are listed in the log when a name isn't found."
          },
          "onlyInStock": {
            "title": "Only products in stock",
            "type": "boolean",
            "description": "Keep only products in stock for shipping (in the central warehouse). Store-only 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",
                "on_order",
                "preorder",
                "out_of_stock",
                "unknown"
              ],
              "enumTitles": [
                "In stock",
                "Store pickup only",
                "On order",
                "Pre-order",
                "Out of stock",
                "Unknown"
              ]
            }
          },
          "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 (against the crossed-out price)."
          },
          "onlyWithCoupon": {
            "title": "Only products with a discount code",
            "type": "boolean",
            "description": "Keep only products with a cheaper price with a discount code ('Kúpiť s kupónom'). The code is in couponCode.",
            "default": false
          },
          "onlyWithCashback": {
            "title": "Only products with cashback",
            "type": "boolean",
            "description": "Keep only products with a manufacturer cashback ('Cena s Cashbackom').",
            "default": false
          },
          "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. 'Sencor'. 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. 'OLED'.",
            "items": {
              "type": "string"
            }
          },
          "excludeNameKeywords": {
            "title": "Name must not contain",
            "type": "array",
            "description": "Skip products whose name contains any of these words, e.g. 'držiak'.",
            "items": {
              "type": "string"
            }
          },
          "labels": {
            "title": "Only with labels",
            "type": "array",
            "description": "Keep only products with one of these website labels or promotions, e.g. 'Novinka', 'Výpredaj', 'Jesenný výpredaj'.",
            "items": {
              "type": "string"
            }
          },
          "energyClasses": {
            "title": "Energy classes",
            "type": "array",
            "description": "Only these energy classes (from the energy label in the listing, or the parameters with details).",
            "items": {
              "type": "string",
              "enum": [
                "A+++",
                "A++",
                "A+",
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G"
              ]
            }
          },
          "minStoreCount": {
            "title": "Min number of stores",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products available in at least this many PLANEO stores."
          },
          "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 reviews",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products with at least this many ratings."
          },
          "onlyWithEan": {
            "title": "Only products with EAN",
            "type": "boolean",
            "description": "Skip products without an EAN (barcode). Reads the product pages (like \"Add product page details\").",
            "default": false
          },
          "onlyNewOrChanged": {
            "title": "Monitoring: only new or changed products",
            "type": "boolean",
            "description": "Return only products that are new or whose price, availability, price before discount or discount-code price 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. 'tv-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": 0,
            "maximum": 99,
            "type": "number",
            "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": "Adds rows with changeType \"removed\" for products that disappeared since the previous run (only after a run that read everything) and \"reappeared\" when they are back.",
            "default": false
          },
          "fastMode": {
            "title": "Fast mode (small extra charge)",
            "type": "boolean",
            "description": "Reads Planeo.sk about 4x faster: at most 120 requests per minute and 4 at a time instead of 30 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.",
            "default": false
          },
          "maxRequestsPerMinute": {
            "title": "Max requests per minute (normal speed)",
            "minimum": 1,
            "maximum": 60,
            "type": "integer",
            "description": "All requests together (pages, product pages, stock per store). At most 60.",
            "default": 30
          },
          "maxPagesPerCategory": {
            "title": "Max pages per category",
            "minimum": 0,
            "maximum": 500,
            "type": "integer",
            "description": "Safety limit for each category (24 products per page). 0 = no limit (at most 500).",
            "default": 50
          },
          "maxSearchPages": {
            "title": "Max pages per search",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Result pages (24 products each) read per search term. The website's search also lists loosely matching products further down.",
            "default": 5
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed: Planeo.sk works without a proxy, also from Apify's servers. You can use Apify Proxy or your own proxies if you prefer.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}