Get reported pay by role
Return the roles with the most reported salaries at one company, each with base pay and total pay — base plus bonus, stock and other additional pay — at the 10th, 25th, 50th, 75th and 90th percentiles, the number of salaries behind those figures, the ISO currency code they are in, and when the newest was reported. This endpoint reads the first page of the company's salaries listing and nothing beyond it: there is no pages parameter and no cursor, because the upstream listing is not routed past page one. limit trims what comes back from that page rather than walking further, so treat the result as the most-reported roles at the company, not every role.
/company-salaries Salaries https://api.fetchlayer.dev/glassdoor/company-salaries Headers
Authorization string required Bearer token — your FetchLayer API key.
Parameters
company string required Glassdoor company id, or any Glassdoor URL containing one. Use /search-companies to turn a name into an id.
limit number optional Maximum roles returned from the first page (max 200), or -1 for everything on it. (default: 30)
Response Fields
company-salaries
Get reported pay by role
employerId string The company this pay belongs to.
companyName string | null Company name as published.
roles object[] The most-reported roles on the first page of the salaries listing.
roles[].jobTitle string | null Role as Glassdoor normalises it.
roles[].salaryCount number | null Salaries reported for this role — the sample size behind the percentiles.
roles[].currency string | null ISO currency code the figures are in. Not every role at a company reports in the same currency.
roles[].basePay object Base salary only, at p10, p25, p50, p75 and p90.
roles[].totalPay object Base plus bonus, stock and other additional pay, at the same five percentiles.
roles[].mostRecentAt string | null When the newest of these salaries was reported — how stale the benchmark is.
roleCount number Number of roles in this response.
requestedUrl string The Glassdoor page this result corresponds to.
scrapedAt string When the page was collected, as an ISO 8601 timestamp.
notes string[] Plain-language caveats about this particular result — a walk that stopped short, a listing with more pages, an upstream limit that was hit. Read it: a well-formed response can still be incomplete, and this is where that is said.
blocked boolean Always false on a successful response.
Request
curl -X POST "https://api.fetchlayer.dev/glassdoor/company-salaries" \
-H "Authorization: Bearer ss-your-key" \
-H "Content-Type: application/json" \
-d '{"company":"671954","limit":25}'Response
{
"employerId": "671954",
"companyName": "Stripe",
"roleCount": 25,
"roles": [
{
"jobTitle": "Software Engineer",
"salaryCount": 412,
"currency": "USD",
"basePay": {
"p10": 148000,
"p25": 168000,
"p50": 192000,
"p75": 221000,
"p90": 254000
},
"totalPay": {
"p10": 182000,
"p25": 214000,
"p50": 253000,
"p75": 301000,
"p90": 358000
},
"mostRecentAt": "2026-08-28"
}
],
"notes": [
"Salaries are read from the first page of the listing only; roles beyond it are not reachable."
]
}