{
  "openapi": "3.0.1",
  "info": {
    "title": "Salary Data API with Pay Percentiles: Payscale Jobalyzer",
    "description": "Get market salary percentiles (10th to 90th), total and hourly pay, bonus, pay by years of experience, and skill, certification and education pay premiums for any job title and location through the Payscale Jobalyzer API, plus job title matching. Bring your own key.",
    "version": "0.1",
    "x-build-id": "7ikYsu5LGRt6jACCK"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/nabeelbaghoor~salary-data-api-compensation-benchmarks/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-nabeelbaghoor-salary-data-api-compensation-benchmarks",
        "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/nabeelbaghoor~salary-data-api-compensation-benchmarks/runs": {
      "post": {
        "operationId": "runs-sync-nabeelbaghoor-salary-data-api-compensation-benchmarks",
        "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/nabeelbaghoor~salary-data-api-compensation-benchmarks/run-sync": {
      "post": {
        "operationId": "run-sync-nabeelbaghoor-salary-data-api-compensation-benchmarks",
        "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": {
          "mode": {
            "title": "What to read",
            "enum": [
              "payReport",
              "yearsExperienceReport",
              "skillsImpact",
              "certificationsImpact",
              "educationImpact",
              "jobTitleMatch",
              "autocomplete",
              "locations"
            ],
            "type": "string",
            "description": "Pay report gives base, total and hourly pay percentiles, bonus, commission and profit sharing for each job title and location. Pay by years of experience gives base pay percentiles per experience band. The pay impact modes list the skills, certifications or education levels of a job title with the pay premium of each. Job title match and answer autocomplete find the exact Payscale titles, skills and other answers to use; location search finds locations.",
            "default": "payReport"
          },
          "jobTitles": {
            "title": "Job titles",
            "type": "array",
            "description": "Report, pay impact and job title match modes. One job title per line. Payscale titles such as Software Developer work best; with auto resolve on, a free text title is matched to the closest confirmed title first.",
            "items": {
              "type": "string"
            }
          },
          "country": {
            "title": "Country",
            "type": "string",
            "description": "Report modes. The country of the job, required by Payscale, such as United States, Canada or United Kingdom.",
            "default": "United States"
          },
          "state": {
            "title": "State or province",
            "type": "string",
            "description": "Report modes. Optional. The state or province in full, such as Washington or Ontario."
          },
          "city": {
            "title": "City",
            "type": "string",
            "description": "Report modes. Optional. The city, such as Seattle. Set the state too."
          },
          "yearsExperience": {
            "title": "Years of experience",
            "minimum": 0,
            "maximum": 60,
            "type": "integer",
            "description": "Report modes. Optional. Years of experience in the field; it changes the pay report."
          },
          "highestDegreeEarned": {
            "title": "Highest degree earned",
            "enum": [
              "Any",
              "GED or High School Diploma",
              "Associate's Degree",
              "Bachelor's Degree",
              "Master's Degree (non-MBA)",
              "Master of Business Administration (MBA)",
              "Juris Doctor (JD), Master of Jurisprudence, or Master of Law (LLM)",
              "Doctorate (PhD)",
              "Doctor of Medicine (MD)"
            ],
            "type": "string",
            "description": "Report modes. Optional. The education level, from Payscale's list."
          },
          "skills": {
            "title": "Skills",
            "type": "array",
            "description": "Report modes. Optional. Skills of the role, one per line, as Payscale names them (the autocomplete mode with Skills lists them).",
            "items": {
              "type": "string"
            }
          },
          "certifications": {
            "title": "Certifications",
            "type": "array",
            "description": "Report modes. Optional. Certifications of the role, one per line, as Payscale names them.",
            "items": {
              "type": "string"
            }
          },
          "industry": {
            "title": "Industry",
            "type": "string",
            "description": "Report modes. Optional. The industry that defines the competing companies (Payscale's EmployerProductActivity), such as Software Development."
          },
          "averageSizeCompetitor": {
            "title": "Average competitor size (employees)",
            "minimum": 1,
            "type": "integer",
            "description": "Report modes. Optional. The number of employees at companies competing for this hire, such as 5000."
          },
          "companySales": {
            "title": "Company sales (yearly revenue)",
            "minimum": 1,
            "type": "integer",
            "description": "Report modes. Optional. Your company's estimated revenue this year, such as 3000000."
          },
          "autoResolveJobTitle": {
            "title": "Auto resolve job titles",
            "type": "boolean",
            "description": "Report and pay impact modes. Match each job title to the closest confirmed Payscale title before running. The matched title and its rating appear in each row.",
            "default": true
          },
          "includeTasks": {
            "title": "Include tasks and typical experience",
            "type": "boolean",
            "description": "Job title match mode. Also ask Payscale for the tasks of each matched title and typical years of experience.",
            "default": false
          },
          "autocompleteQuestion": {
            "title": "Answer type to autocomplete",
            "enum": [
              "JobTitle",
              "Skills",
              "Certifications",
              "EmployerProductActivity",
              "HighestDegreeEarned"
            ],
            "type": "string",
            "description": "Autocomplete mode. Which kind of answer to search. Job titles need at least 4 characters, skills and industries 2.",
            "default": "JobTitle"
          },
          "searchTerms": {
            "title": "Search terms",
            "type": "array",
            "description": "Autocomplete and location search modes. One search term per line, such as software, python or Seattle.",
            "items": {
              "type": "string"
            }
          },
          "testMode": {
            "title": "Test mode",
            "type": "boolean",
            "description": "Send Payscale's documented test flag: it returns random data that ignores your answers and spends no Payscale report credits. Good for checking an integration. Test rows are never charged. Not used by autocomplete.",
            "default": false
          },
          "maxResults": {
            "title": "Maximum results",
            "minimum": 1,
            "maximum": 100000,
            "type": "integer",
            "description": "The most rows this run returns and charges for.",
            "default": 100
          },
          "requestsPerMinute": {
            "title": "Requests per minute",
            "minimum": 1,
            "maximum": 3000,
            "type": "integer",
            "description": "Pacing for calls to Payscale. Throttled calls are retried after a pause.",
            "default": 120
          },
          "clientId": {
            "title": "Client ID",
            "type": "string",
            "description": "The client ID Payscale issued for your Jobalyzer API access. Stored as a secret. It is also sent as the documented CustomerId and User values."
          },
          "apiKey": {
            "title": "Client secret",
            "type": "string",
            "description": "The client secret of the same Payscale API client. Stored as a secret, sent only to Payscale's token endpoint and never logged. You can instead set the DATA_API_KEY environment secret as clientId:clientSecret."
          }
        }
      },
      "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}