{
  "openapi": "3.0.1",
  "info": {
    "title": "kununu Employer Reviews, Ratings & Salaries Scraper",
    "description": "kununu employer reviews, ratings, category scores, benefits and salary ranges per job role – Germany, Austria and Switzerland; full review texts optional. Structured JSON, no login, no personal data, no proxy needed. Paces itself to kununu's limits and stops cleanly instead of failing.",
    "version": "0.1",
    "x-build-id": "dKbP0XKtUgCjZBUWy"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/perceptr0n~kununu-employer-data-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-perceptr0n-kununu-employer-data-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/perceptr0n~kununu-employer-data-scraper/runs": {
      "post": {
        "operationId": "runs-sync-perceptr0n-kununu-employer-data-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/perceptr0n~kununu-employer-data-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-perceptr0n-kununu-employer-data-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": {
          "companies": {
            "title": "Companies",
            "type": "array",
            "description": "kununu company URLs or plain slugs, one company per entry — e.g. `https://www.kununu.com/de/siemens` or just `siemens`. Add as many as you like.",
            "items": {
              "type": "string"
            },
            "default": [
              "https://www.kununu.com/de/siemens"
            ]
          },
          "country": {
            "title": "Country",
            "enum": [
              "de",
              "at",
              "ch"
            ],
            "type": "string",
            "description": "Country profile to use when a company is given as a plain slug.",
            "default": "de"
          },
          "include_salary": {
            "title": "Include salary data",
            "type": "boolean",
            "description": "Adds salary ranges per job role (min / max / median / average and number of entries), salary-satisfaction split and the compensation score vs. industry. One extra page load per company.",
            "default": true
          },
          "include_reviews": {
            "title": "Include individual reviews",
            "type": "boolean",
            "description": "Adds single reviews with full text, per-factor ratings with their comments, and employer responses; `max_reviews_per_company` caps them. Every company row says how many reviews kununu has and how many were delivered. kununu shows visitors who are not logged in only 10 reviews per list, so the actor reads kununu's own views — newest, oldest, highest and lowest rated, by year, job status, department — and keeps every review once. Measured: 100 distinct Siemens reviews in 53 s (12 Oct 2026). Rows with reviews are large (about 2.5 KB per review, measured) — read them a few rows at a time or pick fields.",
            "default": false
          },
          "review_type": {
            "title": "Review type",
            "enum": [
              "employee",
              "applicant",
              "apprentice",
              "intern",
              "student"
            ],
            "type": "string",
            "description": "Which review group to collect when reviews are included: `employee` (default), `applicant` = interview experiences, `apprentice`, `intern` or `student` = working students. Applicants come from kununu's /bewerbung page, apprentices, interns and working students from the employee reviews filtered by position.",
            "default": "employee"
          },
          "max_reviews_per_company": {
            "title": "Maximum reviews per company",
            "minimum": 0,
            "type": "integer",
            "description": "Default 100 (when reviews are included). `0` = no reviews. About 10 reviews per page load (≈4–5 s each).",
            "default": 100
          },
          "output_type": {
            "title": "Output format",
            "enum": [
              "company",
              "reviews"
            ],
            "type": "string",
            "description": "`company` (default) = one row per company, reviews nested. `reviews` = one row per review with the company data attached (spreadsheet-friendly). Every dataset row is one billed record. In the per-review layout a company without reviews of the chosen type is not stored (listed under NO_REVIEWS, not charged).",
            "default": "company"
          },
          "respect_robots_txt": {
            "title": "Respect robots.txt (compliance mode)",
            "type": "boolean",
            "description": "kununu's robots.txt allows the first review page of a company but disallows sorted and paginated review lists. Turn this on to stay strictly within those rules — the actor then collects only kununu's first view (10 reviews) per company. Company profile, scores, benefits and salary data are unaffected.",
            "default": false
          },
          "proxy": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "Not needed — the Actor clears kununu's automatic challenge from Apify's own addresses (measured) and reads at the pace kununu accepts. Leave this off unless your network setup requires a proxy; the whole run then uses one fixed address.",
            "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}