{
  "openapi": "3.0.1",
  "info": {
    "title": "Kaufland Scraper [$1/1k💰] | Preise | Angebote | Reviews",
    "description": "Monitor Kaufland.de marketplace prices, UVP deals and reviews. Extract EAN, seller, variants and product data for German price comparison, market research and catalog enrichment.",
    "version": "0.1",
    "x-build-id": "aHBSUA8kDZfGPxick"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/ahmed_jasarevic~kaufland-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-ahmed_jasarevic-kaufland-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/ahmed_jasarevic~kaufland-scraper/runs": {
      "post": {
        "operationId": "runs-sync-ahmed_jasarevic-kaufland-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/ahmed_jasarevic~kaufland-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-ahmed_jasarevic-kaufland-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": {
          "searchTerm": {
            "title": "Search Keyword",
            "type": "string",
            "description": "Free-text keyword to search Kaufland.de (e.g. 'kaffee', 'laptop', 'kopfhörer'). Used as the primary query — start here."
          },
          "urls": {
            "title": "Product/Category/Search URLs",
            "type": "array",
            "description": "Paste Kaufland product (/product/ID/), category (/c/name/~ID/), or search (/s/?search_value=) URLs. Used in URL mode.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL",
                  "description": "A Kaufland product, category, or search URL."
                }
              }
            },
            "default": []
          },
          "mode": {
            "title": "Scraping Mode",
            "enum": [
              "search",
              "url"
            ],
            "type": "string",
            "description": "Use 'search' for keyword/category/brand search, or 'url' to paste product/category/search URLs directly. If 'url' is selected with an empty URL list, the actor falls back to the search fields.",
            "default": "search"
          },
          "category": {
            "title": "Category ID",
            "type": "string",
            "description": "A Kaufland category ID to narrow search or browse a whole category (e.g. '5921' for Kaffeepulver). Find IDs in category page URLs: kaufland.de/c/name/~ID/."
          },
          "brand": {
            "title": "Brand/Manufacturer",
            "type": "string",
            "description": "Filter by brand/manufacturer name."
          },
          "minPrice": {
            "title": "Min Price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Minimum price filter in EUR."
          },
          "maxPrice": {
            "title": "Max Price (EUR)",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum price filter in EUR."
          },
          "specialsOnly": {
            "title": "Deals Only (Angebote)",
            "type": "boolean",
            "description": "Only return items currently in Kaufland's deals (Angebote) with UVP strike-through prices.",
            "default": false
          },
          "sortBy": {
            "title": "Sort Order",
            "enum": [
              "natural",
              "price-asc",
              "price-desc",
              "customer-reviews",
              "newest-arrivals",
              "bestsellers"
            ],
            "type": "string",
            "description": "How to sort results.",
            "default": "natural"
          },
          "maxPages": {
            "title": "Max Pages per Search/URL",
            "minimum": 1,
            "type": "integer",
            "description": "Maximum number of result pages to paginate through per search query or start URL. Total items = maxItems is reached first; this caps how deep pagination goes (default 25 ~ 500 products).",
            "default": 25
          },
          "maxItems": {
            "title": "Max Products",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum total number of products to scrape. Set to 0 for unlimited. Free users are capped at 10 products.",
            "default": 20
          },
          "fetchDetails": {
            "title": "Fetch Full Product Details (paid event)",
            "type": "boolean",
            "description": "PREMIUM / ADD-ON EVENT. When enabled, visits each product page for brand, breadcrumb path, EAN/GTIN, specifications, variant matrix, and seller detail. Detailed products are billed as a base product result plus the extra detail event. Slower but more complete.",
            "default": false
          },
          "fetchReviews": {
            "title": "Fetch Full Review History",
            "type": "boolean",
            "description": "When enabled, fetches each product's full review history from Kaufland's product-reviews service (review id, author, date, rating, title, body, verified-purchase and product-test flags, media) and pushes one dataset item per review into the separate 'reviews' dataset. Products explicitly known to have zero reviews are skipped to avoid empty requests. Adds one request per review page per product.",
            "default": false
          },
          "reviewsPerProduct": {
            "title": "Reviews per Product",
            "minimum": 0,
            "type": "integer",
            "description": "Maximum number of reviews to fetch per product. Leave empty or set 0 to fetch ALL reviews (unlimited). Fewer = faster, more = fuller review history."
          },
          "useCache": {
            "title": "Use Cache for Same URLs",
            "type": "boolean",
            "description": "When enabled, previously scraped results for the same listing/detail/review URLs are stored in the key-value store and served instantly on re-runs instead of fetching the site again. Speeds up repeated runs of the same searches. Cached items are still delivered and billed as normal results. Disable when you need always-fresh prices.",
            "default": true
          },
          "cacheTtlHours": {
            "title": "Cache TTL (hours)",
            "minimum": 1,
            "type": "integer",
            "description": "How long cached results stay valid before they are considered stale and refetched.",
            "default": 12
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Kaufland.de is protected by DataDome, which blocks datacenter and residential proxies. Enable the proxy and select the UNBLOCKER group (the actor defaults to UNBLOCKER when no group is chosen)."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}