{
  "openapi": "3.0.1",
  "info": {
    "title": "Glassdoor Reviews Scraper",
    "description": "Scrape public Glassdoor employee reviews for company reputation research. Extract ratings, pros, cons, job title, employment status, dates, employer replies, and company context in structured JSON for HR analytics, competitive intelligence, SEO, and AI agents.",
    "version": "1.0",
    "x-build-id": "TipfcMSIn3ulXS24P"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/khadinakbar~glassdoor-reviews-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-khadinakbar-glassdoor-reviews-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/khadinakbar~glassdoor-reviews-scraper/runs": {
      "post": {
        "operationId": "runs-sync-khadinakbar-glassdoor-reviews-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/khadinakbar~glassdoor-reviews-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-khadinakbar-glassdoor-reviews-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": {
          "startUrls": {
            "title": "Glassdoor Review URLs",
            "type": "array",
            "description": "Use this when you already have Glassdoor company review URLs. Enter URLs like https://www.glassdoor.com/Reviews/Apify-Reviews-E3100324.htm. Defaults to a small Apify company review sample when no input is provided. This is not for job listing URLs or profile login pages.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "companyNames": {
            "title": "Company Names",
            "type": "array",
            "description": "Use this when you want the actor to search Glassdoor for company review pages first. Enter one company name per line, for example Apify or OpenAI. Defaults to empty and is less reliable than direct review URLs. This is not a general web search query field.",
            "default": [],
            "items": {
              "type": "string"
            }
          },
          "maxReviewsPerCompany": {
            "title": "Max Reviews Per Company",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Use this to cap review rows collected from each Glassdoor company page. Accepts integers from 1 to 1000, with 25 as the default. Lower it for quick reputation samples and raise it for deeper analysis. This is a review count, not a page count.",
            "default": 25
          },
          "maxResults": {
            "title": "Max Total Reviews",
            "minimum": 1,
            "maximum": 5000,
            "type": "integer",
            "description": "Use this to cap the total review rows saved across the whole run. Accepts integers from 1 to 5000, with 50 as the default. The actor stops before charging beyond this cap. This does not include diagnostic rows.",
            "default": 50
          },
          "sortBy": {
            "title": "Review Sort Order",
            "enum": [
              "recent",
              "popular",
              "default"
            ],
            "type": "string",
            "description": "Use this to prefer recent or popular Glassdoor reviews when the page exposes sorting controls. Choose recent for monitoring new employee feedback, popular for broad sentiment sampling, or default for Glassdoor's page order. Defaults to recent. This does not filter by rating.",
            "default": "recent"
          },
          "includeSubRatings": {
            "title": "Include Sub-Ratings",
            "type": "boolean",
            "description": "Use this to include culture, compensation, career, work-life, and management ratings when Glassdoor exposes them. Defaults to true for richer HR analysis. Disable it only when you need smaller rows. This does not infer ratings that are not visible.",
            "default": true
          },
          "includeEmployerResponses": {
            "title": "Include Employer Responses",
            "type": "boolean",
            "description": "Use this to include public employer reply text when Glassdoor shows a response under a review. Defaults to true for employer-brand monitoring. Disable it to reduce output size. This does not contact or enrich employer data outside Glassdoor.",
            "default": true
          },
          "responseFormat": {
            "title": "Response Format",
            "enum": [
              "detailed",
              "concise"
            ],
            "type": "string",
            "description": "Use this to choose compact or detailed rows for AI agents and analytics pipelines. concise keeps the core company, rating, title, pros, cons, and date fields. detailed includes sub-ratings, employment metadata, source snippets, and employer responses. Defaults to detailed.",
            "default": "detailed"
          },
          "debug": {
            "title": "Save Debug Snapshots",
            "type": "boolean",
            "description": "Use this when a run returns diagnostic rows and you need HTML or response samples for troubleshooting. Defaults to false to keep storage small. When enabled, the actor saves blocked HTML and response samples to KV storage. This is not needed for normal scraping.",
            "default": false
          },
          "proxyConfiguration": {
            "title": "Proxy Configuration",
            "type": "object",
            "description": "Use this only when you need to override the default residential proxy configuration. Defaults to Apify Residential proxies because Glassdoor uses Cloudflare protection. Keep the default for most runs. This is not where you put Glassdoor account cookies or passwords.",
            "default": {
              "useApifyProxy": true,
              "apifyProxyGroups": [
                "RESIDENTIAL"
              ],
              "apifyProxyCountry": "US"
            }
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}