Indeed Salary Scraper — Pay by Title, State & Employer avatar

Indeed Salary Scraper — Pay by Title, State & Employer

Pricing

from $17.00 / 1,000 job titles

Go to Apify Store
Indeed Salary Scraper — Pay by Title, State & Employer

Indeed Salary Scraper — Pay by Title, State & Employer

Find out what a role actually pays. One row per job title: the average pay and the 10th-to-90th percentile spread, the same figures for every one of the 51 US regions, the employers paying most, the top-paying cities, and the pay for the titles either side of it on the ladder.

Pricing

from $17.00 / 1,000 job titles

Rating

0.0

(0)

Developer

The Netaji

The Netaji

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Indeed Salary Scraper

Find out what a job title pays. One row per title, carrying the average pay and the 10th to 90th percentile spread, the same figures broken down across all 51 US regions, the employers paying most for the title, the top-paying cities, the pay for the titles either side of it on the ladder, and non-salary compensation such as cash bonuses.

All of it comes from one request per title. There is no per-state pass to run and nothing to paginate.

Accepted input

titles is required and is a list of job titles, one per line. Spaces are fine: software engineer and software-engineer are the same request, and a title listed both ways is priced once.

location optionally scopes every title to one city and state, such as San Francisco, CA. Leave it empty unless the local distribution itself is the answer — a nationwide row already contains the per-region breakdown and the top-paying cities, so scoping costs the same request and returns less than the nationwide answer already held.

maxItems bounds the rows saved. It is unbounded by default here, because the list of titles is already the bound.

{
"titles": ["software engineer", "registered nurse", "data analyst"]
}

Response fields

{
"requested_title": "software-engineer",
"title": "Software Engineer",
"country": "US",
"salary_period": "YEARLY",
"salary_mean": 147240.69,
"salary_median": null,
"salary_standard_deviation": 63041.46,
"percentile_10": 80008.26,
"percentile_90": 228992.18,
"salary_currency": "USD",
"regions": [
{ "region": "WA", "name": "Washington", "yearly_avg_salary": 114226, "sample_count": 1290 }
],
"top_paying_companies": [
{ "name": "Netflix", "salary_mean": 268400, "salary_count": 214, "rating": 4.2 }
],
"top_paid_cities": [{ "name": "San Jose, CA", "salary": { "mean": 168000 } }],
"related_titles": [{ "title": "senior software engineer", "salary_mean": 168200 }],
"compensations": [{ "type": "CASH_BONUS", "mean": 5000 }],
"last_updated_at": "2026-08-09T14:44:30.000Z"
}

Fields absent from a title's aggregates are returned as null rather than omitted, so every row has the same shape.

regions is the field worth building on. One row holds all 51 US regions — every state plus the District of Columbia — each with its own average and sample count. A measured run for software engineer returned 51 regions and 53 top-paying employers from a single request.

salary_mean is the headline figure and salary_period says what period it is quoted over. A title paid by the hour is summarised hourly, so a run mixing hourly and salaried titles must read the period before comparing two rows. percentile_10 and percentile_90 give the shape of the distribution where the average alone gives only its centre; on the measured run they were 80,008 and 228,992 around an average of 147,241, which is a far wider band than a single number suggests.

national and local carry the full aggregates the flat columns were lifted from, including the same population restated hourly, daily, weekly, monthly and yearly — useful for comparing an hourly role against a salaried one without assuming an hours-per-year figure.

top_paying_companies names employers, each with its mean, sample count and rating. Every name in it can be handed to Indeed Company Scraper for the full employer profile.

related_titles prices the adjacent rungs of a career ladder without a request per rung.

Questions

Should a title be run once per state to build a regional table? No, and this is the setting most worth getting right. The per-region breakdown for all 51 US regions is already in the nationwide row, so running the same title once per state would be 51 requests for a subset of what one request already returned. location exists for the case where the local distribution itself is the subject.

Why is salary_median null when salary_mean is populated? Because Indeed publishes the average for far more titles than it publishes a midpoint for. A null median beside a populated mean is normal rather than a failed read; the same applies to salary_sample_count, which is stated on some titles and not on others. The percentile pair is the more consistently available way to see the spread.

What happens to a title Indeed has never priced? It is skipped with a warning naming the title and the run continues to the rest of the list. A title with no data answers with a successful request carrying no aggregates rather than with an error, so one unusual title in a list of forty costs one row.

Why did a title come back under a different name than the one submitted? Because Indeed normalises titles to the ones it sees on postings. requested_title is what was sent after hyphenation and title is what Indeed calls it, so keeping both shows what a free-text request resolved to. If a title returns nothing, the plainer form of it usually returns something.

How current are the figures? last_updated_at states when Indeed last recomputed the aggregates for that title. It is published per title rather than per run, so two titles in one dataset can carry different dates.

Why does regions have a sample count and the national row sometimes not? The regional entries and the national aggregate are published separately by Indeed and it states counts more consistently on the regions. Where a national count is absent, the regional counts are the way to judge how much data is behind a figure.

Is an Indeed account, cookie or API key required? No. Nothing of the kind is supplied to the Actor or needed by it.

Indeed Company Scraper profiles the employers named in top_paying_companies: ratings, CEO approval and the work happiness survey.

Indeed Jobs Scraper answers what is open right now rather than what the role pays, and each of its rows carries the pay range the employer advertised.