Levels.fyi Scraper API - Tech Salaries by Level & Company avatar

Levels.fyi Scraper API - Tech Salaries by Level & Company

Pricing

from $1.70 / 1,000 results

Go to Apify Store
Levels.fyi Scraper API - Tech Salaries by Level & Company

Levels.fyi Scraper API - Tech Salaries by Level & Company

💰 Scrape verified tech compensation from Levels.fyi: every job level of any company with total comp, base salary, stock, bonus, years of experience and p10–p90 percentiles, plus company overview. By company name or URL, filtered by role and location. No login, no browser. Pay per result.

Pricing

from $1.70 / 1,000 results

Rating

0.0

(0)

Developer

Scrapifier

Scrapifier

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Categories

Share

Benchmark tech compensation, feed salary models, or research an offer with verified data from Levels.fyi — the reference for levels and pay in tech.

⚡ Scrape the full compensation ladder of any company by name or URL: one clean row per job level with median total compensation, base salary, stock grant and bonus, years-of-experience stats, submission counts, the level's meaning on the company ladder, and the whole job family's p10–p90 percentile distribution. Filter by job family and location. No login, no browser, pay per result.

What you get

One row per company × job family × level:

FieldExample
company, companySlugGoogle, google
jobFamilySoftware Engineer
level, levelAltName, levelTitlesL4, SWE III, ["L4", "SWE III"]
totalCompensation308430
baseSalary / stockGrant / bonus / commission193095 / 92186 / 23149 / 0
salaryCount, salaryCountLast12Months58, 826
yearsOfExperienceAvg, yearsOfExperienceMedian5.52, 5
percentWorkforce, levelDescription20, "L3 is the new grad role at Google"
familyPercentilesp10–p90 for total comp, base, stock, bonus
familyMedianTotalCompensation284000
location, currencyNew York City, USD
companyWebsite, companyHq, companyEmployees, companyTickercompany context on every row
levelUrl, url, matchedInputdeep links + which input produced the row

Turn on Flatten rows to get spreadsheet-ready columns (family_totalComp_p50, family_base_p90…) instead of nested objects.

Inputs

FieldTypeDefaultMeaning
Company namescompanyNames["Google"]Company names; resolved to the right Levels.fyi page automatically.
Company URLsstartUrls—Any Levels.fyi company page: /companies/google/salaries, a job family (.../salaries/software-engineer) or a family + location (.../salaries/software-engineer/locations/new-york-city-area).
Job familiesjobFamiliesallOnly these families ("Software Engineer", "Product Manager", "Data Scientist"…).
Locationslocationsdefault scopeScope the numbers to locations ("New York City Area", "Seattle Area", "India"…).
Maximum rowsmaxItems500Total row cap — the number of results you pay for. 0 = no limit.
Flatten rowsflattenoffFlat columns for CSV/Excel.
Input status reportemitInputStatusonOUTPUT lists what each input resolved to and why anything returned 0.

Examples — all live-verified

1. A company's full compensation ladder

{ "companyNames": ["Google"] }

Every job family at Google, every level: engineering, product, data, design, sales… one row per level.

2. Compare one role across companies

{ "companyNames": ["Google", "Meta", "Stripe"], "jobFamilies": ["Software Engineer"] }

The SWE ladders of three companies, side by side: L3–L8 vs E3–E8, with percentiles per family.

3. A role in one metro area

{ "companyNames": ["Google"], "jobFamilies": ["Software Engineer"], "locations": ["New York City Area"] }

NYC-scoped numbers for Google SWE levels.

4. Straight from URLs

{ "startUrls": [{ "url": "https://www.levels.fyi/companies/jpmorgan-chase/salaries/software-engineer" }] }

5. Spreadsheet export for a comp review

{ "companyNames": ["Microsoft"], "jobFamilies": ["Product Manager"], "flatten": true, "maxItems": 50 }

Why this scraper

  • Complete rows — not just the headline number: base/stock/bonus split, YoE, counts, ladder meaning and family percentiles on every row.
  • Every input wired — names, URLs, families and locations all actually filter the scrape.
  • Honest reporting — the input_status report in OUTPUT tells you what each input returned and why anything came back empty.
  • Fast and cheap — no browser: structured data read directly, hundreds of rows a minute.

FAQ

Is this legal? The Actor reads only publicly displayed aggregate statistics, the same numbers any visitor sees. No accounts, no personal data, no individual submissions. You are responsible for using the output in compliance with applicable laws and Levels.fyi's terms.

A company returns 0 rows? Check input_status in the run's OUTPUT: small companies may have too few submissions for a given family, and location filters narrow the data further. Try without filters, or pass the exact company URL.

What currency are the numbers in? The currency field says — location-scoped pages are converted by Levels.fyi to the location's currency; default pages are USD.


Looking for more workforce data? See the rest of the family: Indeed Salaries, Glassdoor Salaries, Glassdoor Company Search, Indeed Jobs, Upwork Jobs.