Levels.fyi API
Levels.fyi API
/levels-fyi/v1/company/salaries1 creditThe 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.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| company | required | — | Company 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. |
| role | required | — | Job family / role ('software-engineer', 'product-manager', 'data-scientist', 'hardware-engineer'). Use company/roles to list the exact roles a company reports. |
| location | optional | — | Optional 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. |
/levels-fyi/v1/company/roles1 creditResolve 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.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| company | required | — | Company 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. |
/levels-fyi/v1/company/search1 creditFind 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.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| query | required | — | Company name (or part of it) to search for. |
| limit = 20 | optional | 1–100 | Max companies to return (1–100). |
/levels-fyi/v1/role/companies1 creditFor 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.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| role | required | — | Role / job-family slug ('software-engineer', 'product-manager', 'data-scientist'). |
| limit = 200 | optional | 1–2000 | Max companies to return (1–2000). |
/levels-fyi/v1/submissions1 creditPaginated 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`.
| Parameter | Allowed / range | Description | |
|---|---|---|---|
| company | required | — | Company 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. |
| role | required | — | Job family / role ('software-engineer', 'product-manager', 'data-scientist', 'hardware-engineer'). Use company/roles to list the exact roles a company reports. |
| location | optional | — | Optional 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 = 1 | optional | 1–200 | Submission page (50 per page). Page until meta.total_pages. |
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"}'{
"ok": true,
"data": { /* the result */ },
"meta": {
"latency_ms": 240,
"record_count": 12,
"completeness_pct": 100
},
"error": null
}