> ## Documentation Index
> Fetch the complete documentation index at: https://docs.scrapeunblocker.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Scrape Google Maps reviews

> Returns one Google Maps place's reviews as JSON, sorted the way Google sorts them: `relevant`, `newest`, `highest` or `lowest`. Each review has `rating` (1-5), `date` (exact ISO 8601, UTC) + `timestamp`, `relativeDate`, `text` (original) + `language`, `translatedText` (into `hl`, when the review is in another language), `author`, `photos`, `details` (guided answers such as 'Rooms: 5'), `ownerResponse` and `reviewUrl`. The answer also carries a `place` summary and `nextPageToken` for paging. Identify the place with `feature_id` (0xHEX:0xHEX), `place_id` (ChIJ...) or a Maps `url`. Reviews come in pages of 20; each page fetched is one billed unit.



## OpenAPI

````yaml /api-reference/openapi.json post /maps/reviews
openapi: 3.1.0
info:
  title: ScrapeUnblocker API
  description: >-
    Public API for the ScrapeUnblocker proxy/anti-bot service. Authenticate
    every request with the `x-scrapeunblocker-key` header. Documented here:
    page-source extraction, Google SERP scraping, image fetch, and the dedicated
    plugin endpoints (search engines, marketplaces, reviews, travel, social and
    more). All other paths exist for internal operations and are intentionally
    hidden from this spec.
  version: 3.0.0
servers:
  - url: https://api.scrapeunblocker.com
    description: Production
security: []
paths:
  /maps/reviews:
    post:
      tags:
        - Plugins
      summary: Scrape Google Maps reviews
      description: >-
        Returns one Google Maps place's reviews as JSON, sorted the way Google
        sorts them: `relevant`, `newest`, `highest` or `lowest`. Each review has
        `rating` (1-5), `date` (exact ISO 8601, UTC) + `timestamp`,
        `relativeDate`, `text` (original) + `language`, `translatedText` (into
        `hl`, when the review is in another language), `author`, `photos`,
        `details` (guided answers such as 'Rooms: 5'), `ownerResponse` and
        `reviewUrl`. The answer also carries a `place` summary and
        `nextPageToken` for paging. Identify the place with `feature_id`
        (0xHEX:0xHEX), `place_id` (ChIJ...) or a Maps `url`. Reviews come in
        pages of 20; each page fetched is one billed unit.
      operationId: maps_reviews_maps_reviews_post
      parameters:
        - name: url
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              A Google Maps place URL: a /maps/place/... URL, a maps.app.goo.gl
              share link or a maps?cid= link. The place is read out of it.
            title: Url
          description: >-
            A Google Maps place URL: a /maps/place/... URL, a maps.app.goo.gl
            share link or a maps?cid= link. The place is read out of it.
        - name: place_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: A Google place_id, e.g. 'ChIJN1t_tDeuEmsRUsoyG83frY4'.
            title: Place Id
          description: A Google place_id, e.g. 'ChIJN1t_tDeuEmsRUsoyG83frY4'.
        - name: feature_id
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              A Maps feature id '0xHEX:0xHEX', e.g.
              '0x4776901a5d4813b3:0x2a497c8b414893c'. Fastest - no resolve step.
            title: Feature Id
          description: >-
            A Maps feature id '0xHEX:0xHEX', e.g.
            '0x4776901a5d4813b3:0x2a497c8b414893c'. Fastest - no resolve step.
        - name: sort
          in: query
          required: false
          schema:
            type: string
            description: >-
              Review order: 'relevant' (Google's default), 'newest', 'highest'
              or 'lowest'. SerpApi's 'qualityScore', 'newestFirst', 'ratingHigh'
              and 'ratingLow' are accepted too.
            default: relevant
            title: Sort
          description: >-
            Review order: 'relevant' (Google's default), 'newest', 'highest' or
            'lowest'. SerpApi's 'qualityScore', 'newestFirst', 'ratingHigh' and
            'ratingLow' are accepted too.
        - name: max_reviews
          in: query
          required: false
          schema:
            type: integer
            description: >-
              How many reviews to return, 1-200. Reviews come in pages of 20;
              each page fetched is one billed unit.
            default: 20
            title: Max Reviews
          description: >-
            How many reviews to return, 1-200. Reviews come in pages of 20; each
            page fetched is one billed unit.
        - name: next_page_token
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Continue from a previous answer's `nextPageToken` (same place and
              sort). When `max_reviews` is not a multiple of 20 the next page
              can repeat a few reviews - dedupe on `reviewId`.
            title: Next Page Token
          description: >-
            Continue from a previous answer's `nextPageToken` (same place and
            sort). When `max_reviews` is not a multiple of 20 the next page can
            repeat a few reviews - dedupe on `reviewId`.
        - name: hl
          in: query
          required: false
          schema:
            type: string
            description: >-
              Language for Google's labels and the review translation
              (`translatedText`), e.g. 'en', 'de'. The original text is always
              returned in `text`.
            default: en
            title: Hl
          description: >-
            Language for Google's labels and the review translation
            (`translatedText`), e.g. 'en', 'de'. The original text is always
            returned in `text`.
        - name: gl
          in: query
          required: false
          schema:
            type: string
            description: Google country, ISO-2 lowercase, e.g. 'us'.
            default: us
            title: Gl
          description: Google country, ISO-2 lowercase, e.g. 'us'.
        - name: proxy_country
          in: query
          required: false
          schema:
            type: string
            description: >-
              Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE').
              Reviews are the same from any country.
            default: us
            title: Proxy Country
          description: >-
            Proxy country the request is sent from (ISO-2, e.g. 'US', 'DE').
            Reviews are the same from any country.
      responses:
        '200':
          description: JSON with `place`, `reviews` and `nextPageToken`.
          content:
            application/json:
              schema: {}
        '400':
          description: No/invalid place identifier, sort or max_reviews.
        '404':
          description: 'Unknown place: no reviews and no place data.'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
        '502':
          description: >-
            Blocked by Google, an unreadable answer, or the call did not finish
            in time.
      security:
        - ScrapeUnblockerKey: []
components:
  schemas:
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
  securitySchemes:
    ScrapeUnblockerKey:
      type: apiKey
      in: header
      name: x-scrapeunblocker-key
      description: Your ScrapeUnblocker API key. Apply on every request.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.