Levels.fyi API API
The Levels.fyi API returns tech salary and compensation data as clean JSON.
🤖 Using an AI assistant? Copy this link into ChatGPT / Claude / Cursor — it reads every endpoint and parameter instantly and tells you if this API fits your use case.
The primary company/salaries endpoint returns a company's pay by role and location with percentiles for total comp, base salary, bonus and stock, and you can pull a company's roles, search companies, list companies for a role and see submissions. It is built for compensation benchmarking, recruiting and career tools that need real tech-pay data without a scraper. One ReefAPI key, one shared credit pool, the standard envelope.
Real request and response JSON
Captured from the indexed primary action, company/salaries, on .
{
"method": "POST",
"url": "https://api.reefapi.com/levels-fyi/v1/company/salaries",
"headers": {
"x-api-key": "$REEF_KEY",
"content-type": "application/json"
},
"body": {
"company": "google",
"role": "software-engineer"
}
}{
"ok": true,
"meta": {
"api": "levels-fyi",
"endpoint": "company/salaries",
"mode": "live",
"latency_ms": 955.9,
"record_count": 7,
"bytes": 571708,
"cache_hit": false,
"method": "ssr_next_data",
"url": "/companies/google/salaries/software-engineer"
},
"data": {
"company": {
"id": 1,
"slug": "google",
"name": "Google",
"description": "Google LLC is an American multinational technology company that specializes in Internet-related services and products, which include online advertising technologies, a search engine, cloud computing, software, and hardware.",
"website": "https://www.google.com",
"linkedin": "company/google",
"year_founded": 1998,
"employee_count": 258750,
"ticker": "GOOG",
"company_type": "public",
"hq_city": "Mountain View",
"hq_state_code": "CA",
"icon": "https://static.levels.fyi/custom/google.webp",
"tags": [
"Internet",
"Web Services & Apps",
"Technology"
],
"vesting_schedule": "38/12,32/12,20/12,10/12|33/12,33/12,22/12,12/12|50/12,28/12,12/12,10/12|36/12,28/12,20/12,16/12|25/12,25/12,25/12,25/12|25/4,25/4,25/4,25/4|33/4,33/4,34/4",
"general_levels": "L3,L4,L5,L6,L7,L8,L9,L10"
},
"role": "Software Engineer",
"role_slug": "software-engineer",
"location": "United States",
"currency": "USD",
"percentiles": {
"total_comp": {
"p10": 176000,
"p25": 207500,
"p50": 294950,
"p75": 403000,
"p90": 484000
},
"base_salary": {
"p10": 151000,
"p25": 170000,
"p50": 200000,
"p75": 218000,
"p90": 242000
},
"bonus": {
"p10": 0,
"p25": 0,
"p50": 24950,
"p75": 35000,
"p90": 42000
},
"stock_grant": {
"p10": 25000,
"p25": 37500,
"p50": 70000,
"p75": 150000,
"p90": 200000
}
},
"median": {
"level": "L4",
"title": "Software Engineer",
"focus_tag": "Distributed Systems (Back-End)",
"years_of_experience": 4,
"years_at_company": 0,
"location": "Seattle, WA",
"base_salary": 188000,
"total_compensation": 293700,
"stock_grant_annual": 77500,
"bonus_annual": 28200,
"currency": "USD",
"sample_count": 22632
},
"levels": [
{
"titles": [
"L3",
"SWE II"
],
"title_slugs": [
"l3",
"swe-ii"
],
"order": 0,
"description": "L3 / T3 is the new grad software engineering role at Google",
"percent_workforce": 20,
"target_bonus_percentage": null
},
{
"titles": [
"L4",
"SWE III"
],
"title_slugs": [
"l4",
"swe-iii"
],
"order": 1,
"description": null,
"percent_workforce": 20,
"target_bonus_percentage": null
},
{
"titles": [
"L5",
"Senior SWE"
],
"title_slugs": [
"l5",
"senior-swe"
],
"order": 2,
"description": null,
"percent_workforce": 20,
"target_bonus_percentage": null
}
],
"averages": [
{
"level": "L3",
"secondary_level": "SWE II",
"level_index": 0,
"sample_count": 32,
"sample_count_last_12_months": 808,
"total_compensation": 205575,
"base_salary": 161312,
"stock_grant": 34789,
"bonus": 9473,
"commission": 0,
"level_page_url": "https://www.levels.fyi/companies/google/salaries/software-engineer/levels/l3"
},
{
"level": "L4",
"secondary_level": "SWE III",
"level_index": 1,
"sample_count": 33,
"sample_count_last_12_months": 766,
"total_compensation": 289557,
"base_salary": 193977,
"stock_grant": 75045,
"bonus": 20535,
"commission": 0,
"level_page_url": "https://www.levels.fyi/companies/google/salaries/software-engineer/levels/l4"
},
{
"level": "L5",
"secondary_level": "Senior SWE",
"level_index": 2,
"sample_count": 28,
"sample_count_last_12_months": 676,
"total_compensation": 422689,
"base_salary": 228520,
"stock_grant": 163258,
"bonus": 30911,
"commission": 0,
"level_page_url": "https://www.levels.fyi/companies/google/salaries/software-engineer/levels/l5"
}
],
"related_roles": [
{
"title": "Android Engineer",
"title_slug": "android-engineer",
"salary_count": 6,
"median_total": 240000
},
{
"title": "Mobile Software Engineer",
"title_slug": "mobile-software-engineer",
"salary_count": 9,
"median_total": 212000
},
{
"title": "Frontend Software Engineer",
"title_slug": "frontend-software-engineer",
"salary_count": 9,
"median_total": 365000
}
],
"sample_submissions": [
{
"uuid": "9f808ab[redacted-phone]e-84b3-ee13fba3ef39",
"company": "Google",
"title": "Software Engineer",
"job_family": "Software Engineer",
"level": "L3",
"focus_tag": "DevOps",
"years_of_experience": 1,
"years_at_company": 0,
"years_at_level": null,
"offer_date": "[redacted-phone]T16:12:08.865+00:00",
"location": "Los Angeles, CA",
"work_arrangement": null,
"base_salary": 140000,
"total_compensation": 160000,
"stock_grant_annual": 20000,
"bonus_annual": 0,
"currency": null
},
{
"uuid": "cfdc8d[redacted-phone]d1-b420-b8979ec2d3fc",
"company": "Google",
"title": "Software Engineer",
"job_family": "Software Engineer",
"level": "L3",
"focus_tag": "Full Stack",
"years_of_experience": 0,
"years_at_company": 0,
"years_at_level": null,
"offer_date": "[redacted-phone]T05:23:31.072+00:00",
"location": "Palo Alto, CA",
"work_arrangement": null,
"base_salary": 138000,
"total_compensation": 160500,
"stock_grant_annual": 22500,
"bonus_annual": 0,
"currency": null
},
{
"uuid": "c631c[redacted-phone]e1-af0c-a79e9529e230",
"company": "Google",
"title": "Software Engineer",
"job_family": "Software Engineer",
"level": "L3",
"focus_tag": "Data",
"years_of_experience": 1,
"years_at_company": 0,
"years_at_level": null,
"offer_date": "[redacted-phone]T06:49:59.261+00:00",
"location": "New York, NY",
"work_arrangement": null,
"base_salary": 140000,
"total_compensation": 165000,
"stock_grant_annual": 25000,
"bonus_annual": 0,
"currency": null
}
],
"sample_submission_count": 112
}
}What the Levels.fyi API API does
| Action | Description | Concrete use case | Key params |
|---|---|---|---|
| company/salaries | The flagship action: full Levels.fyi compensation breakdown for one company + role. Returns the level ladder (L3/L4/…), per-level averages (base / stock / bonus / total), the percentile bands (P10/P25/P50/P75/P90 for total-comp, base, bonus and stock), the median offer (with years of experience), the role's sub-specializations and a sample of recent salary submissions. Pass an optional `location` to scope to a metro. | Recruiting teams call company/salaries to get the flagship action. | company, role, location |
| company/roles | Resolve a company to its Levels.fyi profile (id, slug, website, employee count, HQ, vesting schedule…) plus the catalog of job-family role slugs you can query for it. Use this to confirm a company's slug and pick a role slug to feed into company/salaries. NOTE: the role list is the full Levels.fyi job-family catalog (the roles available to query) — for the roles a company actually has reported data for, read `related_roles` from a company/salaries response. | Labor-market analysts call company/roles to resolve a company to its Levels.fyi profile (id, slug, website, employee count, HQ, vesting s…. | company |
| company/search | Find companies on Levels.fyi by name. Returns matching companies with the slug and a ready-to-use salaries URL — feed the slug into company/roles or company/salaries. | Job boards call company/search to find companies on Levels.fyi by name. | query, limit |
| role/companies | For a given role/title, list every company that reports compensation data for it on Levels.fyi (the role's coverage), plus the country-wide median total-comp and the full job-family catalog. Useful for 'which companies pay for <role>' and leaderboard-style discovery. | Sales intelligence teams call role/companies to get for a given role/title, list every company that reports compensation data for it on Levels.fy…. | role, limit |
| submissions | Paginated individual salary submissions for a company + role — the raw anonymized datapoints behind the averages: level, focus, years of experience, location, base / stock / bonus / total comp and offer date. 50 per page; page with `page`. | Recruiting teams call submissions to get paginated individual salary submissions for a company + role. | company, role, location, page |
Call company/salaries from your stack
curl -X POST https://api.reefapi.com/levels-fyi/v1/company/salaries \
-H "x-api-key: $REEF_KEY" \
-H "content-type: application/json" \
-d '{"company":"google","role":"software-engineer"}'import requests
r = requests.post(
"https://api.reefapi.com/levels-fyi/v1/company/salaries",
headers={"x-api-key": REEF_KEY},
json={
"company": "google",
"role": "software-engineer"
},
)
print(r.json()["data"])const res = await fetch("https://api.reefapi.com/levels-fyi/v1/company/salaries", {
method: "POST",
headers: {
"x-api-key": process.env.REEF_KEY,
"content-type": "application/json",
},
body: JSON.stringify({
"company": "google",
"role": "software-engineer"
}),
});
const { ok, data, meta, error } = await res.json();Ask your MCP-connected assistant: call reefapi.levels-fyi.company/salaries with {"company":"google","role":"software-engineer"}.Who uses this API and why
- Recruiting tools call company/salaries to benchmark an offer against a company's real pay bands.
- Career products use role/companies to show which companies pay most for a given role.
- Comp teams use the percentiles to calibrate salary ranges by level and location.
Questions developers ask before integrating
What is the Levels.fyi API API?
Levels.fyi API API is a ReefAPI endpoint group for levels.fyi api It returns live JSON through POST requests under /levels-fyi/v1.
Is the Levels.fyi API API free to try?
Yes. ReefAPI starts with 1,000 free credits, no card required. Levels.fyi API calls use the same shared credit balance as every other ReefAPI engine.
Do I need a Levels.fyi API login or account?
No login to Levels.fyi API is needed for the API response. You call ReefAPI with your x-api-key header, and the playground can run live examples before you create a production key.
How fresh is the Levels.fyi API data?
The page example is captured from a live company/salaries call, and production requests fetch live data through ReefAPI rather than a static sample.
How many credits does the Levels.fyi API API use?
Levels.fyi API actions currently cost 1 credit per successful call. Failed or blocked calls are free, and all APIs draw from one credit pool.
Can I call Levels.fyi API from an AI assistant or MCP client?
Yes. Connect ReefAPI once through MCP and your assistant can call levels-fyi actions with the same key, credit pool and JSON envelope used by normal REST requests.
Is the Levels.fyi API API a Levels.fyi API scraper?
It is the managed alternative to a DIY Levels.fyi API scraper. Instead of building and maintaining your own scraper — proxies, headless browsers, captcha and constant breakage — you call one ReefAPI endpoint and get the same levels.fyi api back as clean JSON.
Why does my Levels.fyi API scraper keep getting blocked?
Most Levels.fyi API scrapers break on anti-bot defenses, rate limits and IP bans that need rotating residential proxies and browser fingerprinting to clear. ReefAPI handles all of that for you — no proxies, no captchas, no maintenance — and returns live JSON. Blocked or failed calls are free.