Glassdoor Salary Data by Job Title
Pricing
from $4.00 / 1,000 results
Glassdoor Salary Data by Job Title
Median base pay, median total pay and the full percentile spread for any job title on Glassdoor, plus how many reported salaries back each figure. Returns one row per title.
Pricing
from $4.00 / 1,000 results
Rating
0.0
(0)
Developer
Farhan Febrian Nauval
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
12 days ago
Last modified
Categories
Share
Get the median pay for any job title on Glassdoor — base pay, total pay, the full percentile spread, and how many reported salaries each figure is based on.
Why use this actor
- Median base pay and median total pay, kept separate — most tools blur the two
- Full percentile spread (10th / 25th / 50th / 75th / 90th) so you can see the range, not just the midpoint
- Sample size on every row — a median from 58,000 reports means something different from one built on 40
- Additional pay broken out (bonus, commission, profit sharing) where Glassdoor publishes it
- No account and no key required
- Stable JSON output, ready for a spreadsheet or a database
How it works
- You give the actor a list of job titles (or paste Glassdoor salary page addresses directly).
- It looks up each title's salary page and reads the published pay figures.
- Every row records the job title, the pay figures, the currency, the pay period and the number of salary reports behind it.
- Results stream into your dataset, ready to download as JSON, CSV or Excel.
You don't need to manage scrapers or infrastructure. Use the default US residential proxy — Glassdoor limits how many salary pages a single address may request in a short window, and a fresh address per request is what keeps results complete.
Input
{"jobTitles": ["data scientist", "product manager"],"maxItems": 20,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"],"apifyProxyCountry": "US"}}
| Field | Type | Description |
|---|---|---|
jobTitles | array | Job titles to look up, e.g. "software engineer". One row per title. |
startUrls | array | Optional. Glassdoor salary page addresses, for company- or location-specific pages. |
maxItems | integer | Maximum titles/pages per run. Default 20. |
proxyConfiguration | object | Defaults to US residential — recommended, see above. |
Output
Real sample from a live run:
{"_input": "data scientist","_source": "S1-detailed","_scrapedAt": "2026-08-26T08:12:44Z","recordType": "SALARY_AGGREGATE","url": "https://www.glassdoor.com/Salaries/data-scientist-salary-SRCH_KO0,14.htm","jobTitle": "Data Scientist","salariesCount": 58116,"payPeriod": "ANNUAL","currency": "USD","baseMedian": 120678.43,"basePay": { "percentile10": 79345.37, "percentile25": 96771.16, "median": 120678.43, "percentile75": 150491.99 },"totalMedian": 157630.82,"totalPay": { "percentile25": 124485.45, "median": 157630.82, "percentile75": 202225.34 },"additionalPay": { "percentile10": 21432.39, "percentile25": 27714.29, "median": 36952.39, "percentile75": 51733.35 }}
| Field | Type | Description |
|---|---|---|
jobTitle | string | The job title as Glassdoor labels it. |
salariesCount | integer | How many reported salaries the figures are based on. |
baseMedian | number | Median base pay. |
basePay | object | Base pay percentiles (10th–90th, where published). |
totalMedian | number | Median total pay (base plus additional). |
totalPay | object | Total pay percentiles. |
additionalPay | object | Bonus / commission / profit sharing percentiles. |
payPeriod | string | Usually ANNUAL. |
currency | string | Currency code, e.g. USD. |
url | string | The page the figures came from. |
Notes and limits
- Coverage measured 5 of 6 titles on a live run (nurse, accountant, marketing manager, software developer, teacher all returned full figures;
software engineerdid not). A handful of very high-traffic pages are served in a layout that carries no aggregate —software developerworks wheresoftware engineerdoes not, so try a close synonym if a title comes back empty. - A title with no published data returns an error row, not an empty one. If Glassdoor has no aggregate for a title (or serves a reduced page because the address has been requesting too quickly), the row carries
_errorexplaining which happened, so a gap never looks like a zero. - Base pay is only available on the richer page layout. When only the summary layout is served, total pay is reported and
baseMedianis left empty rather than quietly filling it with a total-pay figure — the two are genuinely different numbers. - Run titles in modest batches. Requesting many pages very quickly from one address triggers a cool-down; the residential proxy default handles this for you.
- Figures are Glassdoor's own estimates from self-reported salaries, not verified payroll data.
