Glassdoor Employer Data APIs
Resolve any employer name to its Glassdoor company ID, then pull full profiles, employee reviews, salary benchmarks, live job postings and interview reports β all as JSON behind one platform API key. An unofficial data service built from publicly available content.
Open the standalone employer demoYour first company search
Replace <API_KEY> with an authorized platform API key from your dashboard. The query URL contains your key; keep it out of shared links, screenshots and logs.
The example searches for the employer name google and returns a ranked list of matching companies. Each hit carries the company_id token (9079 for Google) that every other endpoint in this project accepts, plus rating, headquarters and logo. Rankings follow live data, so treat the response as a current sample rather than a fixed fixture.
Base URL https://api.opendata-api.com
curl -X GET 'https://api.opendata-api.com/api/project/glassdoor/company-search?key=<API_KEY>&query=google&limit=10'import requests
response = requests.request(
"GET",
"https://api.opendata-api.com/api/project/glassdoor/company-search",
params={
"key": "<API_KEY>",
"query": "google",
"limit": "10",
},
timeout=30,
)
response.raise_for_status()
print(response.json())const url = new URL("https://api.opendata-api.com/api/project/glassdoor/company-search");
url.search = new URLSearchParams({
"key": "<API_KEY>",
"query": "google",
"limit": "10",
}).toString();
const response = await fetch(url, {
method: "GET",
});
if (!response.ok) throw new Error(`HTTP ${response.status}`);
console.log(await response.json());Employer-data request basics
- Every company-scoped endpoint takes the numeric company_id that company-search returns per hit (9079 for Google). Run a name search once and cache the mapping; company-overview can also resolve an exact company name, but search is the reliable front door for ambiguous or partial names.
- Every endpoint accepts an optional domain parameter selecting a regional Glassdoor site (glassdoor.co.uk, glassdoor.de, glassdoor.com.hk and more; default glassdoor.com). Ratings, salaries and listings are localized per site, so pin the domain that matches your audience and keep it consistent across chained calls.
- company-reviews pages ten reviews at a time with the page parameter; combine query (keyword), language (a comma list such as en,es), employment_statuses, only_current_employees and four sort orders to cut a million-review employer down to a usable feed. The response reports filtered_review_count and page_count so crawlers can plan full sweeps.
- job-search paginates with an opaque cursor instead of page numbers: send the data.cursor value from one response back as the cursor parameter for the next page, and control page size with limit (1-100). This avoids drift as new postings arrive mid-crawl. company-jobs, company-reviews and company-interviews use numeric page instead.
- An unknown company ID is not an error: company-overview answers HTTP 200 with a successful business status and no data field. Treat a missing data key as the not-found signal, and re-resolve the name through company-search instead of retrying the same ID.
Read status before company fields
Check HTTP status separately from the gateway's code/message/data business status: code 200 indicates gateway business success, while HTTP 200 alone does not. Inside a successful envelope, a search with no matches returns an empty data array, and an unknown company ID on the overview endpoint comes back with no data field at all β treat a missing data key as the not-found signal, not an error.
Choose an employer-data workflow
- Find and profile companies
-
company-search turns a typed name into ranked hits that carry the company_id token every other endpoint needs; company-overview then expands one ID into the full profile with sub-ratings, CEO approval and activity counters. Resolve names through search instead of inventing IDs.
- Read employee reviews
-
company-reviews needs a company_id from company-search and returns structured pros, cons and per-category sub-ratings, ten per page. Keyword, language and employment-status filters plus four sort orders narrow the feed; filtered_review_count and page_count drive pagination math.
- Browse job listings
-
job-search runs a global keyword-and-location search with date-posted, remote and easy-apply filters and cursor pagination; company-jobs lists every current opening at one employer from a company_id, with job-function, location and freshness cuts.
- Benchmark salaries
-
company-salaries estimates min, median and max pay for one role at one employer (needs company_id and job_title); company-salaries-v2 pages through every reported role at that employer; salary-estimate returns a market range for any title and location with no company ID required.
- Study interview reports
-
company-interviews needs a company_id and returns candidate-reported processes, the real questions asked, difficulty and offer outcomes. Filter by role or offer status, sort by recency or difficulty, and page with page and page_size.
Companies
/api/project/glassdoor/company-search Search Companies by Name
Full docs βDetails
Resolve any employer name or keyword to its Glassdoor company record. Pass query (e.g. google) and receive data, a ranked array of matching employers. Each hit carries the company_id token used by every other endpoint in this project, plus name, rating, review_count, salary_count, job_count, headquarters_location, logo, company_size, industry, website and company_link. Set limit (1-100, default 10) to control how many hits come back. This is the front door of the dataset: run it once to resolve a name, then feed company_id into the overview, reviews, salaries, jobs and interviews endpoints. Verified live: a search for google returns Google (company_id 9079) first with a 4.4 rating and Mountain View headquarters.
Test this employer-data endpoint 1 required Β· 2 optional
| Parameter | In | Value |
|---|---|---|
| query | ||
| query |
Optional filters and page controls (1)
| Parameter | In | Value |
|---|---|---|
| query |
/api/project/glassdoor/company-overview Get Company Overview
Full docs βDetails
Full profile for one employer. Pass company_id (the numeric ID from company-search; an exact company name also resolves) and receive data with company_id, name, rating, review_count, salary_count, job_count, headquarters_location, logo, company_size, company_description, industry, website, company_type, revenue, year_founded, stock ticker and the CEO's name plus approval score. Also included: sub-ratings for work-life balance, culture and values, career opportunities, compensation and benefits, senior management, diversity and inclusion, recommend-to-a-friend and business outlook, a competitors list, best-places-to-work award history, and links to the employer's reviews, jobs and FAQ pages. An unknown ID returns HTTP 200 with status OK and no data field β treat a missing data key as the not-found signal.
Test this employer-data endpoint 1 required Β· 1 optional
| Parameter | In | Value |
|---|---|---|
| query |
Optional filters and page controls (1)
| Parameter | In | Value |
|---|---|---|
| query |
/api/project/glassdoor/company-reviews Get Employee Reviews
Full docs βDetails
Paginated employee reviews for one company. Pass company_id and receive data.reviews, where each review carries review_id, summary, pros, cons, a 1-5 rating, job_title, review_datetime, employment_status, is_current_employee, years_of_employment, location, helpful counts and per-category sub-ratings (work-life balance, culture and values, compensation, senior management, diversity and inclusion, career opportunities) plus CEO-approval, recommend-to-friend and business-outlook labels. Filter by review keyword (query), language (comma list such as en,es), employment_statuses (REGULAR, INTERN, PART_TIME, CONTRACT, FREELANCE), or current employees only; sort by POPULAR, MOST_RECENT, HIGHEST_RATING or LOWEST_RATING; page 10 reviews at a time with page. Set extended_rating_data=true to attach rating-breakdown aggregates. data also reports the company rating, review_count, filtered_review_count and page_count for pagination math. Verified live: Google's newest review was dated 2026-10-06 across 6,588 pages.
Test this employer-data endpoint 1 required Β· 8 optional
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query | ||
| query | ||
| query |
Optional filters and page controls (4)
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query | ||
| query |
Job Listings
/api/project/glassdoor/job-search Search Job Listings
Full docs βDetails
Global job search across current Glassdoor postings. Pass query (role or keyword) and location (city, state or country; combine with location_type for precision) and receive data.total_count plus data.jobs, where each listing carries job_id, job_title, company_id, company_name, company_logo, location_name, location_id, job_link, easy_apply, age_in_days, the employer's rating and a salary range (min/median/max with currency and period) when disclosed. Filter by date_posted (today, 3days, week, 2weeks or month), remote_only, easy_apply_only and min_company_rating. Results page via an opaque cursor: send data.cursor back in the cursor parameter for the next page, and set limit (1-100) for page size. Verified live: front end developer in New York returned 389 open roles.
Test this employer-data endpoint 2 required Β· 8 optional
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query | ||
| query | ||
| query | ||
| query | ||
| query |
Optional filters and page controls (3)
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query |
/api/project/glassdoor/company-jobs List a Company's Job Postings
Full docs βDetails
Every current opening at one employer. Pass company_id and receive data.total_count plus data.jobs (40 per page), where each listing carries job_id, job_title, company_name, company_logo, location_name, job_link, easy_apply, age_in_days and a salary range (min/max with currency and period) when the employer discloses pay. Restrict the feed to a job_function (engineering, sales, finance and 20 more categories), to a location with location_type, or to fresh postings with max_age_days; sort by MOST_RELEVANT or MOST_RECENT and page through with page. Pair with company-search to keep a watchlist of employer IDs fresh. Verified live: Google listed 3,822 open roles.
Test this employer-data endpoint 1 required Β· 7 optional
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query | ||
| query | ||
| query |
Optional filters and page controls (3)
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query |
Salaries
/api/project/glassdoor/company-salaries Salary Estimate at One Company
Full docs βDetails
Pay benchmark for one role at one employer. Pass company_id and job_title (e.g. software engineer), plus an optional location with location_type and a years_of_experience band, and receive a single data estimate: min_salary, median_salary and max_salary for total pay, min/median/max_base_salary and min/median/max_additional_pay splits, salary_period (e.g. YEAR), salary_currency (e.g. USD), the salary_count of employee reports behind the figure and a confidence label (e.g. CONFIDENT). Verified live: a software-engineer estimate at Google resolved nationally with more than 51,000 reports and a CONFIDENT grade. Use it for like-for-like comparisons at a specific company; use salary-estimate for company-agnostic market rates.
Test this employer-data endpoint 2 required Β· 4 optional
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query | ||
| query |
Optional filters and page controls (2)
| Parameter | In | Value |
|---|---|---|
| query | ||
| query |
/api/project/glassdoor/company-salaries-v2 Browse All Salary Reports at a Company
Full docs βDetails
The full salary surface for one employer as a sorted, paginated list β the complement to the single-estimate company-salaries endpoint. Pass company_id and optionally narrow by job_title or location (with location_type); sort by MOST_SALARIES (roles with the most reports), HIGH_TO_LOW (highest pay first) or MOST_RECENT (freshest reports first), and page through the list with page. Rows follow the per-role salary layout of the employer's public salaries page, so the feed drops straight into distribution charts, spreadsheets and trend trackers without querying one title at a time.
Test this employer-data endpoint 1 required Β· 6 optional
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query | ||
| query | ||
| query |
Optional filters and page controls (2)
| Parameter | In | Value |
|---|---|---|
| query | ||
| query |
/api/project/glassdoor/salary-estimate Market Salary Estimate by Title and City
Full docs βDetails
Company-agnostic pay estimate for any job title in any location. Pass job_title and location (both required), plus an optional years_of_experience band and location_type for precision, and receive an estimated pay range for that role in that market with the salary period and currency. Unlike company-salaries, no company_id is needed, so it answers open questions like what a marketing assistant makes in Chicago before an employer shortlist exists. Chain it with company-salaries to contrast the market rate against a specific employer's pay.
Test this employer-data endpoint 2 required Β· 3 optional
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query |
Optional filters and page controls (2)
| Parameter | In | Value |
|---|---|---|
| query | ||
| query |
Interviews
/api/project/glassdoor/company-interviews Get Interview Reports
Full docs βDetails
Candidate-reported interview experiences for one company. Pass company_id and receive data.interviews, where each report carries interview_id, job_title, location, process_description, difficulty, experience (POSITIVE, NEUTRAL or NEGATIVE), outcome, duration_days, interview_datetime, review_datetime, advice, declined_reason, helpful counts and the actual questions candidates were asked. Filter by job_title, location, job_function or received_offer_only; sort by POPULAR, MOST_RECENT, OLDEST, EASIEST or MOST_DIFFICULT; page with page and page_size (1-100; beyond page 1000 the source caps pages at 5 items). Aggregate stats ride along: total_count, average interview_difficulty, experience and hiring-channel distributions, interview_question_count and newest_review_date, so dashboards can show freshness at a glance. Verified live: Google returned 26,187 reports with an average difficulty of 3.4.
Test this employer-data endpoint 1 required Β· 9 optional
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query | ||
| query | ||
| query |
Optional filters and page controls (5)
| Parameter | In | Value |
|---|---|---|
| query | ||
| query | ||
| query | ||
| query | ||
| query |
Capabilities and validation scope
Live Glassdoor employer, salary and job-listing data as clean, documented JSON. One API key replaces fragile scrapers, proxy pools and login-wall handling β search companies, pull ratings and reviews, benchmark pay and track hiring signals on demand.
- Company search: resolve any employer name to its Glassdoor company ID, rating, logo and headquarters in one call
- Company overview: full profile with rating breakdowns, CEO approval, review/salary/job counters, size, industry, competitors and award history
- Employee reviews: pros, cons and per-category sub-ratings with keyword, language and employment-status filters plus deep pagination
- Salaries: min/median/max total, base and additional pay by company, job title, city and experience band, or a market-wide estimate for any title and location
- Job listings: global job search with date-posted, remote, easy-apply and minimum-rating filters plus cursor pagination, or every current opening at one company
- Interview reports: real candidate experiences with process descriptions, questions asked, difficulty, outcomes and aggregate distributions
Verified live against Google (company ID 9079): search, overview, reviews, jobs, salary estimates and interviews all return current production data, and an unknown company ID returns a clean empty result rather than an error. Regional Glassdoor domains are selectable on every endpoint for localized results.
Built for HR-tech and compensation benchmarking, job aggregators, recruiters, labor-market researchers and data teams. Data is collected from publicly available content for research and informational purposes.