{
  "openapi": "3.0.1",
  "info": {
    "title": "SalaryBench IQ",
    "description": "SalaryBench IQ turns official US Department of Labor wage disclosure filings into defensible salary benchmarks, percentile ranges, sample wage records, and employer pay intelligence.",
    "version": "1.0",
    "x-build-id": "FCPzGn9HaKIbXgJBt"
  },
  "servers": [
    {
      "url": "https://api.apify.com/v2"
    }
  ],
  "paths": {
    "/acts/constructive_calm~salarybench-iq/run-sync-get-dataset-items": {
      "post": {
        "operationId": "run-sync-get-dataset-items-constructive_calm-salarybench-iq",
        "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/constructive_calm~salarybench-iq/runs": {
      "post": {
        "operationId": "runs-sync-constructive_calm-salarybench-iq",
        "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/constructive_calm~salarybench-iq/run-sync": {
      "post": {
        "operationId": "run-sync-constructive_calm-salarybench-iq",
        "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",
          "role"
        ],
        "properties": {
          "mode": {
            "title": "Choose output type",
            "enum": [
              "salary-benchmark",
              "salary-samples"
            ],
            "type": "string",
            "description": "Need exact salary records? Choose Raw salary sample filings. The prefilled run uses this mode because it returns a quick sample and stops at Max output rows. Need market ranges? Choose Benchmark percentiles; this scans matching DOL source filings first, then returns aggregated P10/P25/median/P75/P90 salary rows.",
            "default": "salary-samples"
          },
          "role": {
            "title": "Job title or keyword",
            "type": "string",
            "description": "Job title keyword to benchmark. Examples: software engineer, data scientist, product manager, registered nurse.",
            "default": ""
          },
          "employer": {
            "title": "Optional employer filter",
            "type": "string",
            "description": "Optional company keyword for employer-specific salary benchmarks. Examples: Google, Amazon, Infosys.",
            "default": ""
          },
          "city": {
            "title": "Work location city",
            "type": "string",
            "description": "Optional worksite city filter. Leave empty for all cities or for top local buckets.",
            "default": ""
          },
          "state": {
            "title": "Work location state",
            "type": "string",
            "description": "Optional two-letter US state filter. Examples: CA, NY, TX, WA. Leave empty for nationwide.",
            "default": ""
          },
          "visaTypes": {
            "title": "Filing programs",
            "type": "array",
            "description": "Choose which official DOL wage disclosure programs to include. More programs mean more source files to scan. H-1B, H-1B1, and E-3 come from LCA files. PERM comes from permanent labor certification files. The prefilled run uses H-1B only for a fast sample; add PERM when you need green-card wage data.",
            "items": {
              "type": "string",
              "enum": [
                "H-1B",
                "H-1B1",
                "E-3",
                "PERM"
              ],
              "enumTitles": [
                "H-1B",
                "H-1B1",
                "E-3",
                "PERM green card"
              ]
            },
            "default": [
              "H-1B"
            ]
          },
          "decisions": {
            "title": "Filing outcomes",
            "type": "array",
            "description": "Approved means certified by DOL. Denied and Withdrawn can be included for research, but approved filings are best for salary benchmarks.",
            "items": {
              "type": "string",
              "enum": [
                "Approved",
                "Denied",
                "Withdrawn"
              ],
              "enumTitles": [
                "Approved",
                "Denied",
                "Withdrawn"
              ]
            },
            "default": [
              "Approved"
            ]
          },
          "fiscalYears": {
            "title": "Fiscal years",
            "type": "array",
            "description": "US fiscal years to include. Leave empty for the latest available fiscal year. More years mean more source filings to scan, especially in benchmark mode. Examples: 2026, 2025, 2024.",
            "items": {
              "type": "string",
              "pattern": "^[0-9]{4}$"
            },
            "default": []
          },
          "minSalary": {
            "title": "Minimum annual salary",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Skip filings with an annualized offered wage below this value. 0 means no minimum.",
            "default": 0
          },
          "maxSalary": {
            "title": "Maximum annual salary",
            "minimum": 0,
            "maximum": 10000000,
            "type": "integer",
            "description": "Skip filings with an annualized offered wage above this value. 0 means no maximum.",
            "default": 0
          },
          "maxItems": {
            "title": "Max output rows",
            "minimum": 1,
            "maximum": 50000,
            "type": "integer",
            "description": "Limits rows written to the dataset, not source rows scanned. Benchmark mode may scan thousands or millions of filings to calculate accurate percentiles, then returns up to this many aggregated benchmark rows. Raw salary sample mode returns up to this many exact filing records.",
            "default": 25
          },
          "newFilingsOnly": {
            "title": "Only new sample filings",
            "type": "boolean",
            "description": "For salary-samples, skip filings at or before the saved decision-date watermark. Add a state key-value store below when you need this to persist across runs.",
            "default": false
          },
          "stateKeyValueStoreId": {
            "title": "State key-value store",
            "type": "string",
            "description": "Optional. Select a key-value store for persistent newFilingsOnly watermarks. Leave empty to use the run's default storage."
          },
          "proxyConfiguration": {
            "title": "Proxy configuration",
            "type": "object",
            "description": "The US Department of Labor public data portal usually does not require proxies. Leave the default unless your network blocks government XLSX downloads.",
            "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
                  }
                }
              },
              "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
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}