{
  "openapi": "3.0.1",
  "info": {
    "title": "PayScale Salary & Company Culture Scraper",
    "description": "Scrape PayScale.com salary research pages: company compensation & culture ratings, employee reviews, and job-title salary data by company, city, gender, degree, and experience. Free, no login required.",
    "version": "1.0",
    "x-build-id": "5pMTHQ3rL2TMTgagL"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/crawlerbros~payscale-scraper/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-crawlerbros-payscale-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/crawlerbros~payscale-scraper/runs": {
      "post": {
        "operationId": "runs-sync-crawlerbros-payscale-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/crawlerbros~payscale-scraper/run-sync": {
      "post": {
        "operationId": "run-sync-crawlerbros-payscale-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",
        "required": [
          "mode"
        ],
        "properties": {
          "mode": {
            "title": "Mode",
            "enum": [
              "companySalary",
              "companyReviews",
              "jobTitleSalary",
              "jobTitleReviews",
              "skillSalary",
              "certificationSalary",
              "degreeSalary",
              "stateSalary",
              "locationSalary"
            ],
            "type": "string",
            "description": "What to fetch.",
            "default": "companySalary"
          },
          "companyName": {
            "title": "Company name (mode=companySalary / companyReviews)",
            "type": "string",
            "description": "Free-text company name, e.g. `Google`, `Salesforce`, `Tesla`. Resolved automatically to PayScale's exact listing.",
            "default": "Google"
          },
          "companySlug": {
            "title": "Exact PayScale company slug (advanced, optional)",
            "type": "string",
            "description": "Bypasses name resolution. Copy the exact `Employer=...` value from a payscale.com/research URL, e.g. `Google,_Inc.`. Use this if automatic name resolution fails for an obscure company."
          },
          "jobTitle": {
            "title": "Job title (mode=jobTitleSalary / jobTitleReviews)",
            "type": "string",
            "description": "Free-text job title, e.g. `Software Engineer`, `Registered Nurse`, `Project Manager`.",
            "default": "Software Engineer"
          },
          "skillName": {
            "title": "Skill (mode=skillSalary)",
            "type": "string",
            "description": "Free-text skill name, e.g. `Python`, `Project Management`, `Data Analysis`. Shows the salary premium PayScale attributes to this skill plus job/city/gender/experience breakdowns of who reports it.",
            "default": "Python"
          },
          "certificationName": {
            "title": "Certification (mode=certificationSalary)",
            "type": "string",
            "description": "Free-text certification name, e.g. `Project Management Professional (PMP)`, `Certified Public Accountant (CPA)`.",
            "default": "Project Management Professional (PMP)"
          },
          "degreeName": {
            "title": "Degree / major (mode=degreeSalary)",
            "type": "string",
            "description": "Free-text degree name, e.g. `Bachelor of Science (BS / BSc)`, `Master of Business Administration (MBA)`.",
            "default": "Bachelor of Science (BS / BSc)"
          },
          "stateName": {
            "title": "US state (mode=stateSalary)",
            "enum": [
              "Alabama",
              "Alaska",
              "Arizona",
              "Arkansas",
              "California",
              "Colorado",
              "Connecticut",
              "Delaware",
              "District of Columbia",
              "Florida",
              "Georgia",
              "Hawaii",
              "Idaho",
              "Illinois",
              "Indiana",
              "Iowa",
              "Kansas",
              "Kentucky",
              "Louisiana",
              "Maine",
              "Maryland",
              "Massachusetts",
              "Michigan",
              "Minnesota",
              "Mississippi",
              "Missouri",
              "Montana",
              "Nebraska",
              "Nevada",
              "New Hampshire",
              "New Jersey",
              "New Mexico",
              "New York",
              "North Carolina",
              "North Dakota",
              "Ohio",
              "Oklahoma",
              "Oregon",
              "Pennsylvania",
              "Rhode Island",
              "South Carolina",
              "South Dakota",
              "Tennessee",
              "Texas",
              "Utah",
              "Vermont",
              "Virginia",
              "Washington",
              "West Virginia",
              "Wisconsin",
              "Wyoming"
            ],
            "type": "string",
            "description": "US state name. For non-US provinces/states (e.g. Canadian provinces), use `stateSlugOverride` below instead.",
            "default": "California"
          },
          "stateSlugOverride": {
            "title": "Exact PayScale State= slug (advanced, optional)",
            "type": "string",
            "description": "Bypasses `stateName`. Copy the exact `State=...` value from a payscale.com/research URL, e.g. `Ontario` for a Canadian province. Use this for non-US countries."
          },
          "cityName": {
            "title": "City (mode=locationSalary)",
            "type": "string",
            "description": "Free-text US city name, e.g. `San Francisco`, `Austin`, `New York`. Combined with `stateAbbr` below to build the PayScale location page.",
            "default": "San Francisco"
          },
          "stateAbbr": {
            "title": "US state abbreviation (mode=locationSalary)",
            "enum": [
              "AL",
              "AK",
              "AZ",
              "AR",
              "CA",
              "CO",
              "CT",
              "DE",
              "DC",
              "FL",
              "GA",
              "HI",
              "ID",
              "IL",
              "IN",
              "IA",
              "KS",
              "KY",
              "LA",
              "ME",
              "MD",
              "MA",
              "MI",
              "MN",
              "MS",
              "MO",
              "MT",
              "NE",
              "NV",
              "NH",
              "NJ",
              "NM",
              "NY",
              "NC",
              "ND",
              "OH",
              "OK",
              "OR",
              "PA",
              "RI",
              "SC",
              "SD",
              "TN",
              "TX",
              "UT",
              "VT",
              "VA",
              "WA",
              "WV",
              "WI",
              "WY"
            ],
            "type": "string",
            "description": "2-letter US state abbreviation for `cityName`. For non-US cities, use `locationSlugOverride` below instead.",
            "default": "CA"
          },
          "locationSlugOverride": {
            "title": "Exact PayScale Location= slug (advanced, optional)",
            "type": "string",
            "description": "Bypasses `cityName`/`stateAbbr`. Copy the exact `Location=...` value from a payscale.com/research URL, e.g. `Toronto-Ontario` for a non-US city."
          },
          "country": {
            "title": "Country",
            "enum": [
              "US",
              "UK",
              "AU",
              "CA",
              "IN",
              "DE",
              "NZ",
              "PH",
              "ZA",
              "SG"
            ],
            "type": "string",
            "description": "Which country's PayScale salary data to use.",
            "default": "US"
          },
          "dimensionType": {
            "title": "Breakdown dimension filter",
            "enum": [
              "",
              "job",
              "city",
              "gender",
              "degree",
              "yearsExperience",
              "company",
              "employerType"
            ],
            "type": "string",
            "description": "Only emit salary-breakdown rows of this type (all *Salary modes). Leave blank to emit all available dimensions.",
            "default": ""
          },
          "payUnit": {
            "title": "Pay-unit filter",
            "enum": [
              "",
              "annual",
              "hourly"
            ],
            "type": "string",
            "description": "Only emit salary-breakdown rows reported in this pay unit (all *Salary modes). PayScale mixes annual-salary and hourly-rate breakdowns on the same page. Leave blank to emit both.",
            "default": ""
          },
          "minSalary": {
            "title": "Min median salary (USD-equivalent)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Drop breakdown rows with a median salary below this amount."
          },
          "maxSalary": {
            "title": "Max median salary (USD-equivalent)",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Drop breakdown rows with a median salary above this amount."
          },
          "minProfileCount": {
            "title": "Min contributing profiles",
            "minimum": 0,
            "maximum": 1000000,
            "type": "integer",
            "description": "Drop breakdown rows backed by fewer than this many salary submissions."
          },
          "reviewPages": {
            "title": "Review pages to fetch (mode=companyReviews / jobTitleReviews)",
            "minimum": 1,
            "maximum": 20,
            "type": "integer",
            "description": "Each page has up to 7 reviews. Fetches sequential pages until this limit or `maxItems` is reached.",
            "default": 3
          },
          "maxItems": {
            "title": "Max items",
            "minimum": 1,
            "maximum": 1000,
            "type": "integer",
            "description": "Hard cap on emitted records. Actual output is often lower, capped by real data volume: salary modes (companySalary, jobTitleSalary, etc.) return the fixed set of breakdown rows PayScale shows on that single research page (typically well under 200); review modes are capped by the company/job's true total review count on PayScale (see `reviewPages`).",
            "default": 50
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}