Levels.fyi Scraper (Tech Salary & Total Compensation)
Pricing
from $14.18 / 1,000 compensation records
Levels.fyi Scraper (Tech Salary & Total Compensation)
Scrape levels.fyi crowdsourced tech compensation by company, role and location. Get total comp, base salary, stock, bonus, level, years of experience and per-level medians. Export to JSON, CSV or Excel.
Pricing
from $14.18 / 1,000 compensation records
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Levels.fyi Scraper (Tech Salary & Total Compensation)
Here is one real result, with every field the actor returns:
{"uuid": "8b8eec02-082a-4f64-88b2-c236feff29cc","company": "Google","companySlug": "google","title": "Software Engineer","jobFamily": "Software Engineer","role": "software-engineer","level": "L3","standardizedLevel": "L3","focusTag": "Full Stack","location": "New York, NY","yearsOfExperience": 1,"yearsAtCompany": 1,"totalCompensation": 170000,"baseSalary": 150000,"stockGrantValue": 20000,"bonus": 0,"currency": "USD","gender": null,"submittedDate": "2026-07-22T18:14:36.336+00:00","levelMedianTotalComp": 210772,"levelMedianBase": 165524,"levelMedianStock": 34036,"levelMedianBonus": 11212,"levelSampleCount": 42,"companyMedianTotalComp": 287499,"companyLevelMedians": "L3:208961(1112);L4:289516(835);L5:412916(723);L6:643531(229);L7:954705(64);L8:1105136(11);L9:1786800(5)","aiMarketPosition": "below median for this level","aiNegotiationTips": ["Highlight your unique skills and contributions","Research comparable offers from other companies","Consider negotiating for additional stock options","Be prepared to discuss your performance and impact"],"aiLevelEquivalents": "Facebook E3, Amazon L4, Microsoft SDE II","aiSummary": "The total compensation for this L3 Software Engineer position at Google is below the median for similar roles.","pageUrl": "https://www.levels.fyi/companies/google/salaries/software-engineer","source": "levels.fyi","observedAt": "2026-08-20T10:30:25.993Z"}
The most complete tech compensation scraper available. It returns every field a crowdsourced salary submission exposes (company, title, level, focus area, location, years of experience, and the full base salary, stock and bonus breakdown behind each total comp figure), plus derived per-level medians, optional company benchmark tables and an optional AI compensation insight, and gives you four filters to target exactly the records you need.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
- More scrapers at scrapers.lat
What it does
This actor collects crowdsourced tech total-compensation records by company, role and location. Each record is one real submission with the money split out: total compensation, base salary, annual stock grant value and bonus, tied to the company level (for example L5 or SDE II), the focus area (ML / AI, Backend, Mobile), the location, and the submitter's years of experience and years at the company.
Every record also carries the per-level medians for its role (median total comp, base, stock and bonus, plus the sample size behind them), so you can see instantly whether an offer sits above or below the level. Two optional add-ons go further: company benchmarks attach the company-wide median and the full per-level median table, and an AI compensation insight adds a market-position read, negotiation tips, comparable levels at other companies and a one-line summary.
Use it for compensation benchmarking, recruiting and sourcing, offer negotiation, and market research.
Quickstart
Give it at least a company or a role. Example input:
{"company": "Google","role": "Software Engineer","location": "New York","minTotalComp": 200000,"maxResults": 25}
- Company and role together pull that role at that company (richest, most records).
- Company only pulls every role at that company.
- Role only pulls the top-paying companies for that role.
Input reference
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
company | string | one of company/role | Company to pull compensation for | Google |
role | string | one of company/role | Job family to filter by | Software Engineer |
location | string | no | Keep only records whose location contains this text | New York |
minTotalComp | integer | no | Keep only records with total comp at or above this USD amount | 200000 |
maxResults | integer | no | Max records to collect in the run (free plans capped at 10) | 25 |
companyBenchmarks | boolean | no | Paid add-on, off by default. Attach the company per-level median table and company-wide median | false |
aiCompInsight | boolean | no | Paid add-on, off by default. Add AI market position, negotiation tips, level equivalents and summary | false |
Output reference
| Name | Type | Description |
|---|---|---|
uuid | string | Unique id of the compensation submission |
company | string | Company name |
companySlug | string | Company slug |
title | string | Job title |
jobFamily | string | Job family (role track) |
role | string | Role slug used for the query |
level | string | Company level name, for example L5 or SDE II |
standardizedLevel | string | Standardized ladder level name |
focusTag | string | Focus area, for example ML / AI, Backend, Mobile |
location | string | Location (city, region) |
yearsOfExperience | integer | Total years of experience |
yearsAtCompany | integer | Years at the company |
totalCompensation | integer | Total compensation in USD |
baseSalary | integer | Base salary in USD |
stockGrantValue | integer | Average annual stock grant value in USD |
bonus | integer | Average annual bonus in USD |
currency | string | Compensation currency (USD) |
gender | string | Self-reported gender when public |
submittedDate | string | Offer / submission date |
levelMedianTotalComp | integer | Median total comp for this level and role |
levelMedianBase | integer | Median base salary for this level and role |
levelMedianStock | integer | Median stock grant for this level and role |
levelMedianBonus | integer | Median bonus for this level and role |
levelSampleCount | integer | Number of samples behind the level medians |
companyMedianTotalComp | integer | Company-wide median total comp (benchmarks add-on) |
companyLevelMedians | string | Per-level median comp table for this role (benchmarks add-on) |
aiMarketPosition | string | AI market-position read (AI add-on) |
aiNegotiationTips | array | AI negotiation tips (AI add-on) |
aiLevelEquivalents | string | AI comparable-level equivalents at other companies (AI add-on) |
aiSummary | string | AI one-line summary (AI add-on) |
pageUrl | string | Source page URL |
source | string | Data source |
observedAt | string | ISO timestamp collected |
Example output record
See the record at the top of this page, which shows every field populated (including both optional add-ons).
Run via API and CLI
Start a run with the Apify API:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~levels-fyi-scraper/runs?token=YOUR_TOKEN" \-H "Content-Type: application/json" \-d '{"company":"Google","role":"Software Engineer","maxResults":25}'
Run with the Apify CLI:
apify call scrapers_lat/levels-fyi-scraper \--input '{"company":"Google","role":"Software Engineer","maxResults":25}'
Fetch results
Download the dataset items once the run finishes:
$curl "https://api.apify.com/v2/datasets/DATASET_ID/items?token=YOUR_TOKEN&format=json"
Swap format=json for format=csv or format=xlsx to export to CSV or Excel.
Billing and limits
- Pay per result: you are charged for each compensation record returned.
- Events: an actor-start event, the primary compensation-record event, and two optional add-ons (company benchmarks and AI compensation insight) that are off by default and billed only when they return real data.
- Empty and failed runs are never billed.
- Free Apify plans are capped at 10 records per run; the paid add-ons are disabled on free plans.
- The actor respects your run spend limit and stops returning records once it is reached.
FAQ and troubleshooting
Do I need a company and a role? No, at least one is enough. Company plus role gives the most records; role only fans out across the top-paying companies for that role.
Why are some money fields the same across similar records? The per-level median fields describe the whole level, so records at the same level and role share them.
Can I filter by location or pay? Yes, use location for a location contains match and minTotalComp for a floor on total compensation.
Is a login or cookie needed? No. Anti-bot handling is done for you internally.
What do the add-ons add? Company benchmarks add the company-wide median and the full per-level median table. AI compensation insight adds a market-position read, negotiation tips, comparable levels and a summary.
More scrapers at scrapers.lat
Looking for related data? Browse the full catalog of company, jobs and lead-generation scrapers at scrapers.lat.
This is an independent scraper and is not affiliated with, endorsed by, or sponsored by levels.fyi.
