{
  "openapi": "3.0.1",
  "info": {
    "title": "Skroutz Seller Scraper: Phone, Email, GEMI, Ratings | Σκρουτζ",
    "description": "Skroutz seller scraper (Σκρουτζ): public phone, email, website, GEMI number, company address, ratings, reviews and badges for any shop. Browse about 7,000 sellers by city, rating or brand. Track new, updated and missing sellers. Contacts included in one flat per-seller price.",
    "version": "0.3",
    "x-build-id": "SyhY9qvFORPa6FdLV"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/getascraper~skroutz-seller-intelligence-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-getascraper-skroutz-seller-intelligence-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/getascraper~skroutz-seller-intelligence-scraper/runs": {
      "post": {
        "operationId": "runs-sync-getascraper-skroutz-seller-intelligence-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/getascraper~skroutz-seller-intelligence-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-getascraper-skroutz-seller-intelligence-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": {
          "mode": {
            "title": "What to collect",
            "enum": [
              "sellers",
              "offers"
            ],
            "type": "string",
            "description": "Sellers returns one row per Skroutz shop with ratings, reviews, public contacts, company details and badges. Offers returns one row per product offer (the previous behaviour).",
            "default": "sellers"
          },
          "startUrls": {
            "title": "Skroutz shop, product, search, category or directory links",
            "maxItems": 100,
            "type": "array",
            "description": "Public skroutz.gr links. Shop pages are read directly. Product, search and category pages are used to find the shops behind them. Directory pages such as /shop/by/A list every shop starting with that letter.",
            "default": [
              {
                "url": "https://www.skroutz.gr/shop/28849/Kotsovolos"
              },
              {
                "url": "https://www.skroutz.gr/shop/2052/Bestdeal"
              },
              {
                "url": "https://www.skroutz.gr/shop/13289/Canna24"
              },
              {
                "url": "https://www.skroutz.gr/shop/27404/Tsak"
              },
              {
                "url": "https://www.skroutz.gr/shop/16879/Praktiker"
              },
              {
                "url": "https://www.skroutz.gr/shop/7/MG-Manager"
              }
            ],
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "sellerIds": {
            "title": "Shop numbers",
            "maxItems": 500,
            "type": "array",
            "description": "Numeric Skroutz shop IDs, for example 27404 for the number in skroutz.gr/shop/27404/Tsak. In Offers mode these only keep offers from the listed shops.",
            "items": {
              "type": "string",
              "pattern": "^[0-9]+$"
            },
            "default": []
          },
          "searchQueries": {
            "title": "Search terms",
            "maxItems": 10,
            "type": "array",
            "description": "Product or brand words. Each term is searched on Skroutz and the shops selling the first results are collected.",
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120
            },
            "default": []
          },
          "browseDirectory": {
            "title": "Browse all Skroutz sellers",
            "type": "boolean",
            "description": "List shops from the public Skroutz seller directory (about 7,000 shops) instead of, or in addition to, the links above. Combine with the filters below to find sellers without knowing any product.",
            "default": false
          },
          "directoryOrder": {
            "title": "Directory order",
            "enum": [
              "oldest",
              "newest"
            ],
            "type": "string",
            "description": "Oldest first starts with long-established shops. Newest first starts with the most recently joined shops, which is useful for spotting new sellers.",
            "default": "oldest"
          },
          "maxPages": {
            "title": "Maximum result pages per source",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "How many result pages are read for each search, category or directory letter when finding shops.",
            "default": 2
          },
          "maxProductPages": {
            "title": "Product pages to open per search or category",
            "minimum": 1,
            "maximum": 200,
            "type": "integer",
            "description": "Shops are found on product pages, so each search or category opens up to this many products and collects the shops linked there.",
            "default": 10
          },
          "minSellerRating": {
            "title": "Minimum rating",
            "minimum": 0,
            "maximum": 5,
            "type": "number",
            "description": "Keep shops rated at least this high (0 to 5). Shops without enough recent reviews have no rating and are dropped when this is set."
          },
          "minSellerReviewCount": {
            "title": "Minimum review count",
            "minimum": 0,
            "type": "integer",
            "description": "Keep shops with at least this many customer reviews."
          },
          "requiredFeatures": {
            "title": "Shop must have",
            "type": "array",
            "description": "Keep only shops that publish every selected item: a phone, an e-mail, a website, company registration details, a physical store, the GRECA Trustmark, official reseller status or Skroutz checkout.",
            "items": {
              "type": "string",
              "enum": [
                "phone",
                "email",
                "website",
                "registeredCompany",
                "physicalStore",
                "grecaTrustmark",
                "officialReseller",
                "skroutzCheckout"
              ],
              "enumTitles": [
                "Public phone",
                "Public e-mail",
                "Website",
                "Company registration (GEMI or VAT)",
                "Physical store",
                "GRECA Trustmark",
                "Official reseller",
                "Skroutz checkout"
              ]
            },
            "default": []
          },
          "cityFilter": {
            "title": "City or area",
            "type": "string",
            "description": "Keep shops whose registered address or store address contains this place, for example Αθήνα, Θεσσαλονίκη or Heraklion. Accents and capital letters do not matter."
          },
          "categoryFilter": {
            "title": "Category",
            "type": "string",
            "description": "Keep shops that operate in a Skroutz department containing this word, for example Τεχνολογία or Υγεία. In Offers mode this filters the product category instead."
          },
          "brandFilter": {
            "title": "Official reseller of brand",
            "type": "string",
            "description": "Keep shops listed as official resellers of a brand containing this word, for example Samsung. In Offers mode this filters the product brand instead."
          },
          "minWeeklyOrders": {
            "title": "Minimum weekly orders",
            "minimum": 0,
            "type": "integer",
            "description": "Skroutz publishes weekly order bands such as 100+ or 500+. Keep shops whose band starts at or above this number."
          },
          "minYearsOnSkroutz": {
            "title": "Minimum years on Skroutz",
            "minimum": 0,
            "type": "integer",
            "description": "Skroutz publishes time-on-platform bands such as 5+ or 10+ years. Keep shops whose band starts at or above this number."
          },
          "includeProductCount": {
            "title": "Add catalogue size",
            "type": "boolean",
            "description": "Open each shop's product list to add how many products it sells on Skroutz. Slower, because it needs one more page per shop.",
            "default": false
          },
          "monitor": {
            "title": "Track changes between runs",
            "type": "boolean",
            "description": "Remember the shops from the previous run under the name below and mark each one as new, updated, unchanged or missing. Schedule the same input to follow a market over time.",
            "default": false
          },
          "onlyChanges": {
            "title": "Only output changes",
            "type": "boolean",
            "description": "With change tracking on, skip shops that did not change, so only new, updated and missing shops are saved and charged.",
            "default": false
          },
          "stateName": {
            "title": "Tracking name",
            "pattern": "^[A-Za-z0-9][A-Za-z0-9._:-]{0,63}$",
            "type": "string",
            "description": "A short name for this tracked list. Different names keep separate histories, so one input can be tracked several ways.",
            "default": "default"
          },
          "maxItems": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 2000,
            "type": "integer",
            "description": "Maximum number of rows saved. The run stops as soon as this many shops match your filters.",
            "default": 10
          },
          "scanLimit": {
            "title": "Maximum shop pages to check",
            "minimum": 1,
            "maximum": 7500,
            "type": "integer",
            "description": "When filters are set, many shops may be checked before enough match. This caps how many shop pages are opened in one run.",
            "default": 50
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Leave Apify proxy off to connect directly. If Skroutz refuses a direct connection, the Actor retries through Apify proxy by itself. Pick a proxy here only to force one.",
            "default": {
              "useApifyProxy": false
            }
          },
          "outputMode": {
            "title": "Offers: output mode",
            "enum": [
              "snapshot",
              "snapshotAndChanges",
              "changesOnly"
            ],
            "type": "string",
            "description": "Offers mode only. Snapshot saves current offers, Snapshot plus changes also saves safe removals, Changes only saves new, changed and removed offers.",
            "default": "snapshotAndChanges"
          },
          "onlyAvailable": {
            "title": "Offers: only available",
            "type": "boolean",
            "description": "Offers mode only. Keep only offers that Skroutz shows as available or in stock.",
            "default": true
          },
          "minPrice": {
            "title": "Offers: minimum price",
            "minimum": 0,
            "type": "number",
            "description": "Offers mode only. Keep offers priced at or above this amount in euros."
          },
          "maxPrice": {
            "title": "Offers: maximum price",
            "minimum": 0,
            "type": "number",
            "description": "Offers mode only. Keep offers priced at or below this amount in euros."
          },
          "includeSellerContacts": {
            "title": "Offers: add seller contacts",
            "type": "boolean",
            "description": "Offers mode only. Add the shop's public phone, e-mail and website to each offer row.",
            "default": false
          },
          "includeLegalIdentifiers": {
            "title": "Offers: add company registration",
            "type": "boolean",
            "description": "Offers mode only. Add the shop's published company name, address and registration numbers to each offer row.",
            "default": false
          },
          "includeShipping": {
            "title": "Offers: add shipping details",
            "type": "boolean",
            "description": "Offers mode only. Add shipping cost, delivery text and pickup flags when the product page shows them.",
            "default": false
          },
          "includeImages": {
            "title": "Offers: add product image",
            "type": "boolean",
            "description": "Offers mode only. Add the product image link when the page shows one.",
            "default": 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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}