Salary Data API: Pay Benchmarks From Live Job Postings avatar

Salary Data API: Pay Benchmarks From Live Job Postings

Pricing

from $13.00 / 1,000 salary benchmarks

Go to Apify Store
Salary Data API: Pay Benchmarks From Live Job Postings

Salary Data API: Pay Benchmarks From Live Job Postings

Pay ranges for any job title and location, from the salaries stated in open job postings. Median, percentiles, seniority and country breakdowns, with sample postings.

Pricing

from $13.00 / 1,000 salary benchmarks

Rating

0.0

(0)

Developer

Velavalapalli Mohana Durga Sai Ram

Velavalapalli Mohana Durga Sai Ram

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 minutes ago

Last modified

Categories

Security

Limited permissions

Share

What does Salary Benchmarks do?

Get pay ranges for any job title and location, built from the salaries employers state in their own open job postings. Each benchmark gives the median, percentiles, average range and a breakdown by seniority and country, with sample postings as evidence. The index holds about 170,000 open job postings that state pay and is refreshed daily.

Use it as a salary data API: send job titles and places, and get back one clean benchmark per title and location, ready for a spreadsheet, a compensation tool or an AI agent.

Why use Salary Benchmarks?

  • Current pay, not old surveys. Benchmarks come from jobs that are open now, not from salaries people reported years ago.
  • Employers' own numbers. Pay transparency laws in several US states, and similar rules spreading in Europe, mean more employers publish a range in the posting itself.
  • Evidence you can check. Every benchmark links recent postings with their stated pay.
  • Many benchmarks in one run. Ten titles across ten cities is one run with 100 rows.
  • You only pay for useful rows. Benchmarks with too few postings are skipped and not charged.

Who uses salary benchmarks?

  • HR and compensation teams setting salary bands and offers for a role in a city or country.
  • Recruiters and agencies pricing searches and briefing hiring managers with market data.
  • Job seekers and career sites showing what a role pays where.
  • Salary tools and AI agents that need clean numbers through an API.

What data can Salary Benchmarks extract?

FieldTypeDescription
jobTitle, locationtextThe title and place you asked for
mediannumberMedian yearly pay, in the main currency
p10, p25, p75, p90numberPercentiles of yearly pay
averageRangeLow, averageRangeHighnumberAverage bottom and top of the stated ranges
currency, periodtextCurrency of the benchmark; the period is always year
postingsWithPay, companiesnumberHow many postings and companies the benchmark uses
confidencetexthigh from 30 postings, medium from 10, low below
bySeniority, byCountrylistMedian pay per level and per country
otherCurrencieslistPostings in other currencies, summarized separately
sampleJobslistRecent postings with their pay and a link
summarytextOne sentence, such as "$185,000 median yearly pay from 1105 job postings at 591 companies."

How to get salary data for a job title

  1. Enter one or more job titles, such as data engineer or "account executive".
  2. Add locations if you want one benchmark per place: a city, state, country or two-letter country code.
  3. Click Start. You get one benchmark for every title and location pair.
  4. Download the results, or read them through the API.

Example input

{
"jobTitles": ["data engineer", "product manager"],
"locations": ["United States", "London", "Germany"],
"minPostings": 5
}

How much does salary data cost?

You pay per benchmark returned, and higher Apify plans pay less per benchmark. The pricing panel on this page shows the price for your plan. On the Free and Starter plans:

Benchmarks returnedCost
10$0.20
100$2.00
1,000$20.00

Benchmarks with too few postings are skipped and not charged. Platform usage is included.

Input

See the Input tab for every option:

OptionWhat it does
Job titlesOne benchmark per title. Words in any order, or use double quotes for an exact phrase
LocationsOne benchmark per location for each title. Leave empty for all locations
Exclude title keywordsSkip titles containing these, such as "intern"
SeniorityOnly count postings at these levels
Only remote jobsOnly count remote postings
Count remote jobs that name no countryOff by default, because pay for worldwide remote jobs is often set for another market
Posted within the last N days0 uses every open posting in the index
Minimum postings per benchmarkBenchmarks with fewer postings that state pay are skipped and not charged
Sample jobs per benchmarkRecent postings with their pay and a link

Output

Download the dataset as JSON, CSV, Excel, XML, RSS or HTML. Each benchmark looks like this:

Example output

{
"jobTitle": "data engineer",
"location": "London",
"summary": "£95,000 median yearly pay from 17 job postings at 12 companies.",
"currency": "GBP",
"period": "year",
"median": 95000,
"p10": 64000,
"p25": 82000,
"p75": 110000,
"p90": 120000,
"averageRangeLow": 85000,
"averageRangeHigh": 105000,
"postingsWithPay": 17,
"companies": 12,
"confidence": "medium",
"bySeniority": [{ "seniority": "mid", "postings": 9, "median": 85000 }, { "seniority": "senior", "postings": 8, "median": 105000 }],
"byCountry": [{ "country": "GB", "postings": 17, "median": 95000 }],
"otherCurrencies": [],
"sampleJobs": [{ "title": "Senior Data Engineer", "company": "Acme", "location": "London, UK", "salary": { "min": 95000, "max": 115000, "currency": "GBP", "period": "year" }, "postedDate": "2026-11-03", "url": "https://job-boards.greenhouse.io/acme/jobs/123" }],
"dataAsOf": "2026-11-05T22:01:18.962Z"
}

How the numbers are worked out

  • Each posting counts once, at the midpoint of its stated range. A posting that states one figure counts at that figure.
  • Hourly pay is converted to yearly at 2,080 hours, and monthly pay at 12 months. Pay for other periods is left out.
  • Each benchmark uses the currency most of its postings state. Postings in other currencies are summarized in otherCurrencies and not converted.
  • Bonus, equity and benefits are not included, because postings rarely state them in a comparable way.

Tips for better benchmarks

  • Use a country instead of a city when a benchmark comes back with low confidence.
  • Put a title in double quotes for an exact phrase, such as "product manager".
  • Raise Minimum postings per benchmark to 10 or more when you only want solid numbers.

Use Salary Benchmarks with the API and AI agents

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('atsfeed/job-salary-benchmarks').call({
jobTitles: ['data engineer'],
locations: ['United States', 'London'],
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

AI agents in Claude, ChatGPT, Cursor or any MCP client can call this Actor as a tool through the Apify MCP server at mcp.apify.com. The API tab has Python, cURL and more.

FAQ

Where does the salary data come from?

From the pay that employers state in their open job postings on Greenhouse, Lever, Ashby, Workable, SmartRecruiters, Recruitee, Personio and Breezy job boards. No personal data is used: benchmarks describe what employers advertise, not what any person is paid.

Why is a benchmark missing?

It had fewer postings that state pay than your Minimum postings per benchmark. It was skipped and not charged. Try a broader title or a country instead of a city.

Why are some benchmarks in US dollars outside the US?

Some international postings state pay in US dollars. The Actor uses the currency most postings state and lists the rest in otherCurrencies.

Coverage and accuracy

  • Index size, November 2026: about 170,000 open job postings that state pay. By currency: US dollars 150,000, euros 8,600, British pounds 6,000, Indian rupees 2,800, Canadian dollars 1,900.
  • Coverage is strongest in the United States, where more employers state pay.
  • A city matches postings that name that city. A country also matches postings that list it among several countries.
  • Pay is taken from the employer's posting with fixed rules. Ranges can be wide, and a few postings state pay for a different market than their location. Check the sample jobs before relying on a number.

Questions

Found a wrong number, or want a market covered better? Open an issue on the Issues tab with an example.