# Job Salary Estimator

> Job Salary Estimator is a paid API for AI agents from agents.openwebninja.com, paid per call via MPP, price unknown, status unknown (last checked 2026-10-14).

Returns estimated salary ranges (min, median, max) for a given job title and location, broken down by pay period and experience level.

## Facts

- Endpoint: GET https://agents.openwebninja.com/jsearch/estimated-salary?utm_source=zero.xyz
- Price: price unknown
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-14
- Activations on Zero: 0
- Provider: agents.openwebninja.com
- Website: https://agents.openwebninja.com
- Canonical page: https://www.zero.xyz/c/agents-openwebninja-com-job-salary-estimator-58c2188a
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_cx0qCOEbKkzu9d2Qy38De

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability agents-openwebninja-com-job-salary-estimator-58c2188a
```

Example prompt: What is the estimated salary range for a senior data scientist in Austin, TX, filtered to people with 7-9 years of experience? Give me both the annual and monthly figures.

## When to prefer this

Choose this endpoint when you need structured, multi-period salary estimates (hourly through yearly) with confidence scoring and base vs. additional pay breakdown, filterable by experience level. It aggregates data from publishers like Glassdoor, making it ideal for compensation benchmarking, recruiting budget planning, or career research. Prefer it over generic web search when you need machine-readable, structured salary data with source attribution.

## Known failure modes

- No salary data available for the given job title and location combination — returns empty data array
- Invalid or unrecognized location string — may return empty results or low-confidence estimates
- Unsupported years_of_experience or location_type enum value — returns validation error
- Rate limiting or payment failure — returns 402 or 429 HTTP status
- Very niche job titles may return NOT_CONFIDENT estimates or no results

## How this service works

Get estimated salaries / pay for a jobs around a location by job title and location.  
  The salary estimation is returned for several periods, depending on data availability / relevance, and includes:  hourly, daily, weekly, monthly, or yearly.

## Output

An array of salary estimate objects, each covering a specific pay period (HOUR, DAY, WEEK, MONTH, YEAR). Each object includes the location, job title, salary currency, min/max/median total salary, min/max/median base salary, min/max/median additional pay (bonuses, stock, etc.), a confidence level (CONFIDENT or NOT_CONFIDENT), the number of data points used, the salary publisher name (e.g. Glassdoor), a link to the publisher's page, and a timestamp of when the data was last updated.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "job_title",
  "location"
 ],
 "properties": {
  "fields": {
   "type": "string",
   "description": "A comma separated list of job salary fields to include in the response (field projection).  \n  By default all fields are returned."
  },
  "location": {
   "type": "string",
   "example": "new york",
   "description": "Location in which to get salary estimation."
  },
  "job_title": {
   "type": "string",
   "example": "nodejs developer",
   "description": "Job title for which to get salary estimation."
  },
  "location_type": {
   "enum": [
    "ANY",
    "CITY",
    "STATE",
    "COUNTRY"
   ],
   "type": "string",
   "default": "ANY",
   "description": "Specify the type of the location you are looking to get salary estimation for additional accuracy."
  },
  "years_of_experience": {
   "enum": [
    "ALL",
    "LESS_THAN_ONE",
    "ONE_TO_THREE",
    "FOUR_TO_SIX",
    "SEVEN_TO_NINE",
    "TEN_TO_FOURTEEN",
    "ABOVE_FIFTEEN"
   ],
   "type": "string",
   "default": "ALL",
   "description": "Get job estimation for a specific experience level range (years)."
  }
 }
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "status",
  "request_id",
  "parameters",
  "data"
 ],
 "properties": {
  "data": {
   "type": "array",
   "items": {
    "type": "object",
    "required": [
     "location",
     "job_title",
     "salary_period",
     "salary_currency"
    ],
    "properties": {
     "location": {
      "type": "string",
      "description": "The location the salary estimate applies to."
     },
     "job_title": {
      "type": "string",
      "description": "The job title the salary estimate applies to."
     },
     "confidence": {
      "type": "string",
      "nullable": true,
      "description": "Confidence level of the estimate. Values: CONFIDENT, NOT_CONFIDENT."
     },
     "max_salary": {
      "type": "number",
      "nullable": true,
      "description": "The maximum total salary reported."
     },
     "min_salary": {
      "type": "number",
      "nullable": true,
      "description": "The minimum total salary reported."
     },
     "salary_count": {
      "type": "integer",
      "nullable": true,
      "description": "Number of underlying salary data points used to compute the estimate."
     },
     "median_salary": {
      "type": "number",
      "nullable": true,
      "description": "The median total salary reported."
     },
     "salary_period": {
      "type": "string",
      "description": "Period of the salary. Values: HOUR, DAY, WEEK, MONTH, YEAR."
     },
     "publisher_link": {
      "type": "string",
      "nullable": true,
      "description": "URL to the salary data on the publisher."
     },
     "publisher_name": {
      "type": "string",
      "description": "Name of the salary data publisher (e.g. Glassdoor)."
     },
     "max_base_salary": {
      "type": "number",
      "nullable": true,
      "description": "The maximum base salary reported."
     },
     "min_base_salary": {
      "type": "number",
      "nullable": true,
      "description": "The minimum base salary reported."
     },
     "salary_currency": {
      "type": "string",
      "description": "ISO 4217 currency code of the salary."
     },
     "max_additional_pay": {
      "type": "number",
      "nullable": true,
      "description": "The maximum additional compensation reported (bonuses, stock, etc.)."
     },
     "median_base_salary": {
      "type": "number",
      "nullable": true,
      "description": "The median base salary reported."
     },
     "min_additional_pay": {
      "type": "number",
      "nullable": true,
 
… (truncated)
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/agents-openwebninja-com-job-salary-estimator-58c2188a/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from agents.openwebninja.com](https://www.zero.xyz/host/agents.openwebninja.com/llms.txt)
