Levels.fyi API: what you get, how access works, and what it cannot answer
For years the official answer was no API, just embeds. That changed: Levels.fyi now sells a REST API, an MCP server and a CLI - behind a sales form, with no public pricing and no self-serve key. Here is what the official offering covers, what the free embeds and the scraper actors actually give you, and the market-wide question self-reported compensation data structurally cannot answer, with live advertised-pay numbers for contrast.
Dvir Atias
Founder, JobsPipe
When someone asked in the Levels.fyi community forum whether the site has a public API, the founder’s answer was as short as it gets: “No API, but we have some embeds.” That answer is now out of date. Levels.fyi today sells official programmatic access - a REST API, an MCP server for AI agents, and a CLI - from a dedicated api-access page. What it does not sell is a self-serve key: access starts with a form about your team and ends with a sales conversation, and there is no public pricing, no rate-limit table, and no endpoint reference you can read before that call.
So “is there a Levels.fyi API” has four honest answers in 2026: an official enterprise API you negotiate for, free chart embeds anyone can drop into a page, third-party scraper actors of varying legitimacy, and - for a large class of use cases people bring to Levels.fyi - a different data class entirely. This post walks through all four.
The official API, MCP server and CLI
The api-access page pitches “granular, real-time salary + leveling data + peer insights”, in three consumption shapes: a REST API for programmatic access, an MCP server aimed at AI agents and LLM tooling, and a command-line tool. The advertised coverage is salary distributions for 85+ companies - FAANG, large tech, financial institutions, startups - across five job families: Software Engineer, Product Manager, Product Designer, Data Scientist and Software Engineering Manager, plus leveling-structure comparisons across companies. The data is described as validated and verified through automated and human checks, which is the same verification pipeline behind the public site.
Access is contact-sales: the form asks for organization size, use case and whether you want API, MCP or CLI access. Nothing on the page states a price, a quota or a plan name. If your budget process needs a number before a call, you will not get one here. The MCP option is worth noting all the same - compensation data is exactly the kind of narrow, authoritative dataset that works well as an agent tool, and if the pattern is new to you, our guide to building an MCP server shows what such a server looks like from the inside.
The free path: embeds
What Levels.fyi gives away is charts, not data. The embed endpoint takes URL parameters and returns a rendered widget - for example charts_embed.html?company=Google - which you can put in an iframe on any page. If your need is “show readers what Google pays by level”, this is the sanctioned free route. What it is not is data access: nothing machine-readable comes back, so there is nothing to join, filter or aggregate on your side.
The scraper route, honestly
Search for “levels.fyi api” and most of what ranks is not Levels.fyi: it is scraper marketplaces. Several Apify actors and at least one managed wrapper resell programmatic extraction of the public salary pages - compensation rows by company, level and location, with base, stock and bonus split out. They work until the site’s markup changes, they bill per result, and they sit in the usual terms-of-service gray zone of scraping someone else’s database. The deeper problem is what you receive: self-reported figures stripped of the verification context that makes Levels.fyi credible on its own site. For one-off desk research, browsing the site is free and better. For production, either license the official API or ask whether you actually need a different kind of salary data - which is the next section.
What Levels.fyi data is, and the question it cannot answer
Salary data comes in three distinct classes, and they answer different questions. Survey data (BLS OEWS, compensation vendors) measures what people are paid - authoritative, aggregate, a year behind. Self-reported data is what individuals volunteer, and Levels.fyi is the best of that class for tech: verified submissions, equity included, leveling mapped across companies. Advertised data is what employers publish in postings - the freshest signal, limited to postings that state pay. Our salary datasets guide compares all three in depth.
Self-reported depth has a shape: it concentrates where reporting concentrates. The official offering’s 85+ companies are the companies engineers talk about, and for them the distributions are genuinely excellent. But the question a recruiting product, a market analyst or a sourcing tool usually brings - “what are employers offering right now for this role, this skill, this city, across the whole market” - is one no self-reported dataset can answer, because nobody submits a comp packet for the 152,000th company. That question belongs to advertised data.
The advertised-pay side, with live numbers
Pay transparency laws turned job postings into a salary dataset. Of the 2.3 million active postings in the JobsPipe index today, 654,263 - 28.1% - state pay that we parse into structured fields, across 152,273 distinct companies. Against the official API’s 85+ companies, that is the breadth-for-depth trade in one line. One query gets you every active US software developer posting with an advertised range:
curl https://api.jobspipe.dev/v1/jobs/search \
-H "Authorization: Bearer jp_live_your_key_here" \
-H "Content-Type: application/json" \
-d '{
"occupation_code_or": ["2512"],
"job_country_code_or": ["US"],
"limit": 50
}'Each job carries the raw salary_string plus parsed salary_currency, min_annual_salary_usd, max_annual_salary_usd and avg_annual_salary_usd, normalized to annual USD. Right now 26,997 active US software developer postings state a full range, and the median advertised band runs $130,000 to $187,852. Filter by skills_or to price a skill, company_name_or to see what one employer advertises, or job_location_or to cut by city. The free tier is 1,000 jobs a month, no card required. For how to evaluate any salary feed before building on it, see the salary data API guide; for the other big self-reported source and its API story, the Glassdoor API guide is the companion read.
Which one you actually need
- Negotiating an offer at a company engineers talk about. Levels.fyi, in the browser, free. Nothing else comes close on equity and leveling.
- Displaying big-tech comp charts on a page. The free embeds - sanctioned and zero-maintenance.
- Compensation distributions for named tech companies, programmatically. The official API, MCP or CLI, if the sales conversation prices into your budget.
- Market-wide pay by role, skill or city, fresh this week. Advertised data from live postings - the class built for products, analysts and agents.
Advertised pay from 650k+ live postings, parsed to annual USD - one API call away.
Get a free API key