[Home](https://scrapfly.io/)/[Scrapers](https://scrapfly.io/scrapers)/Glassdoor

Reviews · salaries · job listings · interviews

# // Glassdoor Scraper API

Get Glassdoor company ratings, employee reviews, salaries by job title, job listings and interview reports as clean JSON. Scrapfly handles the bot checks, so you send a URL and read the data.

- **Clone it and run it.** An open-source Glassdoor scraper for reviews, salaries, job listings and company search, tested against live Glassdoor every night.
- **Ratings, CEO approval and category scores in one request.** Read the review summary Glassdoor embeds in each company's reviews page: overall rating, recommend-to-friend share, CEO approval, business outlook and category ratings.
 
 [Get free API key](https://scrapfly.io/register) [View GitHub scraper](https://github.com/scrapfly/scrapfly-scrapers/tree/main/glassdoor-scraper) [Read Unblocker docs](https://scrapfly.io/docs/scrape-api/unblocker) 

1,000 free credits. No credit card required.

 [  ](https://scrapeway.com/web-scraping-api/scrapfly) [  ](https://www.capterra.com/p/212653/Scrapfly/)  

 4.9/5 from 238 reviews 

 



 

 

 Glassdoor pages · illustration

 

 

 Company ratings JSON**Output**

```
{
  <span class="c-str">"reviews"</span>: <span class="c-num">5739</span>,
  <span class="c-str">"overall_rating"</span>: <span class="c-num">4</span>,
  <span class="c-str">"recommend_to_friend"</span>: <span class="c-num">0.75</span>,
  <span class="c-str">"ceo"</span>: <span class="c-str">"Jamie Iannone"</span>,
  <span class="c-str">"ceo_approval"</span>: <span class="c-num">0.81</span>,
  <span class="c-str">"business_outlook"</span>: <span class="c-num">0.67</span>,
  <span class="c-str">"culture_and_values"</span>: <span class="c-num">4.1</span>,
  <span class="c-str">"work_life_balance"</span>: <span class="c-num">4</span>,
  <span class="c-str">"compensation_benefits"</span>: <span class="c-num">4.1</span>,
  <span class="c-str">"career_opportunities"</span>: <span class="c-num">3.7</span>,
  <span class="c-str">"senior_management"</span>: <span class="c-num">3.6</span>
}
```

Printed by the Python request below[See the request ↓](#implementation)

  

What you can scrape from Glassdoor

Four kinds of Glassdoor data you can scrape with Scrapfly, no Glassdoor account required.

 ## // Scrape Glassdoor reviews and ratings

A company's overall rating, recommend-to-friend share, CEO approval and business outlook, category ratings for culture, work-life balance, pay and benefits, career opportunities, senior management and diversity, and the count of each star rating. Each review carries its headline, pros, cons, advice to management, star ratings, job title, location, employment status and date.

- overallRating
- ceoRating
- recommendToFriendRating
- ratingCountDistribution
- summary
- pros
- cons
- advice
- ratingOverall
- jobTitle
- reviewDateTime

  ## // Scrape Glassdoor salaries

Pay by job title for a company: base pay and total pay at the 10th, 25th, 50th, 75th and 90th percentile, the number of salaries submitted and the date of the latest one, plus the company's salary and job title counts. Each page lists ten job titles; add `_P2` before `.htm` for the next page.

- jobTitle
- basePayStatistics
- totalPayStatistics
- percentiles
- salaryCount
- mostRecent
- jobTitleCount

  ## // Scrape Glassdoor job listings

Open jobs at a company, or from a keyword and location search: job title, location, pay range and its source, job age and listing URL, with the employer name and rating on search results. Each job page adds the full description, posting date, location with coordinates, salary range and requirements.

- jobTitleText
- locationName
- payPeriodAdjustedPay
- salarySource
- ageInDays
- seoJobLink
- totalJobsCount
- JobPosting

  ## // Scrape Glassdoor interviews and company profiles

Interview reports with job title, location, difficulty, experience, outcome and the process description, plus company totals for interview difficulty, experience, how candidates applied and average hiring time. Company profiles add headquarters, size, founding year, revenue, industry and website, plus awards where the company lists them.

- difficulty
- experience
- outcome
- processDescription
- totalInterviewCount
- interviewDifficultyScore
- headquarters
- yearFounded
- revenue

  



Reliability

## // Get past Glassdoor's "Security" page

Glassdoor runs Cloudflare in front of its company, salary and job pages. A plain request can get HTTP 403 and a "Humans only" security page instead of the data. Use Unblocker (formerly ASP) with residential proxies to fetch reviews, salary, job and interview pages.

`unblocker=true`Enable Scrapfly's [Unblocker](https://scrapfly.io/products/unblocker) for Glassdoor's Cloudflare check.



`proxy_pool=residential`Send requests through residential proxies, with `country=US` for Glassdoor.com.



`self.__next_f`Ratings, salaries, jobs and interviews sit in the page's Next.js data stream. Check for that data before parsing, so a security page never reaches your dataset.



 



Choose your tools

## // Scrapfly products for Glassdoor scraping

Start with the Web Scraping API, Unblocker and residential proxies. Add an extraction model, screenshots, a browser session or a URL-list crawl as your workflow needs them. One API key covers all five products.

 ### Web Scraping API for Glassdoor

Fetch company, review, salary, job and interview URLs with Unblocker and residential proxies. The page data comes in the HTML, ready to parse.

Read the embedded data stream: reviews pages carry the ratings and review summary, salary pages the pay percentiles, and job pages the listing cards.

 

```
GET /scrape?url=https://www.glassdoor.com/Reviews/eBay-Reviews-E7853.htm&unblocker=true&proxy_pool=residential&country=US
```

 [Explore Web Scraping API →](https://scrapfly.io/products/web-scraping-api)  ### Data Extraction API for Glassdoor reviews and jobs

Add `extraction_model=review_list` to a reviews page for a standard review record, with no parser to write.

Get the average rating, total review count and each visible review's title, text, star rating, date and sentiment. On a job page, `extraction_model=job_posting` returns the title, company, location, salary range, posting date, requirements, skills and description.

 

```
GET /scrape?url=https://www.glassdoor.com/Reviews/eBay-Reviews-E7853.htm&unblocker=true&proxy_pool=residential&country=US&extraction_model=review_list
```

 [Explore Data Extraction API →](https://scrapfly.io/products/extraction-api)  ### Screenshot API for Glassdoor pages

Capture a company's reviews or salary page as a full-page image.

Keep a dated visual record of ratings and review counts alongside your JSON.

 

```
GET /screenshot?url=https://www.glassdoor.com/Reviews/eBay-Reviews-E7853.htm&country=us&capture=fullpage&format=png
```

 [Explore Screenshot API →](https://scrapfly.io/products/screenshot-api)  ### Cloud Browser API for Glassdoor sessions

Connect Playwright or Puppeteer to hosted Chromium when your workflow needs a browser session.

Open a company page, let it pass Glassdoor's Cloudflare check, and wait for the page content before you read it. Set the residential pool and US country on the connection URL.

 

```
chromium.connect_over_cdp("wss://browser.scrapfly.io?key=KEY&proxy_pool=residential&country=us")
```

 [Explore Cloud Browser API →](https://scrapfly.io/products/cloud-browser-api)  ### Crawler API for lists of Glassdoor URLs

Submit company reviews, salary and job URLs as one bounded job, with Unblocker and residential proxies applied to the requests.

Ask for HTML output and parse the embedded data stream after the job finishes.

- url\_list
- unblocker
- proxy\_pool
- country
- content\_formats

 [Explore Crawler API →](https://scrapfly.io/products/crawler-api)  



One request

## // Fetch a Glassdoor reviews page and read the company's ratings

The JSON at the top is what this code prints for eBay's reviews page: one request, then the ratings from the review summary Glassdoor embeds in the page.

Install `scrapfly-sdk` and replace the key below. The example uses only the SDK and Python's standard library.

**Prefer the full scraper?** The open-source [Glassdoor scraper on GitHub](https://github.com/scrapfly/scrapfly-scrapers/tree/main/glassdoor-scraper) covers reviews, salaries, job listings and company search in Python 3.10. It runs against live Glassdoor every night. Clone it, set `SCRAPFLY_KEY`, and run `poetry run python run.py`.

 

 Python · scrapfly-sdkscrape + parse

```
<span class="c-key">import</span> json
<span class="c-key">import</span> re
<span class="c-key">from</span> scrapfly <span class="c-key">import</span> ScrapeConfig, ScrapflyClient

client = ScrapflyClient(key=<span class="c-str">"YOUR_SCRAPFLY_KEY"</span>)
result = client.scrape(ScrapeConfig(
    <span class="c-str">"https://www.glassdoor.com/Reviews/eBay-Reviews-E7853.htm"</span>,
    unblocker=<span class="c-key">True</span>,
    proxy_pool=<span class="c-str">"residential"</span>, country=<span class="c-str">"US"</span>,
))
<span class="c-com"># Glassdoor streams page data in self.__next_f.push() calls</span>
pattern = <span class="c-str">r"self\.__next_f\.push\((\[.*?\])\)</script>"</span>
flight = <span class="c-str">""</span>
<span class="c-key">for</span> chunk <span class="c-key">in</span> re.findall(pattern, result.content, re.S):
    data = json.loads(chunk)
    <span class="c-key">if</span> len(data) > <span class="c-num">1</span>:
        flight += data[<span class="c-num">1</span>]
start = flight.find(<span class="c-str">'{"allReviewsCount":'</span>)
<span class="c-key">if</span> start == -<span class="c-num">1</span>:
    <span class="c-key">raise</span> RuntimeError(<span class="c-str">"Glassdoor returned no review data"</span>)
reviews, _ = json.JSONDecoder().raw_decode(flight, start)
r = reviews[<span class="c-str">"ratings"</span>]
summary = {
    <span class="c-str">"reviews"</span>: reviews[<span class="c-str">"filteredReviewsCount"</span>],
    <span class="c-str">"overall_rating"</span>: r[<span class="c-str">"overallRating"</span>],
    <span class="c-str">"recommend_to_friend"</span>: r[<span class="c-str">"recommendToFriendRating"</span>],
    <span class="c-str">"ceo"</span>: r[<span class="c-str">"ratedCeo"</span>][<span class="c-str">"name"</span>],
    <span class="c-str">"ceo_approval"</span>: r[<span class="c-str">"ceoRating"</span>],
    <span class="c-str">"business_outlook"</span>: r[<span class="c-str">"businessOutlookRating"</span>],
    <span class="c-str">"culture_and_values"</span>: r[<span class="c-str">"cultureAndValuesRating"</span>],
    <span class="c-str">"work_life_balance"</span>: r[<span class="c-str">"workLifeBalanceRating"</span>],
    <span class="c-str">"compensation_benefits"</span>: r[<span class="c-str">"compensationAndBenefitsRating"</span>],
    <span class="c-str">"career_opportunities"</span>: r[<span class="c-str">"careerOpportunitiesRating"</span>],
    <span class="c-str">"senior_management"</span>: r[<span class="c-str">"seniorManagementRating"</span>],
}
print(json.dumps(summary, indent=<span class="c-num">2</span>))
```

 

 



What the data is used for

## // Common Glassdoor scraping use cases

### Employer brand monitoring

Track a company's overall rating, CEO approval and recommend share over time.



### Compensation benchmarking

Compare base and total pay percentiles for the same job title across companies.



### Hiring signals

Count open jobs per company and location to see who is hiring and for which roles.



### Workforce sentiment research

Group review pros and cons by job title, location and date.



### Recruiting research

Read interview difficulty, outcomes and average hiring time before you apply or hire.



### Company data enrichment

Fill company records with headquarters, size, founding year, industry and ratings.



 



Common questions

## // Glassdoor scraping FAQ

 Is scraping Glassdoor legal?There is no universal answer. Legality depends on your jurisdiction, the data, the access method and how you use the result. Keep the workflow to pages you can open signed out, don't scrape signed-in content, treat reviewer details such as job title and location as personal data even when reviews are anonymous, review Glassdoor's terms of use, and get legal advice for commercial use.

 Does Glassdoor have a public API?Glassdoor doesn't offer a self-serve public API for reviews, salaries or jobs. These requests read public Glassdoor pages signed out, so you need a Scrapfly API key, not a Glassdoor account or API access.

 Why does Glassdoor return a "Security" page?That is Glassdoor's Cloudflare check. It answers with HTTP 403 and a "Humans only" page that asks you to enable JavaScript and cookies. Set `unblocker=true`, `proxy_pool=residential` and `country=US`. Check that the response contains the page's data stream before parsing it.

 Can I scrape Glassdoor reviews?Yes. A company's reviews page embeds its overall and category ratings, the recommend and CEO approval shares, star-rating counts and the latest reviews. To go past the first reviews, the open-source scraper reads Glassdoor's reviews API page by page, with the headline, pros, cons, advice, ratings, job title, location and date of each review.

 Can I scrape Glassdoor salaries?Yes. A company's salary page lists ten job titles per page, each with base and total pay percentiles, the number of salaries submitted and the latest submission date. Add `_P2` before `.htm` for the next page.

 Can I scrape Glassdoor job listings?Yes. A company's jobs page or a keyword and location search lists job cards with title, location, pay range and job age; search results add the employer name and rating. Open a job's page for the full description, posting date and requirements, or add `extraction_model=job_posting`.

 How much does scraping Glassdoor cost?A Glassdoor page with Unblocker and residential proxies costs 50 to 80 credits: 25 for the residential proxy, 25 to 50 for getting past the Cloudflare check, and 5 more when the page loads in a browser. Extraction models add credits based on the response size. Every account starts with 1,000 free credits.

 What are the rate limits when scraping Glassdoor?Scrapfly sets no Glassdoor-specific limit. Your maximum parallelism is the concurrency quota on your plan, or a lower cap configured for the project. Each in-flight request uses one slot until it finishes.

 



Start with one request

## Fetch the URL. Read the JSON.

Web Scraping API with Unblocker and residential proxies, one call per Glassdoor URL.

Proxies across 190+ countries

 [Glassdoor scraper on GitHub](https://github.com/scrapfly/scrapfly-scrapers/tree/main/glassdoor-scraper) [How to scrape Glassdoor](https://scrapfly.io/blog/posts/how-to-scrape-glassdoor) [All scraper pages](https://scrapfly.io/scrapers) 

 

 [Get free API key](https://scrapfly.io/register) [Read the docs](https://scrapfly.io/docs/scrape-api/unblocker)