{
  "openapi": "3.0.1",
  "info": {
    "title": "Glassdoor Scraper",
    "description": "Scrape Glassdoor reviews, interviews, salaries, jobs, company overviews, office locations, benefits and culture ratings. No login or cookies. Search jobs with filters, monitor new reviews and score jobs against your skills. Export JSON, CSV, Excel.",
    "version": "1.0",
    "x-build-id": "ion4mff0xYsU70ImE"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/parsebird~glassdoor-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-parsebird-glassdoor-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/parsebird~glassdoor-scraper/runs": {
      "post": {
        "operationId": "runs-sync-parsebird-glassdoor-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/parsebird~glassdoor-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-parsebird-glassdoor-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": "Company URLs",
            "type": "array",
            "description": "Add Glassdoor company addresses from any tab: Reviews, Jobs, Salaries, Interviews, Overview or Benefits. You can mix companies freely. Regional sites such as glassdoor.co.uk work too.",
            "items": {
              "type": "object",
              "required": [
                "url"
              ],
              "properties": {
                "url": {
                  "type": "string",
                  "title": "URL of a web page",
                  "format": "uri"
                }
              }
            }
          },
          "command": {
            "title": "Data type",
            "enum": [
              "reviews",
              "interviews",
              "locations",
              "salaries",
              "jobs",
              "overview",
              "benefits",
              "culture"
            ],
            "type": "string",
            "description": "Choose what to scrape for every URL. Leave empty to follow the tab in each URL, in which case each type gets its own dataset."
          },
          "includes": {
            "title": "Keyword filter",
            "type": "array",
            "description": "Keep only rows that contain at least one of these words. Rows that don't match aren't charged.",
            "items": {
              "type": "string"
            }
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 0,
            "type": "integer",
            "description": "Enter the most rows to save for each URL, and for the job search. Use 0 for everything available.",
            "default": 100
          },
          "sortReviewsBy": {
            "title": "Sort reviews by",
            "enum": [
              "RELEVANCE",
              "DATE",
              "DATE_ASC",
              "RATING",
              "RATING_ASC"
            ],
            "type": "string",
            "description": "Choose the review order. A start date or monitoring mode always uses newest first.",
            "default": "RELEVANCE"
          },
          "reviewsStartDate": {
            "title": "Reviews start date",
            "type": "string",
            "description": "Skip reviews older than this date."
          },
          "monitoringModeForReviews": {
            "title": "Save only new reviews",
            "type": "boolean",
            "description": "Save only reviews newer than the previous run with the same company and settings. The first run saves up to Max items and sets the starting point.",
            "default": false
          },
          "includeAllReviews": {
            "title": "Include reviews in every language",
            "type": "boolean",
            "description": "Read the complete review history in all languages. When this is off, you get Glassdoor's default view, which has fewer reviews. Max items still applies, so set it to 0 for everything.",
            "default": false
          },
          "includeCompanyReviewStats": {
            "title": "Add company review stats",
            "type": "boolean",
            "description": "Add rating averages, the rating distribution and ratings by demographic group to each review row.",
            "default": false
          },
          "interviewsStartDate": {
            "title": "Interviews start date",
            "type": "string",
            "description": "Skip interviews older than this date."
          },
          "includeCompanyInterviewStats": {
            "title": "Add company interview stats",
            "type": "boolean",
            "description": "Add the difficulty score and the experience and source breakdowns to each interview row.",
            "default": false
          },
          "benefitsStartDate": {
            "title": "Benefits start date",
            "type": "string",
            "description": "Skip benefit reviews older than this date."
          },
          "includeCompanyBenefitsStats": {
            "title": "Add company benefits stats",
            "type": "boolean",
            "description": "Add per-benefit ratings by category and the total benefit reviews to each benefit row.",
            "default": false
          },
          "includeAllSalaries": {
            "title": "Include salaries in every country",
            "type": "boolean",
            "description": "Read salaries for every country Glassdoor lists for the company. When this is off, you get the United States, or the country in the URL.",
            "default": false
          },
          "searchJobsByKeyword": {
            "title": "Search jobs by keyword",
            "type": "boolean",
            "description": "Turn on to run a Glassdoor job search with the fields in this section. You don't need a company URL for this.",
            "default": false
          },
          "searchKeyword": {
            "title": "Keyword",
            "type": "string",
            "description": "Enter a job title or skill, such as registered nurse."
          },
          "searchLocation": {
            "title": "Location",
            "type": "string",
            "description": "Enter a city, state or country as you'd type it on Glassdoor, such as Chicago, IL."
          },
          "sortBy": {
            "title": "Sort jobs by",
            "enum": [
              "date_desc",
              "date_asc"
            ],
            "type": "string",
            "description": "Choose the job order. Leave empty for Glassdoor's most relevant order."
          },
          "maxDaysOld": {
            "title": "Posted within",
            "enum": [
              "1",
              "3",
              "7",
              "14",
              "30"
            ],
            "type": "string",
            "description": "Keep only jobs posted within this time."
          },
          "remoteWorkType": {
            "title": "Remote work",
            "enum": [
              "0",
              "1"
            ],
            "type": "string",
            "description": "Choose whether to keep only remote jobs."
          },
          "applicationType": {
            "title": "Application type",
            "enum": [
              "0",
              "1"
            ],
            "type": "string",
            "description": "Choose whether to keep only Easy Apply jobs."
          },
          "jobType": {
            "title": "Job type",
            "enum": [
              "CF3CP",
              "75GKK",
              "NJXCK",
              "4HKF7",
              "7SBAT",
              "internship",
              "apprenticeship",
              "entrylevel"
            ],
            "type": "string",
            "description": "Choose the job type. Glassdoor treats this as a preference, so some rows of another type can appear."
          },
          "minSalary": {
            "title": "Minimum salary",
            "type": "string",
            "description": "Enter a yearly amount in the search country's currency, such as 70000."
          },
          "maxSalary": {
            "title": "Maximum salary",
            "type": "string",
            "description": "Enter a yearly amount in the search country's currency, such as 120000."
          },
          "minRating": {
            "title": "Minimum company rating",
            "enum": [
              "1.0",
              "2.0",
              "3.0",
              "4.0"
            ],
            "type": "string",
            "description": "Keep only jobs at companies with at least this rating."
          },
          "employerSize": {
            "title": "Company size",
            "enum": [
              "1",
              "2",
              "3",
              "4",
              "5"
            ],
            "type": "string",
            "description": "Choose Glassdoor's company size band."
          },
          "radius": {
            "title": "Search radius",
            "enum": [
              "0",
              "5",
              "10",
              "15",
              "25",
              "50",
              "100"
            ],
            "type": "string",
            "description": "Choose how far from a city to search, in miles."
          },
          "industryNid": {
            "title": "Industry ID",
            "type": "string",
            "description": "Enter a Glassdoor industry ID, such as 10013 for Information Technology, 10012 for Healthcare or 10010 for Financial Services."
          },
          "sgocId": {
            "title": "Job function ID",
            "type": "string",
            "description": "Enter a Glassdoor job function ID, such as 1011 for Information Technology, 1009 for Healthcare or 1008 for Finance & Accounting."
          },
          "deepSearch": {
            "title": "Deep search",
            "type": "boolean",
            "description": "Find the most common job titles in the results, search those too, and merge everything without duplicates. Useful because one Glassdoor search stops at about 500 listings. Max items still applies.",
            "default": false
          },
          "expandKeywords": {
            "title": "Extra keywords",
            "type": "array",
            "description": "Add more job titles to search when Deep search is on.",
            "items": {
              "type": "string"
            }
          },
          "resumeKeywords": {
            "title": "Resume keywords",
            "type": "array",
            "description": "Add your skills, as in [{\"keyword\": \"ICU\"}, {\"keyword\": \"pediatrics\"}]. Each job then gets the full description, a matchScore from 0 to 100, matchedSkills and missingSkills. This doesn't change which jobs come back."
          },
          "saveOnlyUniqueItems": {
            "title": "Save only unique items",
            "type": "boolean",
            "description": "Skip a row whose job ID, review ID or content was already saved in this run. Duplicates aren't charged.",
            "default": true
          },
          "maxConcurrency": {
            "title": "Max concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Set the most requests to send at once. Glassdoor rate-limits fast clients, so higher values may not be faster.",
            "default": 3
          },
          "minConcurrency": {
            "title": "Min concurrency",
            "minimum": 1,
            "maximum": 10,
            "type": "integer",
            "description": "Set the fewest requests to send at once after Glassdoor slows the run down.",
            "default": 1
          },
          "maxRequestRetries": {
            "title": "Max request retries",
            "minimum": 0,
            "maximum": 10,
            "type": "integer",
            "description": "Set how many times to retry a failed request.",
            "default": 4
          },
          "proxy": {
            "title": "Proxy",
            "type": "object",
            "description": "Leave empty. The scraper uses residential proxies by itself when Glassdoor needs them, at no extra cost. Set this only to use your own proxies."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}