Salary Data API with Pay Percentiles: Payscale Jobalyzer
Pricing
from $20.00 / 1,000 salary pay reports
Salary Data API with Pay Percentiles: Payscale Jobalyzer
Get market salary percentiles (10th to 90th), total and hourly pay, bonus, pay by years of experience, and skill, certification and education pay premiums for any job title and location through the Payscale Jobalyzer API, plus job title matching. Bring your own key.
Pricing
from $20.00 / 1,000 salary pay reports
Rating
0.0
(0)
Developer
Nabeel Hassan
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Get market salary percentiles, pay by years of experience and the pay premium of every skill, certification and degree for any job title and location from the Payscale Jobalyzer API, with your own API key, as clean rows you can export to CSV, Excel or JSON or feed into your own app.
Payscale runs one of the largest crowdsourced compensation surveys, with tens of millions of salary profiles, and models pay ranges from the profiles that best match a job title, location, experience, education, skills and industry. Its Jobalyzer API serves that model to Data API customers. This actor wraps the Jobalyzer API on jobalyzer.payscale.com: it requests the reports, waits for them to finish, and flattens the answers into one row per job or per skill. Use it for salary benchmarking, pay range and pay transparency postings, offer letters, compensation planning, job board salary estimates and HR analytics. Bring your own API key.
BYOK, not live tested: every route, parameter and response field comes from Payscale's public developer documentation at developers.payscale.com (the Jobalyzer guides and the Swagger schema behind its API reference), and every route was probed on 2026-10-27 with invalid credentials. The actor has not been run against a live Payscale key.
What it does
- Pay report: base pay, total cash compensation and hourly pay at the 10th, 25th, 50th (median), 75th and 90th percentiles, with averages, the number of matched profiles, bonus, commission and profit sharing, total companies and incumbents, the location level used and Payscale's report rating. One row per job title.
- Pay by years of experience: base pay percentiles and averages for each experience band of a job title (for example less than 1 year up to 8 years or more), and the experience points where pay steps up by about 15 percent.
- Skill pay impact: the top skills reported for a job title, with the share of profiles reporting each, its median base pay and its pay differential in USD and percent. One row per skill.
- Certification and education pay impact: the same for certifications (such as CPA or PMP) and education levels.
- Job title match: Payscale's ensemble title matcher turns any free text title into ranked confirmed Payscale titles, optionally with tasks and typical experience.
- Answer autocomplete and location search: the exact job titles, skills, certifications, industries, degrees and locations Payscale accepts, so reports match what you mean.
- Test mode: Payscale's documented test flag returns random data and spends none of your report credits, for checking an integration first.
- Pay only for data: empty reports, test rows and lookups Payscale refuses are recorded as a free row that says why, never charged.
How to use it
- Get Payscale Data API access. Jobalyzer clients are issued with a commercial Data API contract through Payscale's sales team; you receive a client ID and a client secret.
- Paste them into the Client ID and Client secret fields, or set the DATA_API_KEY environment secret as
clientId:clientSecret. The actor exchanges them for a short lived token at accounts.payscale.com/connect/token, as Payscale documents, and removes both from everything it logs. - Pick a mode, add job titles (and a country, state, city and other answers for reports) or search terms, and run. Turn on test mode for a first run that spends no report credits.
- Download the dataset as JSON, CSV or Excel, or connect it to your workflow through the Apify API, webhooks or integrations.
Missing or rejected credentials, or an account out of report credits, end the run cleanly with a status message that explains what to change, and nothing is charged.
Input
| Field | Modes | Description |
|---|---|---|
mode | all | payReport (default), yearsExperienceReport, skillsImpact, certificationsImpact, educationImpact, jobTitleMatch, autocomplete or locations |
jobTitles | report, impact, match | One job title per line |
country, state, city | reports | Location of the job; country is required (default United States) |
yearsExperience, highestDegreeEarned | reports | Experience and education of the person |
skills, certifications | reports | Payscale skill and certification names |
industry, averageSizeCompetitor, companySales | reports | The competitive set of companies |
autoResolveJobTitle | reports, impacts | Match free text titles to confirmed Payscale titles (default on) |
includeTasks | job title match | Add tasks and typical years of experience |
autocompleteQuestion, searchTerms | autocomplete, locations | What to search and the terms |
testMode | all but autocomplete | Random data, no report credits spent, never charged |
maxResults, requestsPerMinute | all | Row cap and pacing |
clientId, apiKey | all | Your Payscale client ID and client secret |
Example output
A pay report row (shortened; record holds the full answer with all 81 percentiles of each sub-report):
{"mode": "payReport","recordType": "payReport","query": "Software Developer","found": true,"jobTitle": "Software Developer","matchedJobTitle": "Software Developer","jobTitleRating": 100,"country": "United States","state": "Washington","city": "Seattle","currency": "U.S. Dollar (USD)","basePayP10": 52342.26,"basePayP25": 67851.95,"basePayP50": 83743.64,"basePayP75": 102032.42,"basePayP90": 121748.59,"basePayAverage": 86667.46,"basePayProfiles": 45,"totalCompanies": 49,"totalIncumbents": 3619,"totalProfilesAnalyzed": 51975,"levelUsed": "State","reportRating": 0.27,"testData": false}
A skill pay impact row:
{"mode": "skillsImpact","recordType": "skillImpact","jobTitle": "Executive Assistant","name": "Executive Support","rank": 1,"profileCount": 3549,"percentReporting": 26.24,"medianBasePay": 55169.01,"payDifferential": 7152.97,"payDifferentialPercentage": 14.9,"currency": "USD"}
FAQ
What is the Payscale Jobalyzer API?
Jobalyzer is Payscale's REST API for compensation data. Given compensable factors such as job title, city, state, country, years of experience, education, skills and industry, it returns modeled pay distributions built from the best matching profiles in Payscale's salary survey, plus skill, certification and education pay impacts and title matching.
Do I need my own Payscale API key?
Yes. This actor is bring your own key: it calls Payscale with your client ID and client secret, and your Payscale Data API contract applies. Payscale does not offer self serve keys; access comes through its sales team.
Does running a report cost Payscale credits?
Yes. Payscale bills per report: each pay report and each years of experience report spends one report credit, and each impact request one more. Payscale does not bill a report whose report rating is 0. Test mode spends no credits. When the account runs out, Payscale answers that it has no reports left and this actor ends the run cleanly.
What do the percentiles mean?
basePayP50 is the median base salary of the matched profiles; basePayP10 and basePayP90 are the 10th and 90th percentiles, the usual low and high ends of a market pay range. Total pay adds bonus, commission and profit sharing to base pay. Hourly pay is in currency per hour.
What is the report rating?
A score from 0 to 1 for how well the data supports the answers you gave. 1 means high confidence; 0 means sparse or conflicting data. A job title rating from 0 to 100 shows how well an auto resolved title matches the one you typed; 60 or more is generally good.
Why is a pay report empty?
Payscale returns empty reports when the matched profiles are too few or vary too much, for example a national report for a job whose pay follows state minimum wages, or an unusual mix of answers. Add a state or city, an industry or years of experience. Empty reports are free here.
How do I find skills that raise pay for a job?
Run the skill pay impact mode with the job title. Each row is one skill with its pay differential: the difference between the median base pay of profiles listing it among their top skills and the median of all profiles with that title. A negative value means the skill is common among lower paid holders of the title.
Which countries are covered?
Payscale reports pay in the currency of the country you set, such as United States, Canada or United Kingdom. Coverage depends on Payscale's profile data for each country and title.
What do I pay?
0.02 USD per pay report, 0.015 USD per years of experience report, 0.008 USD per skill, certification or education impact and 0.005 USD per job title, answer or location match, plus whatever your Payscale contract costs. Empty, test and refused lookups are free.
Keyword map
salary data API, compensation data API, salary benchmarking API, pay percentiles, market pay data, salary range API, pay range for job postings, pay transparency data, total compensation data, hourly wage data, bonus data, pay by years of experience, skill pay premium, certification salary impact, education salary impact, job title matching API, job title normalization, HR analytics data, Payscale API, Payscale Jobalyzer, Payscale Data API.
Routes and verification
| Mode | Route | Source | Probe with invalid credentials |
|---|---|---|---|
| Token | POST accounts.payscale.com/connect/token | Access patterns guide | 400 {"error":"invalid_client"}; invented /connect/tokenz 302 |
| Pay and experience reports | POST /jobalyzer/v2/reports | Swagger schema and guides | 401; invented /jobalyzer/v2/reportz 404 |
| Report results | GET /jobalyzer/v2/reports/{ReportId}/pay and /yoe (the returned link) | Swagger schema and guides | 401 |
| Skill pay impact | GET /jobalyzer/v2/impact/skills | Swagger schema | 401; invented /jobalyzer/v2/impactz/skills 404 |
| Certification pay impact | GET /jobalyzer/v2/impact/certs | Swagger schema | 401 |
| Education pay impact | GET /jobalyzer/v2/impact/education | Swagger schema | 401 |
| Job title match | GET /jobalyzer/v2/jobtitlematch | Swagger schema and matching guide | 401 |
| Autocomplete | GET /jobalyzer/v2/autocomplete/{QuestionId} | Matching guide | 401 |
| Location search | GET /jobalyzer/v2/locations/{SearchTerm} | Swagger schema | 401 |
Each probe was repeated with the same result. Report answers are fetched only from links on jobalyzer.payscale.com that point at its own report route. Usage export routes and the other report types named in the schema are not wrapped.
Licensing and data use
This actor works only with your own Payscale API client, and your Data API agreement with Payscale governs how you may store, display and share its data. Check that agreement before you republish salary figures. This actor is not affiliated with or endorsed by Payscale, Inc.