{
  "id": "litescrape.google.maps",
  "object": "tool",
  "name": "Search Google Maps",
  "summary": "Search Google Maps places in a viewport, or resolve one exact place by id.",
  "description": "Search Google Maps for businesses, categories, or addresses inside a viewport, or resolve one exact place. Returns local_results (position, title, rating, reviews, address, hours, phone, place_id, data_id, reviews_link) with a next-page bookmark, or place_results for one place (description, price, hours, service options, photos, photo_meta_link). Supports an @lat,lon,zoom viewport, a named location or lat/lon with zoom or radius, nearby-search scope, price level, minimum rating, and open-state filters, and localization. A page holds 20 places; follow pagination.next for the next 20. For a result's reviews pass its place_id or data_id to google/reviews, for live foot traffic its place_id to google/maps/popular-times, for its posts its data_id to google/maps/posts. Suited for local lead lists, competitor mapping, and place lookups by id.\n\nRaw litescrape#google/maps endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://litescrape.com/docs/google-maps).",
  "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_maps",
  "input_schema": {
    "type": "object",
    "properties": {
      "queryParams": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "q": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2048,
                "description": "Business, category, address, or natural-language query. Required when type is 'search'."
              },
              "type": {
                "type": "string",
                "enum": [
                  "search",
                  "place"
                ],
                "description": "'search' for results, 'place' for an exact-place data sequence. Required for query searches."
              },
              "ll": {
                "type": "string",
                "pattern": "^@-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?,\\d+(\\.\\d+)?[zm]$",
                "description": "Viewport as '@lat,lon,14z' (zoom) or '@lat,lon,5000m' (radius)."
              },
              "location": {
                "type": "string",
                "minLength": 1,
                "description": "Named location resolved by the API. Requires z or m; cannot be combined with ll or lat/lon."
              },
              "lat": {
                "type": "number",
                "minimum": -90,
                "maximum": 90,
                "description": "Viewport center latitude. Requires lon and z or m."
              },
              "lon": {
                "type": "number",
                "minimum": -180,
                "maximum": 180,
                "description": "Viewport center longitude. Requires lat and z or m."
              },
              "z": {
                "type": "number",
                "minimum": 3,
                "maximum": 30,
                "description": "Zoom level for location or lat/lon geography, 3-30. Cannot be combined with m."
              },
              "m": {
                "type": "integer",
                "minimum": 1,
                "maximum": 15028132,
                "description": "Search radius in meters for location or lat/lon geography. Cannot be combined with z."
              },
              "nearby": {
                "type": "boolean",
                "description": "Use the supplied geography as a nearby-search scope. Requires ll, location, or lat/lon."
              },
              "place_id": {
                "type": "string",
                "minLength": 1,
                "description": "Google place ID to resolve one exact place. Cannot be combined with data_cid or data."
              },
              "data_cid": {
                "type": "string",
                "pattern": "^\\d+$",
                "description": "Decimal Google CID to resolve one exact place. Cannot be combined with place_id or data."
              },
              "data": {
                "type": "string",
                "minLength": 1,
                "maxLength": 8192,
                "description": "Google Maps protobuf parameter sequence for search filters or an exact place. Exact-place data requires type 'place'."
              },
              "hl": {
                "type": "string",
                "minLength": 2,
                "maxLength": 32,
                "description": "Interface and result language, such as 'en', 'en-GB', or 'de'. Default 'en'."
              },
              "gl": {
                "type": "string",
                "pattern": "^[a-zA-Z]{2}$",
                "description": "Two-letter country code for result localization, such as 'us'."
              },
              "google_domain": {
                "type": "string",
                "minLength": 1,
                "description": "Google domain to query, such as 'google.com' or 'google.co.uk'. Default 'google.com'."
              },
              "min_price": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Minimum price level. Cannot exceed max_price."
              },
              "max_price": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Maximum price level. Cannot be lower than min_price."
              },
              "min_rating": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 2
                  },
                  {
                    "type": "number",
                    "const": 2.5
                  },
                  {
                    "type": "number",
                    "const": 3
                  },
                  {
                    "type": "number",
                    "const": 3.5
                  },
                  {
                    "type": "number",
                    "const": 4
                  },
                  {
                    "type": "number",
                    "const": 4.5
                  }
                ],
                "description": "Preferred minimum rating (2, 2.5, 3, 3.5, 4, or 4.5). Google treats it as a relevance preference."
              },
              "open_state": {
                "type": "string",
                "enum": [
                  "now",
                  "24h"
                ],
                "description": "Only places open now or open 24 hours. Cannot be combined with open_on_day or open_at_hour."
              },
              "open_on_day": {
                "type": "string",
                "enum": [
                  "mon",
                  "tue",
                  "wed",
                  "thu",
                  "fri",
                  "sat",
                  "sun"
                ],
                "description": "Only places open on this day."
              },
              "open_at_hour": {
                "type": "integer",
                "minimum": 0,
                "maximum": 23,
                "description": "Only places open at this hour, 24-hour clock. Requires open_on_day."
              },
              "start": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Result offset. A Maps page holds 20 places. Default 0."
              }
            },
            "required": [
              "q",
              "type"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "q": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2048,
                "description": "Business, category, address, or natural-language query. Required when type is 'search'."
              },
              "type": {
                "type": "string",
                "enum": [
                  "search",
                  "place"
                ],
                "description": "'search' for results, 'place' for an exact-place data sequence. Required for query searches."
              },
              "ll": {
                "type": "string",
                "pattern": "^@-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?,\\d+(\\.\\d+)?[zm]$",
                "description": "Viewport as '@lat,lon,14z' (zoom) or '@lat,lon,5000m' (radius)."
              },
              "location": {
                "type": "string",
                "minLength": 1,
                "description": "Named location resolved by the API. Requires z or m; cannot be combined with ll or lat/lon."
              },
              "lat": {
                "type": "number",
                "minimum": -90,
                "maximum": 90,
                "description": "Viewport center latitude. Requires lon and z or m."
              },
              "lon": {
                "type": "number",
                "minimum": -180,
                "maximum": 180,
                "description": "Viewport center longitude. Requires lat and z or m."
              },
              "z": {
                "type": "number",
                "minimum": 3,
                "maximum": 30,
                "description": "Zoom level for location or lat/lon geography, 3-30. Cannot be combined with m."
              },
              "m": {
                "type": "integer",
                "minimum": 1,
                "maximum": 15028132,
                "description": "Search radius in meters for location or lat/lon geography. Cannot be combined with z."
              },
              "nearby": {
                "type": "boolean",
                "description": "Use the supplied geography as a nearby-search scope. Requires ll, location, or lat/lon."
              },
              "place_id": {
                "type": "string",
                "minLength": 1,
                "description": "Google place ID to resolve one exact place. Cannot be combined with data_cid or data."
              },
              "hl": {
                "type": "string",
                "minLength": 2,
                "maxLength": 32,
                "description": "Interface and result language, such as 'en', 'en-GB', or 'de'. Default 'en'."
              },
              "gl": {
                "type": "string",
                "pattern": "^[a-zA-Z]{2}$",
                "description": "Two-letter country code for result localization, such as 'us'."
              },
              "google_domain": {
                "type": "string",
                "minLength": 1,
                "description": "Google domain to query, such as 'google.com' or 'google.co.uk'. Default 'google.com'."
              },
              "min_price": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Minimum price level. Cannot exceed max_price."
              },
              "max_price": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Maximum price level. Cannot be lower than min_price."
              },
              "min_rating": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 2
                  },
                  {
                    "type": "number",
                    "const": 2.5
                  },
                  {
                    "type": "number",
                    "const": 3
                  },
                  {
                    "type": "number",
                    "const": 3.5
                  },
                  {
                    "type": "number",
                    "const": 4
                  },
                  {
                    "type": "number",
                    "const": 4.5
                  }
                ],
                "description": "Preferred minimum rating (2, 2.5, 3, 3.5, 4, or 4.5). Google treats it as a relevance preference."
              },
              "open_state": {
                "type": "string",
                "enum": [
                  "now",
                  "24h"
                ],
                "description": "Only places open now or open 24 hours. Cannot be combined with open_on_day or open_at_hour."
              },
              "open_on_day": {
                "type": "string",
                "enum": [
                  "mon",
                  "tue",
                  "wed",
                  "thu",
                  "fri",
                  "sat",
                  "sun"
                ],
                "description": "Only places open on this day."
              },
              "open_at_hour": {
                "type": "integer",
                "minimum": 0,
                "maximum": 23,
                "description": "Only places open at this hour, 24-hour clock. Requires open_on_day."
              },
              "start": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Result offset. A Maps page holds 20 places. Default 0."
              }
            },
            "required": [
              "place_id"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "q": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2048,
                "description": "Business, category, address, or natural-language query. Required when type is 'search'."
              },
              "type": {
                "type": "string",
                "enum": [
                  "search",
                  "place"
                ],
                "description": "'search' for results, 'place' for an exact-place data sequence. Required for query searches."
              },
              "ll": {
                "type": "string",
                "pattern": "^@-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?,\\d+(\\.\\d+)?[zm]$",
                "description": "Viewport as '@lat,lon,14z' (zoom) or '@lat,lon,5000m' (radius)."
              },
              "location": {
                "type": "string",
                "minLength": 1,
                "description": "Named location resolved by the API. Requires z or m; cannot be combined with ll or lat/lon."
              },
              "lat": {
                "type": "number",
                "minimum": -90,
                "maximum": 90,
                "description": "Viewport center latitude. Requires lon and z or m."
              },
              "lon": {
                "type": "number",
                "minimum": -180,
                "maximum": 180,
                "description": "Viewport center longitude. Requires lat and z or m."
              },
              "z": {
                "type": "number",
                "minimum": 3,
                "maximum": 30,
                "description": "Zoom level for location or lat/lon geography, 3-30. Cannot be combined with m."
              },
              "m": {
                "type": "integer",
                "minimum": 1,
                "maximum": 15028132,
                "description": "Search radius in meters for location or lat/lon geography. Cannot be combined with z."
              },
              "nearby": {
                "type": "boolean",
                "description": "Use the supplied geography as a nearby-search scope. Requires ll, location, or lat/lon."
              },
              "data_cid": {
                "type": "string",
                "pattern": "^\\d+$",
                "description": "Decimal Google CID to resolve one exact place. Cannot be combined with place_id or data."
              },
              "hl": {
                "type": "string",
                "minLength": 2,
                "maxLength": 32,
                "description": "Interface and result language, such as 'en', 'en-GB', or 'de'. Default 'en'."
              },
              "gl": {
                "type": "string",
                "pattern": "^[a-zA-Z]{2}$",
                "description": "Two-letter country code for result localization, such as 'us'."
              },
              "google_domain": {
                "type": "string",
                "minLength": 1,
                "description": "Google domain to query, such as 'google.com' or 'google.co.uk'. Default 'google.com'."
              },
              "min_price": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Minimum price level. Cannot exceed max_price."
              },
              "max_price": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Maximum price level. Cannot be lower than min_price."
              },
              "min_rating": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 2
                  },
                  {
                    "type": "number",
                    "const": 2.5
                  },
                  {
                    "type": "number",
                    "const": 3
                  },
                  {
                    "type": "number",
                    "const": 3.5
                  },
                  {
                    "type": "number",
                    "const": 4
                  },
                  {
                    "type": "number",
                    "const": 4.5
                  }
                ],
                "description": "Preferred minimum rating (2, 2.5, 3, 3.5, 4, or 4.5). Google treats it as a relevance preference."
              },
              "open_state": {
                "type": "string",
                "enum": [
                  "now",
                  "24h"
                ],
                "description": "Only places open now or open 24 hours. Cannot be combined with open_on_day or open_at_hour."
              },
              "open_on_day": {
                "type": "string",
                "enum": [
                  "mon",
                  "tue",
                  "wed",
                  "thu",
                  "fri",
                  "sat",
                  "sun"
                ],
                "description": "Only places open on this day."
              },
              "open_at_hour": {
                "type": "integer",
                "minimum": 0,
                "maximum": 23,
                "description": "Only places open at this hour, 24-hour clock. Requires open_on_day."
              },
              "start": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Result offset. A Maps page holds 20 places. Default 0."
              }
            },
            "required": [
              "data_cid"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "q": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2048,
                "description": "Business, category, address, or natural-language query. Required when type is 'search'."
              },
              "type": {
                "type": "string",
                "enum": [
                  "search",
                  "place"
                ],
                "description": "'search' for results, 'place' for an exact-place data sequence. Required for query searches."
              },
              "ll": {
                "type": "string",
                "pattern": "^@-?\\d+(\\.\\d+)?,-?\\d+(\\.\\d+)?,\\d+(\\.\\d+)?[zm]$",
                "description": "Viewport as '@lat,lon,14z' (zoom) or '@lat,lon,5000m' (radius)."
              },
              "location": {
                "type": "string",
                "minLength": 1,
                "description": "Named location resolved by the API. Requires z or m; cannot be combined with ll or lat/lon."
              },
              "lat": {
                "type": "number",
                "minimum": -90,
                "maximum": 90,
                "description": "Viewport center latitude. Requires lon and z or m."
              },
              "lon": {
                "type": "number",
                "minimum": -180,
                "maximum": 180,
                "description": "Viewport center longitude. Requires lat and z or m."
              },
              "z": {
                "type": "number",
                "minimum": 3,
                "maximum": 30,
                "description": "Zoom level for location or lat/lon geography, 3-30. Cannot be combined with m."
              },
              "m": {
                "type": "integer",
                "minimum": 1,
                "maximum": 15028132,
                "description": "Search radius in meters for location or lat/lon geography. Cannot be combined with z."
              },
              "nearby": {
                "type": "boolean",
                "description": "Use the supplied geography as a nearby-search scope. Requires ll, location, or lat/lon."
              },
              "data": {
                "type": "string",
                "minLength": 1,
                "maxLength": 8192,
                "description": "Google Maps protobuf parameter sequence for search filters or an exact place. Exact-place data requires type 'place'."
              },
              "hl": {
                "type": "string",
                "minLength": 2,
                "maxLength": 32,
                "description": "Interface and result language, such as 'en', 'en-GB', or 'de'. Default 'en'."
              },
              "gl": {
                "type": "string",
                "pattern": "^[a-zA-Z]{2}$",
                "description": "Two-letter country code for result localization, such as 'us'."
              },
              "google_domain": {
                "type": "string",
                "minLength": 1,
                "description": "Google domain to query, such as 'google.com' or 'google.co.uk'. Default 'google.com'."
              },
              "min_price": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Minimum price level. Cannot exceed max_price."
              },
              "max_price": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Maximum price level. Cannot be lower than min_price."
              },
              "min_rating": {
                "anyOf": [
                  {
                    "type": "number",
                    "const": 2
                  },
                  {
                    "type": "number",
                    "const": 2.5
                  },
                  {
                    "type": "number",
                    "const": 3
                  },
                  {
                    "type": "number",
                    "const": 3.5
                  },
                  {
                    "type": "number",
                    "const": 4
                  },
                  {
                    "type": "number",
                    "const": 4.5
                  }
                ],
                "description": "Preferred minimum rating (2, 2.5, 3, 3.5, 4, or 4.5). Google treats it as a relevance preference."
              },
              "open_state": {
                "type": "string",
                "enum": [
                  "now",
                  "24h"
                ],
                "description": "Only places open now or open 24 hours. Cannot be combined with open_on_day or open_at_hour."
              },
              "open_on_day": {
                "type": "string",
                "enum": [
                  "mon",
                  "tue",
                  "wed",
                  "thu",
                  "fri",
                  "sat",
                  "sun"
                ],
                "description": "Only places open on this day."
              },
              "open_at_hour": {
                "type": "integer",
                "minimum": 0,
                "maximum": 23,
                "description": "Only places open at this hour, 24-hour clock. Requires open_on_day."
              },
              "start": {
                "type": "integer",
                "minimum": 0,
                "maximum": 9007199254740991,
                "description": "Result offset. A Maps page holds 20 places. Default 0."
              }
            },
            "required": [
              "data"
            ],
            "additionalProperties": false
          }
        ],
        "description": "A search (q and type) or an exact place (exactly one of place_id, data_cid, or data)."
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "kind": "endpoint"
}