Clair API
  • All APIs
  • Pricing
  • Docs
SERP & Search
  • Google Search API
  • Google Maps API
News & Media
  • Google News API
  • Bloomberg News API
  • Associated Press API
  • Reuters News API
Jobs & Hiring
  • Glassdoor API
  • Greenhouse Jobs API
  • Indeed Jobs API
E-commerce
  • Amazon Products API
Company Data & Reviews
  • Trustpilot Reviews API
  • Product Hunt API
  • Crunchbase API
Contact & Lead Data
  • Website Contacts API
Missing a data source? Ask for one →
  • Use cases
  • Comparisons
  • Glossary
Ecommerce and reviews
  • Amazon price monitoring
  • Trustpilot review monitoring
  • MAP enforcement on Amazon
  • Amazon rating monitoring
  • Amazon category research
  • Trustpilot competitor benchmarking
Search and local
  • Google rank tracking
  • Local lead generation
  • Local SEO competitor audit
  • Grounding LLM answers in search results
  • Content research from People also ask
Leads and companies
  • Lead enrichment from company websites
  • Product Hunt launch tracking
  • Startup deal sourcing
  • Account research briefs
Jobs and hiring
  • Salary benchmarking
  • Job market analytics
  • Hiring signals for sales
  • Employer reputation tracking
News
  • Media monitoring
  • Financial news alerts
  • News corpus for research and RAG
Comparisons
  • Clair vs SerpApi
  • Clair vs Google Places API
  • Clair vs Google Custom Search API
  • Clair vs Hunter
GlossarySERPSERP APIPeople also askGoogle place IDASINBuy BoxGTINSalary percentilesTrustScoreWeb scrapingAll 40 terms →
PricingDocs
Dashboard

Use cases / Glassdoor API

Salary benchmarking

Set pay bands from the numbers candidates see. For each employer you compete with for hires, read Glassdoor's salary percentiles for the titles you are hiring, and keep base and total pay side by side. Two Glassdoor endpoints do the work: company search to find each employer, and salaries to read its pay by title.

Last updated September 28, 2026. Response excerpts are recorded from the live API.

Try the Glassdoor API →

On this page

  1. Who
  2. Pipeline
  3. Code
  4. Cost
  5. Limits
  6. FAQ

Who

Who runs this, and what for

TeamWhat they decide with it
Recruiters and talent teamsWhether an offer is competitive against the companies the candidate is also talking to.
Compensation teamsWhere to set a band for a new role, and which roles have drifted below market.
HR and people analytics productsWhat market pay to show customers next to their own payroll data.

Pipeline

The calls, step by step

  1. 01Find each employer's id

    Company search takes a name and returns employer_id and slug, with the company's rating and how many salaries it has. Both ids are needed for every salary call, and they do not change, so store them.

    GET /v1/company/search?engine=glassdoor&q=stripe · results.0

    {
      "position": 1,
      "employer_id": "671932",
      "name": "Stripe",
      "slug": "Stripe",
      "logo": "https://media.glassdoor.com/sql/671932/stripe-squarelogo-1610580619584.png",
      "rating": 3.8,
      "reviews_count": 1588,
      "salaries_count": 4659,
      "jobs_count": 4,
      "url": "https://www.glassdoor.com/Overview/Working-at-Stripe-EI_IE671932.11,17.htm"
    }
    Recorded response. Live values differ.
  2. 02Read pay by job title

    Salaries returns ten job titles per page, most-reported first, each with base and total pay at the 10th, 25th, 50th, 75th, and 90th percentiles, the number of reports, and when the last one came in. Page until you have the titles you need; the common titles sit in the first few pages.

    GET /v1/company/salaries?engine=glassdoor&employer_id=9079&slug=Google&page=2 · results.0

    {
      "position": 11,
      "job_title": "Software Engineer III",
      "job_title_id": "4514",
      "salaries_count": 950,
      "currency": "USD",
      "period": "year",
      "base_pay": {
        "p10": 159325,
        "p25": 176568,
        "p50": 197943,
        "p75": 221906,
        "p90": 245922
      },
      "total_pay": {
        "p10": 271280,
        "p25": 321338,
        "p50": 390969,
        "p75": 492142,
        "p90": 599160
      },
      "last_reported_at": "2026-07-24T07:10:52.947Z"
    }
    Recorded response. Live values differ.
  3. 03Compare with posted pay

    Self-reported pay lags the market. Posted ranges on current openings show what employers offer now: Glassdoor job search returns salary with min, max, and whether the employer or Glassdoor supplied it.

    GET /v1/search?engine=glassdoor&q=software+engineer&page=1 · results.0.salary

    {
      "min": 110000,
      "max": 160000,
      "median": 135000,
      "currency": "USD",
      "period": "year",
      "source": "employer"
    }
    Recorded response. Live values differ.

Code

A script to start from

salary_bands.py

# Salary bands for chosen job titles at the employers you hire against.
# Out: salaries.csv, one row per employer and title, base and total pay.
import csv, os, requests

API = "https://api.clair.im"
HEADERS = {"Authorization": f"Bearer {os.environ['CLAIR_API_KEY']}"}
EMPLOYERS = ["Stripe", "Datadog", "Cloudflare"]
TITLES = {"software engineer", "senior software engineer", "product manager"}
MAX_PAGES = 5  # 10 titles per page, most-reported first

