{
  "id": "litescrape.google.shopping",
  "object": "tool",
  "name": "Search Google Shopping",
  "summary": "Search Google Shopping and get products with prices, merchants, ratings, and refinements.",
  "description": "Search Google Shopping for a product query. Returns shopping_results (position, title, price, source merchant, rating, reviews, thumbnail, and the gpcid, headline_offer_docid, image_docid that open the product), categorized_shopping_results, and Google's refinement chips as shoprs tokens in filters. Supports a price range, on-sale, free-shipping, and small-business refinements (one at a time), price or rating sorting, up to 100 products per call, a named location, and localization. To open one product with every merchant offer pass its gpcid (and headline_offer_docid, image_docid) plus the same q to google/shopping/product. Suited for price comparison, product research, and merchant discovery.\n\nRaw litescrape#google/shopping endpoint: input is { body, queryParams, pathParams } as the provider documents them (https://litescrape.com/docs/google-shopping).",
  "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_shopping",
  "input_schema": {
    "type": "object",
    "properties": {
      "queryParams": {
        "anyOf": [
          {
            "type": "object",
            "properties": {
              "q": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2048,
                "description": "Product query, up to 2,048 characters. Optional when a shoprs token is supplied."
              },
              "shoprs": {
                "type": "string",
                "minLength": 1,
                "maxLength": 4096,
                "description": "Refinement token from a previous response's filters. An explicit refinement replaces the one it carries."
              },
              "start": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1000,
                "description": "Result offset, 0-1,000. Default 0."
              },
              "num": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100,
                "description": "Number of products to return, 1-100; Google's 40-product pages are consumed for you."
              },
              "min_price": {
                "type": "number",
                "minimum": 0,
                "maximum": 1000000000,
                "description": "Lower price bound. Cannot be combined with the other refinements."
              },
              "max_price": {
                "type": "number",
                "minimum": 0,
                "description": "Upper price bound, at or above min_price. Cannot be combined with the other refinements."
              },
              "sort_by": {
                "type": "string",
                "enum": [
                  "1",
                  "2",
                  "3",
                  "4"
                ],
                "description": "'1' price low to high, '2' price high to low, '3' rating high to low, '4' relevance. Combines with one refinement."
              },
              "on_sale": {
                "type": "boolean",
                "description": "Only products Google marks as on sale. Cannot be combined with the other refinements."
              },
              "free_shipping": {
                "type": "boolean",
                "description": "Only products with free shipping. Cannot be combined with the other refinements."
              },
              "small_business": {
                "type": "boolean",
                "description": "Only products from small businesses. Cannot be combined with the other refinements."
              },
              "location": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512,
                "description": "Human-readable search origin, such as 'Austin, Texas'. Cannot be combined with uule."
              },
              "uule": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2048,
                "description": "Pre-encoded Google location token. Cannot be combined with location."
              },
              "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'."
              },
              "device": {
                "type": "string",
                "enum": [
                  "desktop",
                  "tablet",
                  "mobile"
                ],
                "description": "Device layout Google renders. Default 'desktop'."
              }
            },
            "required": [
              "q"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "q": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2048,
                "description": "Product query, up to 2,048 characters. Optional when a shoprs token is supplied."
              },
              "shoprs": {
                "type": "string",
                "minLength": 1,
                "maxLength": 4096,
                "description": "Refinement token from a previous response's filters. An explicit refinement replaces the one it carries."
              },
              "start": {
                "type": "integer",
                "minimum": 0,
                "maximum": 1000,
                "description": "Result offset, 0-1,000. Default 0."
              },
              "num": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100,
                "description": "Number of products to return, 1-100; Google's 40-product pages are consumed for you."
              },
              "min_price": {
                "type": "number",
                "minimum": 0,
                "maximum": 1000000000,
                "description": "Lower price bound. Cannot be combined with the other refinements."
              },
              "max_price": {
                "type": "number",
                "minimum": 0,
                "description": "Upper price bound, at or above min_price. Cannot be combined with the other refinements."
              },
              "sort_by": {
                "type": "string",
                "enum": [
                  "1",
                  "2",
                  "3",
                  "4"
                ],
                "description": "'1' price low to high, '2' price high to low, '3' rating high to low, '4' relevance. Combines with one refinement."
              },
              "on_sale": {
                "type": "boolean",
                "description": "Only products Google marks as on sale. Cannot be combined with the other refinements."
              },
              "free_shipping": {
                "type": "boolean",
                "description": "Only products with free shipping. Cannot be combined with the other refinements."
              },
              "small_business": {
                "type": "boolean",
                "description": "Only products from small businesses. Cannot be combined with the other refinements."
              },
              "location": {
                "type": "string",
                "minLength": 1,
                "maxLength": 512,
                "description": "Human-readable search origin, such as 'Austin, Texas'. Cannot be combined with uule."
              },
              "uule": {
                "type": "string",
                "minLength": 1,
                "maxLength": 2048,
                "description": "Pre-encoded Google location token. Cannot be combined with location."
              },
              "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'."
              },
              "device": {
                "type": "string",
                "enum": [
                  "desktop",
                  "tablet",
                  "mobile"
                ],
                "description": "Device layout Google renders. Default 'desktop'."
              }
            },
            "required": [
              "shoprs"
            ],
            "additionalProperties": false
          }
        ],
        "description": "Provide at least one of q or shoprs."
      }
    },
    "required": [],
    "additionalProperties": false
  },
  "kind": "endpoint"
}