Roundup
October 2026 · 12 min read
Glassdoor API: Is There One? 3 Alternatives for Reviews and Salaries
Glassdoor company data, reviews and salaries as JSON, without running a scraper. We ran the same company through 3 alternatives live and worked out what 1,000 reviews cost on each one.
Adam Ben-Ayoun
CTO, OpenWeb Ninja
Glassdoor API · Company Reviews · Salaries · API Comparison

Does Glassdoor Have an API?
Not directly. Glassdoor's help article "Glassdoor API" says it "no longer supports API partnerships", and a request to the old api.glassdoor.com endpoint returned HTTP 410 (Gone) on 8 October 2026. Glassdoor data is available through third-party APIs and scraper services, and the three below are the ones we ran live.
Quick Answer: Best Glassdoor API Alternatives at a Glance
Tested and priced 8 October 2026. "Per 1,000 reviews" assumes one review per record, and for OpenWeb Ninja 10 reviews per request, which we checked against the usage meter.
| Option | Best for | Glassdoor data | Per 1,000 reviews | Free tier | Our live run (Stripe) |
|---|---|---|---|---|---|
| OpenWeb Ninja | One key for company, reviews, interviews, salaries and jobs | Company, reviews, interviews, salaries, jobs | $0.25 Pro, $0.50 pay-as-you-go | 100 requests/mo | 5 of 5 endpoints, 0.6 to 1.5 s |
| Bright Data | Bulk records from lists of Glassdoor URLs | Companies, reviews, job listings | $1.50 pay-as-you-go, $1.30 on Scale | 5,000 credits/mo | Company: 1 record in 63 s. Reviews: 0 records, twice |
| Apify (johnvc) | Pay per review, capped per company | Reviews | $4.01 ($0.004 per review) | $5 usage/mo | 0 reviews after 4 min 20 s |
We build option #1, so read its row with that in mind. It leads the list because it was the only option that returned every data type in our run.
The Official Route: Why Glassdoor Has No Open API
Three checks on 8 October 2026:
- Help center: the "Glassdoor API" article reads, in Google's result for it, "Glassdoor no longer supports API partnerships. Please visit our Research page for specific questions about labor economics or Glassdoor's data." The article itself is rendered by JavaScript, so we read it through the search snippet.
- Legacy endpoint: a request to
api.glassdoor.com/api/api.htmreturned HTTP 410. - Research: Glassdoor Economic Research publishes labor-market analysis. It is reading material, not a feed of reviews or salaries.
Google's AI Overview for "glassdoor api" says the same and points to third-party scraper services, which is where the options below come in.
How We Evaluated
- One company: Stripe, Glassdoor company ID 671932, so every option answers the same question.
- Live calls, 8 October 2026: OpenWeb Ninja three runs per endpoint (median time). Bright Data and Apify one or two runs each, because they are slow and billed per record.
- Pricing: every number was read from the provider's own pricing page or API listing on 8 October 2026. Monthly billing unless stated.
- Docs vs observations: prices and coverage come from each provider's own pages. Times and values come from our calls. Where we did not run something, the table says "Not tested".
- Scope: one US company, in English. It is a smoke test, not a benchmark.
- Order: by how much Glassdoor data each option returned in our run, then cost. We kept it to three options we could run ourselves.
We build one of these APIs, so read the OpenWeb Ninja section with that in mind. The other sections are as flattering as the published numbers allow.
Same Company, Two Sources: Stripe on OpenWeb Ninja and Bright Data
Values for Stripe (Glassdoor company ID 671932), as returned by each source on 8 October 2026.
| Field | OpenWeb Ninja | Bright Data |
|---|---|---|
| Overall rating | 3.8 | 3.8 |
| Review count | 1,601 | 1,452 |
| Salary count | about 4,680 | 0 |
| Jobs count | 8 (company search), 1 (company-jobs) | 0 |
| Time | 0.6 s | 63 s |
The ratings agree, and so do Stripe's founding year (2010), size band (1,001 to 5,000 employees) and headquarters (San Francisco). The counts do not, and we did not find out why. Two things to take from it: pick the field you care about and compare it with Glassdoor's own page before you build on it, and treat count fields as approximate. In our own API, the job count in company search (8) did not match the single job that company-jobs returned (1).
OpenWeb Ninja Real-Time Glassdoor Data
this siteBest for: company profile, reviews, interviews, salaries and jobs behind one key and one company ID
The Real-Time Glassdoor Data API is a GET API with seven endpoints we ran: company-search, company-overview, company-reviews, company-interviews, company-salaries, company-jobs and job-search. All seven returned data for Stripe. The script below chains search, reviews and salaries.
1. Search a company, pull reviews, then a salary benchmark
# openwebninja_glassdoor.py
import requests
headers = {"x-api-key": "YOUR_API_KEY"}
base = "https://api.openwebninja.com/realtime-glassdoor-data"
company = requests.get(
f"{base}/company-search",
headers=headers,
params={"query": "Stripe", "limit": 1},
).json()["data"][0]
print(company["company_id"], company["name"], company["rating"], company["review_count"], company["salary_count"])
reviews = requests.get(
f"{base}/company-reviews",
headers=headers,
params={"company_id": company["company_id"]},
).json()["data"]
print(len(reviews["reviews"]), reviews["page_count"], reviews["reviews"][0]["rating"], reviews["reviews"][0]["job_title"])
pay = requests.get(
f"{base}/company-salaries",
headers=headers,
params={"company_id": company["company_id"], "job_title": "software engineer"},
).json()["data"]
print(pay["job_title"], pay["median_salary"], pay["median_base_salary"], pay["salary_count"], pay["confidence"])Output of that script
# output
671932 Stripe 3.8 1601 4682 10 155 5 Sales Development Representative (SDR) Software Engineer 296384.51 184074.54 784 CONFIDENT
Response: company search (trimmed)
{ "status": "OK", "data": [ { "company_id": 671932, "name": "Stripe", "rating": 3.8, "review_count": 1601, "salary_count": 4682, "job_count": 8, "headquarters_location": "San Francisco, CA", "company_size": "1001 to 5000 Employees", "industry": "Internet & Web Services", "career_opportunities_rating": 3.6, "work_life_balance_rating": 3.3, ... more fields } ] }
Response: reviews (trimmed)
{ "status": "OK", "data": { "reviews": [ { "review_id": 104411194, "summary": "Great pay and benefits, but complex product suite", "rating": 5, "job_title": "Sales Development Representative (SDR)", "review_datetime": "2026-06-16T08:54:11.687Z", "employment_status": "REGULAR", "is_current_employee": true, "location": "Chicago, IL", ... pros, cons, 7 category ratings, more fields }, ... 9 more reviews ], "page_count": 155, "rating": 3.8, "review_count": 1601, "filtered_review_count": 1548 } }
Response: salaries (trimmed)
{ "status": "OK", "data": { "location": "United States", "job_title": "Software Engineer", "company_id": 671932, "company_name": "Stripe", "min_salary": 242837.71, "max_salary": 370867.75, "median_salary": 296384.51, "median_base_salary": 184074.54, "median_additional_pay": 112309.97, "salary_period": "YEAR", "salary_currency": "USD", "confidence": "CONFIDENT", "salary_count": 784 } }
Pricing: free 100 requests a month; Pro $25 for 10,000 requests ($2.50 per 1,000 requests); Ultra $75 for 50,000; Mega $150 for 200,000; pay-as-you-go $0.005 per request. A reviews request returns 10 reviews and used one request on our usage meter, so 1,000 reviews is about 100 requests: roughly $0.25 on Pro.
Median of three runs: company search 0.6 s, overview 0.6 s, interviews 0.6 s, salaries 0.9 s, jobs 0.8 s, reviews 1.5 s. The slowest single call was 3.7 s. Repeat calls for the same company may be served faster than a first call, so treat these as best-case.
Pros
- +All five Glassdoor data types on one key, one ID
- +Lowest cost per 1,000 reviews in this comparison
- +Salaries by job title with min, median and max, base and additional pay
Cons
- -Reviews come 10 per request
- -Count fields are approximate and can differ between endpoints
Salaries needs a job_title, and returned a 400 error without one. Building an agent? See the MCP server post.
Bright Data Glassdoor Scraper
URL in, records outBest for: bulk records from lists of Glassdoor URLs, delivered as JSON or to cloud storage
Bright Data's Glassdoor scraper has three products on its page: company overview, reviews and job listings. Each takes Glassdoor URLs, up to 5,000 per call. Pricing from the page: $1.50 per 1,000 records pay-as-you-go, or $499 a month for 384,000 records with $1.30 per 1,000 beyond that. The free tier is 5,000 credits a month.
# brightdata_glassdoor_company.sh
curl -X POST "https://api.brightdata.com/datasets/v3/scrape?dataset_id=gd_l7j0bx501ockwldaqf&format=json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '[{"url": "https://www.glassdoor.com/Overview/Working-at-Stripe-EI_IE671932.11,17.htm"}]'Response after 60 s: still running
{ "snapshot_id": "sd_muz5hccp7tl9w74dc", "message": "Your request is still in progress and cannot be retrieved in this call. ..." }
The synchronous call returned after 60 seconds with a snapshot ID, so we polled the progress endpoint and downloaded the snapshot. The company record was ready after a collection time of 63 s.
Snapshot (trimmed)
[ { "id": "671932", "company": "Stripe", "ratings_overall": 3.8, "details_size": "1001 to 5000 Employees", "details_founded": 2010, "details_headquarters": "San Francisco, CA", "details_industry": "Internet & Web Services", "ratings_work_life_balance": 3.3, "reviews_count": 1452, "salaries_count": 0, "interviews_count": 0, "jobs_count": 0, ... more fields } ]
Reviews are a different dataset and need a days field (the call returned a validation error without it).
# brightdata_glassdoor_reviews.sh
curl -X POST "https://api.brightdata.com/datasets/v3/scrape?dataset_id=gd_l7j1po0921hbu0ri1z&format=json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '[{"url": "https://www.glassdoor.com/Reviews/Stripe-Reviews-E671932.htm", "days": 365}]'With days set to 30 the snapshot came back after 170 s with no records, and with 365 after 126 s, also with no records. Bright Data's message was "No records found. The data may not be available or has changed." We ran each once, so this may be a bad moment rather than a pattern.
Pros
- +Large batches: up to 5,000 URLs per call
- +Delivery to S3, Azure, Snowflake and other storage
- +Free tier of 5,000 credits a month
Cons
- -About a minute for a company record in our run
- -Company, reviews and job listings products, without salaries or interviews
- -The reviews dataset returned no records in our two runs
Apify Glassdoor Reviews API
Apify ActorBest for: paying per review, with a cap per company, when you already use Apify
An Actor in the Apify Store published by the user johnvc. It takes Glassdoor company URLs (up to 100 per run) and returns one row per review with category ratings, pros, cons, employment details and the review URL. Pricing is pay-per-event: $0.004 per review, plus $0.00001 per result row, so about $4.01 per 1,000 reviews. The page shows "from $3.88 / 1,000". The Free plan includes $5 of usage a month, and the Actor's log showed a free-usage cap of $1.00 for this Actor.
# apify_glassdoor_reviews.sh
curl -X POST "https://api.apify.com/v2/acts/johnvc~glassdoor-reviews-api/run-sync-get-dataset-items?timeout=240&format=json" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-d '{"companyUrls": ["https://www.glassdoor.com/Reviews/Stripe-Reviews-E671932.htm"], "maxReviewsPerCompany": 10}'The synchronous call timed out at 240 seconds with no data. We started it again as an asynchronous run. It finished in 4 minutes 20 seconds with status SUCCEEDED and an empty dataset: []. The Actor's status message had said "Glassdoor is slow; this can take a while." The run cost $0.00001, so a run that returns nothing costs almost nothing, but it also gave us no reviews. We ran it twice, for Stripe only, so treat it as one data point.
Pros
- +Pay per review, with a cap per company
- +Reviews include category ratings and employment details
- +Free plan with $5 of usage a month
Cons
- -Reviews only: no salaries, interviews or jobs
- -No reviews returned in our two runs, at 4 minutes or more per run
- -Highest cost per 1,000 reviews here
Glassdoor Data Pricing: Cost per 1,000 Reviews, Tiers and Free Limits
Read from each provider's own page or API listing on 8 October 2026. OpenWeb Ninja returns 10 reviews per request, so 1,000 reviews is 100 requests.
| Option | Tier | Price | Per 1,000 reviews |
|---|---|---|---|
| OpenWeb Ninja | Free | $0, 100 requests/mo, hard limit | $0 (about 1,000 reviews) |
| Pro | $25/mo, 10,000 requests | $0.25 | |
| Ultra | $75/mo, 50,000 requests | $0.15 | |
| Mega | $150/mo, 200,000 requests | $0.075 | |
| Pay As You Go | $0.005 per request, no monthly fee | $0.50 | |
| Bright Data | Free | 5,000 credits/mo | $0 (up to 5,000 records) |
| Pay as you go | $1.50 per 1,000 records | $1.50 | |
| Scale | $499/mo, 384,000 records, then $1.30 per 1,000 | $1.30 | |
| Apify (johnvc) | Free plan | $0.004 per review, $5 usage/mo included | $4.01 |
| Bronze and Silver | $0.00396 and $0.00392 per review | $3.97 and $3.93 | |
| Gold and above | $0.003881 per review | $3.89 |
Apify adds $0.00001 per result row (included in the per-1,000 figures) and lists the Actor as "from $3.88 / 1,000". Its run log showed a free-usage cap of $1.00 for this Actor on a free account.
Per-page pricing (OpenWeb Ninja) is cheapest when you pull many reviews for the same company. Per-record pricing (Bright Data, Apify) is simpler to forecast, because one review is one billed record.
Measured Response Time (One Company, Stripe)
OpenWeb Ninja: median of three runs per endpoint. Bright Data and Apify: one or two runs each. Small sample, rough ordering.
| Option and call | Time | Result |
|---|---|---|
| OpenWeb Ninja company search, overview, interviews | 0.6 s | Data returned |
| OpenWeb Ninja jobs, salaries | 0.8 to 0.9 s | Data returned |
| OpenWeb Ninja reviews (10 per page) | 1.5 s | 10 reviews |
| Bright Data company overview | 63 s | 1 record |
| Bright Data reviews (30 and 365 days) | 170 s and 126 s | 0 records |
| Apify reviews Actor (10 reviews requested) | 4 min 20 s | 0 reviews |
The slowest single OpenWeb Ninja call was 3.7 s. Repeat calls for the same company may be served faster than a first call, so treat OpenWeb Ninja times as best-case.
How to Choose: 3 Common Scenarios
Employer research: reviews, salaries and interview questions for a company
You look up a company, then pull its reviews, a salary benchmark for one job title and recent interview reports, ideally in one script and one billing unit.
Best choice: OpenWeb Ninja. Search, reviews, salaries, interviews and jobs share one key and one company ID, and the free plan is 100 requests a month.
Bulk company records from a list of Glassdoor URLs
You already have the URLs and want records delivered to storage, with no per-company lookup step.
Best choice: Bright Data. Up to 5,000 URLs per call and delivery to S3, Azure and Snowflake. Expect about a minute per company record.
Reviews only, with a hard cap per company
You already run Apify jobs and want only reviews, with a maximum number per company so cost stays predictable.
Best choice: Apify. The Actor takes up to 100 company URLs per run and a maxReviewsPerCompany cap. It returned no reviews in our runs.
Sources
Prices and docs read on 8 October 2026. They change; check before you commit.
- OpenWeb Ninja: API page and pricing
- Bright Data: Glassdoor scraper
- Apify: Glassdoor Reviews API, pricing
- Glassdoor: help article
More on jobs data: Best Job Posting APIs in 2026, job postings as a buying signal, and the recruiting and job intelligence and reputation monitoring use cases. For the same question about another site, see Zillow API alternatives.
FAQ
Does Glassdoor have an API?
Is there a free Glassdoor API?
How can I extract data from Glassdoor?
Is there a Glassdoor jobs API?
How much does Glassdoor data cost per 1,000 reviews?

Written by
Adam Ben-Ayoun
CTO at OpenWeb Ninja
Adam leads engineering at OpenWeb Ninja, building the APIs and infrastructure that make public web data accessible to developers and AI agents.
Connect on LinkedInOne key. 50+ APIs. Start free.
100 free requests a month, no credit card. Glassdoor company data, reviews, salaries and jobs, plus Google Search, Maps, Amazon and 50+ other APIs on the same key.