{
  "openapi": "3.0.1",
  "info": {
    "title": "Datart.cz Scraper: Prices, EAN & Price Monitoring",
    "description": "Scrape Datart.cz (Czech electronics e-shop) by category (with the website's filters), search, product code or EAN: price, real discount vs. 30-day low, discount codes, stock per store, EAN and specifications. Monitoring returns only changed or removed products. Unofficial.",
    "version": "0.0",
    "x-build-id": "u9lgezFRCWZUFXrbF"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/tsutseisoftware~datart-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-tsutseisoftware-datart-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~datart-scraper/runs": {
      "post": {
        "operationId": "runs-sync-tsutseisoftware-datart-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~datart-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-tsutseisoftware-datart-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": {
          "searchQueries": {
            "title": "Search",
            "maxItems": 10,
            "uniqueItems": true,
            "type": "array",
            "description": "Search terms, e.g. 'lg oled', 'pračka bosch' or an EAN. Results come in the shop's relevance order. At most 10 terms per run; searches run one after another with a short pause, so prefer category URLs for large or scheduled runs.",
            "items": {
              "type": "string",
              "minLength": 2,
              "maxLength": 100,
              "pattern": "[0-9A-Za-zÀ-ž].*[0-9A-Za-zÀ-ž]"
            }
          },
          "startUrls": {
            "title": "Category, product or search URLs",
            "type": "array",
            "description": "Datart.cz category URLs (e.g. https://www.datart.cz/televize.html), category overviews (https://www.datart.cz/tv-audio-video, its categories are read one after another), product URLs or search result URLs (https://www.datart.cz/vyhledavani?q=...). Tip: set filters and sorting on the website and paste the URL (…/filter/…); the actor keeps them. ?page=N starts at that page.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "productCodes": {
            "title": "Product codes",
            "type": "array",
            "description": "Datart product codes (the end of the id field, e.g. LGGOLED55B65). Each is looked up with the website's search, one at a time; only an exact code match is returned (matchedBy \"productCode\").",
            "items": {
              "type": "string"
            }
          },
          "eans": {
            "title": "EANs",
            "type": "array",
            "description": "EAN barcodes (check digit verified). The website's search finds the product and its product page confirms the EAN (one product page per EAN, so details are included; matchedBy \"ean\"). Up to 500 codes and EANs together 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 search or URL",
            "minimum": 0,
            "type": "integer",
            "description": "Limit for each search term and 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 and specifications",
            "type": "boolean",
            "description": "Open each product page to add EAN (barcode), full technical specifications, description, documents (energy label sheet, manuals), energy class, warranty, discount code and its price (\"Cena s kódem\"), promotion end and, for search results, the category. Slower: one extra request per product. Turned on automatically by filters that need it.",
            "default": false
          },
          "descriptionMaxLength": {
            "title": "Description length",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum characters of the product description (with \"Add EAN and specifications\"). 0 = the whole text.",
            "default": 1000
          },
          "includeStoreAvailability": {
            "title": "Add stock per store",
            "type": "boolean",
            "description": "Stock in each Datart store as the website's \"where to pick it up\" window shows it (pieces, unpacked pieces, pickup time, delivery to the store) and the home delivery options with dates and prices. One extra request per product.",
            "default": false
          },
          "sortBy": {
            "title": "Sort by",
            "enum": [
              "default",
              "recommended",
              "cheapest",
              "mostExpensive",
              "bestselling",
              "biggestDiscount"
            ],
            "type": "string",
            "description": "The website's sorting. \"Default\" keeps the sort of the URL (otherwise the website's \"Doporučujeme\"; relevance for searches).",
            "default": "default"
          },
          "applyFiltersOnWebsite": {
            "title": "Apply brand, price and stock filters on the website",
            "type": "boolean",
            "description": "Uses the website's own filters for \"Only these brands\", \"Exclude brands\", \"Min/Max price\", \"Only products in stock\" and \"Exclude second-hand and opened products\" (fewer pages to read when the filters are narrow; \"position\" is then the position in the filtered list). Always on when Condition, Bazaar state, In stock in these stores or Parameter filters are used.",
            "default": false
          },
          "productCondition": {
            "title": "Condition",
            "enum": [
              "any",
              "new",
              "bazaar"
            ],
            "type": "string",
            "description": "The website's \"Stav zboží\": new products or bazaar offers (second-hand, opened, with defects).",
            "default": "any"
          },
          "bazaarStates": {
            "title": "Bazaar state",
            "type": "array",
            "description": "The website's \"Bazar - stav zboží\" (any of the chosen).",
            "items": {
              "type": "string",
              "enum": [
                "unpacked",
                "likeNew",
                "cosmeticDefect",
                "minorDamage"
              ],
              "enumTitles": [
                "Unpacked (Rozbaleno)",
                "Like new (Zánovní)",
                "Cosmetic defect (S kosmetickou vadou)",
                "Minor damage (S mírným poškozením)"
              ]
            }
          },
          "availableInStores": {
            "title": "In stock in these stores",
            "type": "array",
            "description": "The website's \"Dostupnost na prodejně\" filter, e.g. \"Praha 1 - Palladium\", \"Brno\", \"Ostrava\"; part of the name is enough (several stores = any of them).",
            "items": {
              "type": "string"
            }
          },
          "parameterFilters": {
            "title": "Parameter filters",
            "type": "object",
            "description": "The listing's parameter filters by name as the filter panel shows them, e.g. {\"Technologie displeje\": [\"OLED\"], \"Úhlopříčka obrazovky\": [\"65\\\" (163 – 165 cm)\"]}; ranges as {\"min\": 100, \"max\": 125}. Unknown names or values are reported in the log with the options."
          },
          "onlyInStock": {
            "title": "Only products in stock",
            "type": "boolean",
            "description": "Keep only products that can be ordered and shipped now (availability in_stock). Store-only and out-of-stock products are skipped.",
            "default": false
          },
          "onlyDiscounted": {
            "title": "Only discounted products",
            "type": "boolean",
            "description": "Keep only products whose price is below the lowest price of the last 30 days (the shop shows the old price crossed out).",
            "default": false
          },
          "minDiscountPercent": {
            "title": "Min discount (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "Keep only discounted products with at least this discount against the lowest price of the last 30 days."
          },
          "minPrice": {
            "title": "Min price (CZK)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip products cheaper than this."
          },
          "maxPrice": {
            "title": "Max price (CZK)",
            "minimum": 0,
            "type": "integer",
            "description": "Skip products more expensive than this."
          },
          "brands": {
            "title": "Only these brands",
            "type": "array",
            "description": "Keep only products of these brands, e.g. LG, Samsung. Case-insensitive.",
            "items": {
              "type": "string"
            }
          },
          "excludeBrands": {
            "title": "Exclude brands",
            "type": "array",
            "description": "Skip products of these brands.",
            "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 insensitive), 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. 'rozbaleno'.",
            "items": {
              "type": "string"
            }
          },
          "minRating": {
            "title": "Min rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep only products with at least this average rating (0-5), e.g. 4.5."
          },
          "minReviewCount": {
            "title": "Min number of reviews",
            "minimum": 0,
            "type": "integer",
            "description": "Keep only products with at least this many reviews."
          },
          "labels": {
            "title": "Only with labels",
            "type": "array",
            "description": "Keep only products with one of these shop labels, e.g. 'doprava zdarma'.",
            "items": {
              "type": "string"
            }
          },
          "excludeRefurbished": {
            "title": "Exclude second-hand and opened products",
            "type": "boolean",
            "description": "Skip second-hand, opened and refurbished products (Datart 'bazar'), whose crossed-out price is the price of a new product.",
            "default": false
          },
          "onlyWithEan": {
            "title": "Only with EAN",
            "type": "boolean",
            "description": "Only products with an EAN (turns on \"Add EAN and specifications\").",
            "default": false
          },
          "energyClasses": {
            "title": "Energy classes",
            "type": "array",
            "description": "Only these energy classes (turns on \"Add EAN and specifications\").",
            "items": {
              "type": "string",
              "enum": [
                "A+++",
                "A++",
                "A+",
                "A",
                "B",
                "C",
                "D",
                "E",
                "F",
                "G"
              ]
            }
          },
          "minWarrantyMonths": {
            "title": "Min warranty (months)",
            "minimum": 0,
            "type": "integer",
            "description": "Only products with at least this warranty (turns on \"Add EAN and specifications\")."
          },
          "onlyWithCoupon": {
            "title": "Only with a discount code",
            "type": "boolean",
            "description": "Only products whose page shows a discount code (\"Cena s kódem\"; turns on \"Add EAN and specifications\").",
            "default": false
          },
          "onlyNewOrChanged": {
            "title": "Monitoring: only new or changed products",
            "type": "boolean",
            "description": "Return (and pay for) only products that are new or whose price, availability or 30-day lowest price changed since the previous run with the same monitoring key. Ideal for scheduled price monitoring of categories.",
            "default": false
          },
          "monitoringKey": {
            "title": "Monitoring key",
            "type": "string",
            "description": "Name of the saved monitoring state. Use a different key for each set of categories you monitor.",
            "default": "default"
          },
          "onlyPriceChanges": {
            "title": "Monitoring: only price changes",
            "type": "boolean",
            "description": "In monitoring mode, return updated products only when their price changed (new products are still returned). Every returned product has previousPrice, priceChange and priceChangePercent.",
            "default": false
          },
          "minPriceDropPercent": {
            "title": "Monitoring: min price drop (%)",
            "minimum": 0,
            "maximum": 100,
            "type": "integer",
            "description": "In monitoring mode, return only products whose price dropped by at least this percentage since the last run. Great for discount 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 Datart.cz about 2x faster: at most 240 requests per minute and 6 at a time instead of 120 per minute and 3 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
          },
          "maxPagesPerCategory": {
            "title": "Max pages per category",
            "minimum": 0,
            "type": "integer",
            "description": "Safety limit for listing pages per category (22 products per page). 0 = no limit.",
            "default": 50
          },
          "maxSearchPages": {
            "title": "Max pages per search",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many result pages to read for each search term (24 products per page, at most 10 pages).",
            "default": 2
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Datart.cz rejects requests from data-center IP addresses, so the default is Apify Proxy with residential IPs in the Czech Republic. You can also use your own 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}