Jobs & Hiring

Levels.fyi API API

The Levels.fyi API returns tech salary and compensation data as clean JSON.

5 actionsLive JSON1,000 free creditsMCP-ready
Get a free keyOpen in playground

🤖 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.

Live example

Real request and response JSON

Captured from the indexed primary action, company/salaries, on .

Captured request
{
  "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"
  }
}
Captured response
{
  "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
  }
}
Actions

What the Levels.fyi API API does

ActionDescriptionConcrete use caseKey params
company/salariesThe 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/rolesResolve 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/searchFind 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/companiesFor 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
submissionsPaginated 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
Code samples

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"}'
MCP one-liner
Ask your MCP-connected assistant: call reefapi.levels-fyi.company/salaries with {"company":"google","role":"software-engineer"}.
Use cases

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.
FAQ

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.

docs / levels-fyi

Levels.fyi API

Levels.fyi API

base /levels-fyi/v15 endpoints
post/levels-fyi/v1/company/salaries1 credit

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.

ParameterAllowed / rangeDescription
companyrequiredCompany name or Levels.fyi slug ('google', 'Goldman Sachs', 'stripe', 'nvidia'). A name is auto-slugified; if you already have the slug from company/search, pass it directly.
rolerequiredJob family / role ('software-engineer', 'product-manager', 'data-scientist', 'hardware-engineer'). Use company/roles to list the exact roles a company reports.
locationoptionalOptional metro/location slug to scope comp to one area ('new-york-city-area', 'seattle-area', 'bay-area'). Omit for the company-wide (United States) figures.
Try in playground →
post/levels-fyi/v1/company/roles1 credit

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.

ParameterAllowed / rangeDescription
companyrequiredCompany name or Levels.fyi slug ('google', 'Goldman Sachs', 'stripe', 'nvidia'). A name is auto-slugified; if you already have the slug from company/search, pass it directly.
Try in playground →
post/levels-fyi/v1/company/search1 credit

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.

ParameterAllowed / rangeDescription
queryrequiredCompany name (or part of it) to search for.
limit = 20optional1–100Max companies to return (1–100).
Try in playground →
post/levels-fyi/v1/role/companies1 credit

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.

ParameterAllowed / rangeDescription
rolerequiredRole / job-family slug ('software-engineer', 'product-manager', 'data-scientist').
limit = 200optional1–2000Max companies to return (1–2000).
Try in playground →
post/levels-fyi/v1/submissions1 credit

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`.

ParameterAllowed / rangeDescription
companyrequiredCompany name or Levels.fyi slug ('google', 'Goldman Sachs', 'stripe', 'nvidia'). A name is auto-slugified; if you already have the slug from company/search, pass it directly.
rolerequiredJob family / role ('software-engineer', 'product-manager', 'data-scientist', 'hardware-engineer'). Use company/roles to list the exact roles a company reports.
locationoptionalOptional metro/location slug to scope comp to one area ('new-york-city-area', 'seattle-area', 'bay-area'). Omit for the company-wide (United States) figures.
page = 1optional1–200Submission page (50 per page). Page until meta.total_pages.
Try in playground →