Glassdoor API — Get Employee Reviews as JSON
Documentation menu
FetchLayer FetchLayer API

Get a company's employee reviews

Return employee reviews for one company: the reviewer's own headline, their pros, cons and advice to management, their overall and per-category stars, whether they approve of the CEO, would recommend the company and expect a positive outlook, their job title, location, employment status and tenure, helpful counts, and any public employer reply. Walk several pages in one request with pages, or pass a response's nextCursor back as cursor to resume later. sortBy orders the reviews inside the response you get back — the sort is applied locally over the window that was collected, not across every review the company has.

POST /company-reviews Reviews
https://api.fetchlayer.dev/glassdoor/company-reviews
OpenAPI JSON

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 reviews returned (max 2000), or -1 for everything available. (default: 30)

pages number optional

Pages of results to collect in one request (max 100), or -1 for the maximum allowed. Each page counts as one request against your plan. (default: 1)

cursor string optional

Resume from a previous response's nextCursor.

delayMs number optional

Milliseconds to wait between pages (max 30000).

sortBy string optional

date, rating, helpful or none. Applied locally over the reviews this response collected, not across the whole listing. (default: none)

sortDirection string optional

asc or desc. (default: desc)

Response Fields

company-reviews

Get a company's employee reviews

employerId string

The company these reviews belong to.

companyName string | null

Company name as published.

reviews object[]

The collected reviews.

reviews[].reviewId string

Stable id for the review — the key to dedupe on across runs.

reviews[].summary string | null

The reviewer's own headline.

reviews[].pros string | null

What the reviewer liked.

reviews[].cons string | null

What the reviewer did not.

reviews[].advice string | null

Advice the reviewer left for management.

reviews[].ratingOverall number | null

The reviewer's overall stars, 1-5.

reviews[].ratings object

The same seven categories as the company profile, but for this one reviewer.

reviews[].ceoRating string | null

APPROVE, DISAPPROVE or NO_OPINION.

reviews[].recommendToFriend string | null

POSITIVE, NEGATIVE or NEUTRAL.

reviews[].businessOutlook string | null

The reviewer's six-month outlook: POSITIVE, NEGATIVE or NEUTRAL.

reviews[].reviewedAt string | null

When the review was published.

reviews[].jobTitle string | null

Role the reviewer held.

reviews[].location string | null

Where they worked, at the granularity in locationType (CITY, METRO, STATE or COUNTRY).

reviews[].employmentStatus string | null

How they were employed, for example REGULAR, PART_TIME or INTERN.

reviews[].isCurrentJob boolean | null

Whether they still worked there when they wrote it.

reviews[].lengthOfEmploymentYears number | null

Tenure in years, as reported.

reviews[].helpfulCount number | null

How many readers marked the review helpful.

reviews[].employerResponses object[]

Public employer replies, each with text, respondedAt and the replier's job title. Replies are sparse, so an empty list means none is published — not that the employer never replies.

reviewCount number

Reviews in this response.

totalReviewCount number | null

Reviews available for this company across every page — compare it against reviewCount to see how much of the listing you have.

totalPages number | null

Pages the listing spans.

pagesScraped number

Pages actually collected. Each one counts as a request against your plan.

pagesRequested number

Pages the request asked for. Lower than pagesScraped means the listing ran out.

nextCursor string | null

Pass back as cursor to continue, or null when the listing is exhausted.

hasNextPage boolean

Whether more results exist beyond 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-reviews" \
  -H "Authorization: Bearer ss-your-key" \
  -H "Content-Type: application/json" \
  -d '{"company":"671954","pages":3,"limit":60,"sortBy":"date","sortDirection":"desc"}'

Response

{
  "employerId": "671954",
  "companyName": "Stripe",
  "reviewCount": 30,
  "totalReviewCount": 1284,
  "totalPages": 129,
  "pagesScraped": 3,
  "pagesRequested": 3,
  "hasNextPage": true,
  "nextCursor": "eyJwYWdlIjo0fQ==",
  "reviews": [
    {
      "reviewId": "78451203",
      "summary": "Great engineers, heavy pace",
      "pros": "Exceptional colleagues and genuinely interesting infrastructure problems.",
      "cons": "Scope changes often and the on-call rotation is demanding.",
      "ratingOverall": 4,
      "jobTitle": "Software Engineer",
      "location": "Dublin, Ireland",
      "employmentStatus": "REGULAR",
      "isCurrentJob": true,
      "reviewedAt": "2026-08-30",
      "helpfulCount": 12,
      "employerResponses": []
    }
  ],
  "notes": [
    "Sorting was applied to the 30 reviews collected in this response, not across all 1284 reviews."
  ]
}