def get(path, **params):
    r = requests.get(f"{API}{path}", headers=HEADERS, timeout=90,
                     params={"engine": "glassdoor", **params})
    r.raise_for_status()
    return r.json()

with open("salaries.csv", "w", newline="") as f:
    out = csv.writer(f)
    out.writerow(["employer", "title", "reports", "base_p25", "base_p50",
                  "base_p75", "total_p50", "last_reported_at"])
    for name in EMPLOYERS:
        employer = get("/v1/company/search", q=name)["results"][0]
        for page in range(1, MAX_PAGES + 1):
            body = get("/v1/company/salaries", employer_id=employer["employer_id"],
                       slug=employer["slug"], page=page)
            for row in body["results"]:
                if row["job_title"].lower() in TITLES:
                    b, t = row["base_pay"], row["total_pay"]
                    out.writerow([employer["name"], row["job_title"], row["salaries_count"],
                                  b["p25"], b["p50"], b["p75"], t["p50"],
                                  row["last_reported_at"]])
            if not body["next_cursor"]:
                break

Set CLAIR_API_KEY to a key subscribed to the Glassdoor API. Each call is one request against that API's monthly quota.

Cost

What it costs per month

ScheduleRequestsPlanPer monthPer 1,000
10 employers, refreshed monthly10 company searches plus 5 salary pages each = 60 requests. Cache the ids and later months cost 50.60Pay as you go$0.47$7.83
50 employers, refreshed monthly50 × (1 search + 5 salary pages) = 300 requests.300Pay as you go$2.34$7.80
500 employers, 10 pages each, monthly500 × (1 search + 10 salary pages) = 5,500 requests, for a market-wide benchmark.5,500Pay as you go$42.90$7.80
The cheapest Clair plan for each volume: the monthly fee plus overage past the included requests. USD, before tax. The free tier covers 200 requests a month for trying the pipeline.

Limits

What to plan for

  • Glassdoor salaries are reported by employees and candidates. Titles with few reports (salaries_count) are noisy; set a minimum before you use a number.
  • Pay is for the location the response names, United States in the recorded example, in the currency and period each row states. Do not mix yearly and hourly rows.
  • Up to 20 pages of 10 titles per employer. Rare titles at large employers may be past that.
  • Job titles are Glassdoor's, not yours. Map them to your own levels once, by hand, and keep the mapping.

FAQ

Common questions

What is the difference between base pay and total pay?

Base is salary. Total pay adds the cash bonus, stock, and profit sharing people reported. At large tech companies total pay can be twice base, so compare like with like.

How current is the data?

Each row has last_reported_at, the date of its most recent report. The percentiles cover reports over a longer window, so they move slowly.

Can I get salaries for a title across all companies?

Not in one call: salaries are read per employer. Read the employers you care about, or use posted ranges from job search for a market-wide view.

Related

Keep reading

APIs

  • Glassdoor API

Glossary

  • Salary percentiles
  • Pay transparency
  • Employer rating

Run it on your own products

200 requests a month free on each API, no card. Enough to run the pipeline on a short list before choosing a plan.

Get API Key →Compare plans
Clair API

Live data APIs for search, news, jobs, marketplaces, companies, reviews, and website contacts. Each call fetches the page and returns clean JSON.

contact@serinlabs.com@clair_api

APIs

SERP & Search
  • Google Search API
  • Google Maps API
News & Media
  • Google News API
  • Bloomberg News API
  • Associated Press API
  • Reuters News API
Jobs & Hiring
  • Glassdoor API
  • Greenhouse Jobs API
  • Indeed Jobs API
E-commerce
  • Amazon Products API
Company Data & Reviews
  • Trustpilot Reviews API
  • Product Hunt API
  • Crunchbase API
Contact & Lead Data
  • Website Contacts API

Use cases

Ecommerce and reviews
  • Amazon price monitoring
  • Trustpilot review monitoring
  • MAP enforcement on Amazon
  • Amazon rating monitoring
  • Amazon category research
  • Trustpilot competitor benchmarking
Search and local
  • Google rank tracking
  • Local lead generation
  • Local SEO competitor audit
  • Grounding LLM answers in search results
  • Content research from People also ask
Leads and companies
  • Lead enrichment from company websites
  • Product Hunt launch tracking
  • Startup deal sourcing
  • Account research briefs
Jobs and hiring
  • Salary benchmarking
  • Job market analytics
  • Hiring signals for sales
  • Employer reputation tracking
News
  • Media monitoring
  • Financial news alerts
  • News corpus for research and RAG

Compare and learn

Comparisons
  • Clair vs SerpApi
  • Clair vs Google Places API
  • Clair vs Google Custom Search API
  • Clair vs Hunter
Glossary
  • SERP
  • SERP API
  • People also ask
  • Google place ID
  • ASIN
  • Buy Box
  • All 40 terms
Developers
  • Documentation
  • Quickstart
  • API catalog
  • Pricing
  • All resources
© 2026 Serin Technologies, LLC
  • Terms of Service
  • Privacy Policy