{
  "id": "litescrape.google.reviews",
  "object": "tool",
  "name": "Get Google Reviews",
  "summary": "Get Google Maps reviews for one place with sorting, filtering, and paging.",
  "description": "Fetch the reviews of one Google Maps place by place_id or data_id. Returns reviews (rating, snippet, date, reviewer, likes, images), topics Google groups them into, place_info, and a next_page_token. Supports quality, newest, and rating ordering, free-text or topic filtering, up to 100 reviews on the first unfiltered request, and localization. Suited for sentiment analysis, reputation monitoring, and competitor review mining.\n\nRaw litescrape#google/reviews endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://litescrape.com/docs/google-maps-reviews).",
  "category": "lookup",
  "hosted_by": "Litescrape",
  "runtime": "partner",
  "side_effects": false,
  "status": "live",
  "credits": 0,
  "price": null,
  "providers": [
    {
      "id": "litescrape",
      "name": "Litescrape",
      "price": null,
      "own_key_only": true
    }
  ],
  "mcp_name": "litescrape_google_reviews",
  "input_schema": {
    "type": "object",
    "properties": {
      "queryParams": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "place_id": {
                "type": "string",
                "minLength": 1,
                "description": "Google place ID of the business. Required unless data_id is supplied."
              },
              "sort_by": {
                "type": "string",
                "enum": [
                  "qualityScore",
                  "newestFirst",
                  "ratingHigh",
                  "ratingLow"
                ],
                "description": "Review order. Default 'qualityScore'."
              },
              "hl": {
                "type": "string",
                "minLength": 2,
                "maxLength": 32,
                "description": "Language for review labels and place context. Default 'en'."
              },
              "gl": {
                "type": "string",
                "pattern": "^[a-zA-Z]{2}$",
                "description": "Two-letter country code, lowercase. Default 'us'."
              },
              "query": {
                "type": "string",
                "minLength": 1,
                "description": "Only reviews matching this free-text query. Cannot be combined with topic_id."
              },
              "topic_id": {
                "type": "string",
                "minLength": 1,
                "description": "Only reviews under this topic from the topics group. Cannot be combined with query."
              },
              "num": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100,
                "description": "Number of reviews: 1-100 on an unfiltered first request, 1-20 on filtered or continuation requests. Default 8."
              },
              "source_metadata": {
                "type": "boolean",
                "description": "Include review-provider icon and scale metadata when available."
              },
              "next_page_token": {
                "type": "string",
                "minLength": 1,
                "description": "Continuation token from pagination.next_page_token, passed back unchanged."
              }
            },
            "required": [
              "place_id"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "data_id": {
                "type": "string",
                "pattern": "^0x[0-9a-f]+:0x[0-9a-f]+$",
                "description": "Hexadecimal Maps feature ID in the form '0x123:0x456'. Required unless place_id is supplied."
              },
              "sort_by": {
                "type": "string",
                "enum": [
                  "qualityScore",
                  "newestFirst",
                  "ratingHigh",
                  "ratingLow"
                ],
                "description": "Review order. Default 'qualityScore'."
              },
              "hl": {
                "type": "string",
                "minLength": 2,
                "maxLength": 32,
                "description": "Language for review labels and place context. Default 'en'."
              },
              "gl": {
                "type": "string",
                "pattern": "^[a-zA-Z]{2}$",
                "description": "Two-letter country code, lowercase. Default 'us'."
              },
              "query": {
                "type": "string",
                "minLength": 1,
                "description": "Only reviews matching this free-text query. Cannot be combined with topic_id."
              },
              "topic_id": {
                "type": "string",
                "minLength": 1,
                "description": "Only reviews under this topic from the topics group. Cannot be combined with query."
              },
              "num": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100,
                "description": "Number of reviews: 1-100 on an unfiltered first request, 1-20 on filtered or continuation requests. Default 8."
              },
              "source_metadata": {
                "type": "boolean",
                "description": "Include review-provider icon and scale metadata when available."
              },
              "next_page_token": {
                "type": "string",
                "minLength": 1,
                "description": "Continuation token from pagination.next_page_token, passed back unchanged."
              }
            },
            "required": [
              "data_id"
            ],
            "additionalProperties": false
          }
        ],
        "description": "Provide exactly one of place_id or data_id."
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "kind": "endpoint"
}