{
  "openapi": "3.0.1",
  "info": {
    "title": "Kununu Scraper — DACH Employer Reviews, Salaries & Jobs",
    "description": "Scrape Kununu employer profiles across Germany, Austria and Switzerland. Export scores, employee and applicant reviews, salary medians, Kulturkompass, and jobs with each employer's rating. Resolve company names or profile URLs.",
    "version": "1.1",
    "x-build-id": "HlCHxNcXXC6y4LLqs"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawloop~kununu-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawloop-kununu-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/crawloop~kununu-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawloop-kununu-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/crawloop~kununu-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawloop-kununu-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": {
          "companyNames": {
            "title": "Company names",
            "type": "array",
            "description": "Plain employer names to resolve on Kununu (e.g. SAP, Bosch, Deutsche Telekom).",
            "items": {
              "type": "string"
            }
          },
          "startUrls": {
            "title": "Start URLs",
            "type": "array",
            "description": "Kununu company profile URLs (and optional search URLs). Example: https://www.kununu.com/de/sap",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "countryCode": {
            "title": "Country",
            "enum": [
              "de",
              "at",
              "ch"
            ],
            "type": "string",
            "description": "Default DACH market used when resolving company names.",
            "default": "de"
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "type": "integer",
            "description": "Hard cap on dataset rows (all types). 0 = unlimited.",
            "default": 100
          },
          "includeReviews": {
            "title": "Include employee reviews",
            "type": "boolean",
            "description": "Also scrape employee reviews for each resolved employer.",
            "default": false
          },
          "maxReviewsPerCompany": {
            "title": "Max employee reviews per company",
            "minimum": 0,
            "type": "integer",
            "description": "Cap employee review rows per employer.",
            "default": 50
          },
          "includeApplicantReviews": {
            "title": "Include applicant / interview reviews",
            "type": "boolean",
            "description": "Also scrape applicant reviews (interview questions & outcomes).",
            "default": false
          },
          "maxApplicantReviewsPerCompany": {
            "title": "Max applicant reviews per company",
            "minimum": 0,
            "type": "integer",
            "description": "Cap applicant / interview review rows per employer.",
            "default": 50
          },
          "includeSalaries": {
            "title": "Include salaries",
            "type": "boolean",
            "description": "Emit salary median/range rows from the employer Gehaelter tab.",
            "default": false
          },
          "includeCulture": {
            "title": "Include Kulturkompass",
            "type": "boolean",
            "description": "Emit a culture verdict row when available.",
            "default": false
          },
          "includeJobs": {
            "title": "Include open jobs",
            "type": "boolean",
            "description": "Scrape this employer's own Kununu job postings (each row carries employerScore). Skips competitor ads on the jobs tab; some employers have none.",
            "default": false
          },
          "maxJobsPerCompany": {
            "title": "Max jobs per company",
            "minimum": 0,
            "type": "integer",
            "description": "Cap open job posting rows per employer.",
            "default": 50
          },
          "compact": {
            "title": "Compact rows",
            "type": "boolean",
            "description": "Return core fields only (token-efficient for MCP / LLM pipelines).",
            "default": false
          },
          "incrementalMode": {
            "title": "Incremental / monitor mode",
            "type": "boolean",
            "description": "Emit only new reviews/jobs and changed company fingerprints since the last run.",
            "default": false
          },
          "stateKey": {
            "title": "Monitor state key",
            "type": "string",
            "description": "KV key inside the monitor store for this watchlist baseline.",
            "default": "MONITOR_STATE"
          },
          "monitorStoreName": {
            "title": "Monitor KV store name",
            "type": "string",
            "description": "Named Apify Key-Value Store for incremental watermarks.",
            "default": "kununu-monitor-store"
          },
          "awsWafToken": {
            "title": "AWS WAF token / Cookie header",
            "type": "string",
            "description": "Optional. Paste aws-waf-token value (or full Cookie header) from a real browser session. Usually not needed — Camoufox solves WAF without a proxy."
          },
          "preferBrowser": {
            "title": "Use stealth browser (Camoufox)",
            "type": "boolean",
            "description": "On by default. Camoufox solves AWS WAF once, then reads Kununu BFF JSON. Fail-fast on interactive Human Verification (no retry loops). Turn off only if you supply a fresh awsWafToken.",
            "default": true
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Leave Apify Proxy off. Kununu WAF is solved in-browser; residential proxy is not required and only increases cost. Enable only if your runs are IP-blocked.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}